Index: src/compiler/linkage.h |
diff --git a/src/compiler/linkage.h b/src/compiler/linkage.h |
index fa34adb7c2e0926f9579eecaac86a22efe2f76ff..6926ffb64e344ae9d9742b78d11cc18d455ee5c9 100644 |
--- a/src/compiler/linkage.h |
+++ b/src/compiler/linkage.h |
@@ -27,6 +27,10 @@ class LinkageLocation { |
public: |
explicit LinkageLocation(int location) : location_(location) {} |
+ bool is_register() const { |
+ return 0 <= location_ && location_ <= ANY_REGISTER; |
+ } |
+ |
static const int16_t ANY_REGISTER = 1023; |
static const int16_t MAX_STACK_SLOT = 32767; |
@@ -61,6 +65,7 @@ class CallDescriptor final : public ZoneObject { |
kPatchableCallSite = 1u << 1, |
kNeedsNopAfterCall = 1u << 2, |
kHasExceptionHandler = 1u << 3, |
+ kIsTailCallAllowed = 1u << 4, |
Benedikt Meurer
2015/04/29 04:06:05
Can we rename this to kSupportsTailCalls?
Sven Panne
2015/04/29 10:24:18
Done.
|
kPatchableCallSiteWithNop = kPatchableCallSite | kNeedsNopAfterCall |
}; |
typedef base::Flags<Flag> Flags; |
@@ -108,6 +113,7 @@ class CallDescriptor final : public ZoneObject { |
Flags flags() const { return flags_; } |
bool NeedsFrameState() const { return flags() & kNeedsFrameState; } |
+ bool IsTailCallAllowed() const { return flags() & kIsTailCallAllowed; } |
Benedikt Meurer
2015/04/29 04:06:05
SupportsTailCalls?
Sven Panne
2015/04/29 10:24:18
Done.
|
LinkageLocation GetReturnLocation(size_t index) const { |
return location_sig_->GetReturn(index); |
@@ -137,6 +143,8 @@ class CallDescriptor final : public ZoneObject { |
const char* debug_name() const { return debug_name_; } |
+ bool UsesOnlyRegisters() const; |
+ |
private: |
friend class Linkage; |