| Index: src/arm/builtins-arm.cc
|
| diff --git a/src/arm/builtins-arm.cc b/src/arm/builtins-arm.cc
|
| index 236848b71740b7d7eb7e65601c4cc87198689aa3..c3ea0be86d6f0df0cc5d52d59ab8eb616e2ddd09 100644
|
| --- a/src/arm/builtins-arm.cc
|
| +++ b/src/arm/builtins-arm.cc
|
| @@ -985,11 +985,12 @@ void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) {
|
| FrameScope frame_scope(masm, StackFrame::MANUAL);
|
| __ PushFixedFrame(r1);
|
| __ add(fp, sp, Operand(StandardFrameConstants::kFixedFrameSizeFromFp));
|
| - __ push(r3);
|
|
|
| - // Push zero for bytecode array offset.
|
| + // Push new.target, dispatch table pointer and zero for bytecode array offset.
|
| __ mov(r0, Operand(0));
|
| - __ push(r0);
|
| + __ mov(r2, Operand(ExternalReference::interpreter_dispatch_table_address(
|
| + masm->isolate())));
|
| + __ Push(r3, r2, r0);
|
|
|
| // Get the bytecode array from the function object and load the pointer to the
|
| // first entry into kInterpreterBytecodeRegister.
|
| @@ -1048,9 +1049,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(r1, MemOperand(kInterpreterBytecodeArrayRegister,
|
|
|