Index: src/compiler/linkage.h |
diff --git a/src/compiler/linkage.h b/src/compiler/linkage.h |
index 33da7a4c2b6b4dfcbffb2f34eeb7ce83ec594e64..564f779e9b5b9f601233e36ec71d7a1f799afb9d 100644 |
--- a/src/compiler/linkage.h |
+++ b/src/compiler/linkage.h |
@@ -157,6 +157,8 @@ class CallDescriptor final : public ZoneObject { |
kUseNativeStack = 1u << 7, |
// (arm64 only) call instruction has to restore JSSP. |
kRestoreJSSP = 1u << 8, |
+ // Causes the code generator to initialize the root register. |
+ kInitializeRootRegister = 1u << 9, |
kPatchableCallSiteWithNop = kPatchableCallSite | kNeedsNopAfterCall |
}; |
typedef base::Flags<Flag> Flags; |
@@ -223,6 +225,9 @@ class CallDescriptor final : public ZoneObject { |
bool NeedsFrameState() const { return flags() & kNeedsFrameState; } |
bool SupportsTailCalls() const { return flags() & kSupportsTailCalls; } |
bool UseNativeStack() const { return flags() & kUseNativeStack; } |
+ bool InitializeRootRegister() const { |
+ return flags() & kInitializeRootRegister; |
+ } |
LinkageLocation GetReturnLocation(size_t index) const { |
return location_sig_->GetReturn(index); |
@@ -327,8 +332,9 @@ class Linkage : public ZoneObject { |
// for the host platform. This simplified calling convention only supports |
// integers and pointers of one word size each, i.e. no floating point, |
// structs, pointers to members, etc. |
- static CallDescriptor* GetSimplifiedCDescriptor(Zone* zone, |
- const MachineSignature* sig); |
+ static CallDescriptor* GetSimplifiedCDescriptor( |
+ Zone* zone, const MachineSignature* sig, |
+ bool set_initialize_root_flag = false); |
// Creates a call descriptor for interpreter handler code stubs. These are not |
// intended to be called directly but are instead dispatched to by the |