| Index: src/arm64/builtins-arm64.cc
|
| diff --git a/src/arm64/builtins-arm64.cc b/src/arm64/builtins-arm64.cc
|
| index c596dc049e9e52e9751bc9249483ccbda4567d5e..6042ff0b044066c6f0872ca0d61d0aebb71b185c 100644
|
| --- a/src/arm64/builtins-arm64.cc
|
| +++ b/src/arm64/builtins-arm64.cc
|
| @@ -997,11 +997,12 @@ void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) {
|
| FrameScope frame_scope(masm, StackFrame::MANUAL);
|
| __ Push(lr, fp, cp, x1);
|
| __ Add(fp, jssp, StandardFrameConstants::kFixedFrameSizeFromFp);
|
| - __ Push(x3);
|
|
|
| - // Push zero for bytecode array offset.
|
| + // Push dispatch table pointer.
|
| __ Mov(x0, Operand(0));
|
| - __ Push(x0);
|
| + __ Mov(x2, Operand(ExternalReference::interpreter_dispatch_table_address(
|
| + masm->isolate())));
|
| + __ Push(x3, x2, x0);
|
|
|
| // Get the bytecode array from the function object and load the pointer to the
|
| // first entry into kInterpreterBytecodeRegister.
|
| @@ -1058,9 +1059,8 @@ void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) {
|
| Operand(InterpreterFrameConstants::kRegisterFilePointerFromFp));
|
| __ Mov(kInterpreterBytecodeOffsetRegister,
|
| Operand(BytecodeArray::kHeaderSize - kHeapObjectTag));
|
| - __ Mov(kInterpreterDispatchTableRegister,
|
| - Operand(ExternalReference::interpreter_dispatch_table_address(
|
| - masm->isolate())));
|
| + __ Ldr(kInterpreterDispatchTableRegister,
|
| + MemOperand(fp, InterpreterFrameConstants::kDispatchTableFromFp));
|
|
|
| // Dispatch to the first bytecode handler for the function.
|
| __ Ldrb(x1, MemOperand(kInterpreterBytecodeArrayRegister,
|
|
|