| 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
|
|
|