Index: src/arm/builtins-arm.cc |
diff --git a/src/arm/builtins-arm.cc b/src/arm/builtins-arm.cc |
index 236848b71740b7d7eb7e65601c4cc87198689aa3..ed5f66a17d3700b5861020bb26ba880406ab6da7 100644 |
--- a/src/arm/builtins-arm.cc |
+++ b/src/arm/builtins-arm.cc |
@@ -987,6 +987,10 @@ void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) { |
__ add(fp, sp, Operand(StandardFrameConstants::kFixedFrameSizeFromFp)); |
__ push(r3); |
+ // Push dispatch table pointer. |
+ __ mov(r0, Operand(ExternalReference::interpreter_dispatch_table_address( |
+ masm->isolate()))); |
+ __ push(r0); |
// Push zero for bytecode array offset. |
__ mov(r0, Operand(0)); |
__ push(r0); |
@@ -1048,9 +1052,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, |