Index: src/ppc/builtins-ppc.cc |
diff --git a/src/ppc/builtins-ppc.cc b/src/ppc/builtins-ppc.cc |
index 45d680ddb806b431a0eb685ceed1773337d62093..a08d0875567b75a9acc583b371b193c9d866e708 100644 |
--- a/src/ppc/builtins-ppc.cc |
+++ b/src/ppc/builtins-ppc.cc |
@@ -978,6 +978,10 @@ void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) { |
__ addi(fp, sp, Operand(StandardFrameConstants::kFixedFrameSizeFromFp)); |
__ push(r6); |
+ // Push dispatch table pointer. |
+ __ mov(r3, Operand(ExternalReference::interpreter_dispatch_table_address( |
+ masm->isolate()))); |
+ __ push(r3); |
// Push zero for bytecode array offset. |
__ li(r3, Operand::Zero()); |
__ push(r3); |
@@ -1038,9 +1042,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()))); |
+ __ lwz(kInterpreterDispatchTableRegister, |
+ MemOperand(fp, InterpreterFrameConstants::kDispatchTableFromFp)); |
// Dispatch to the first bytecode handler for the function. |
__ lbzx(r4, MemOperand(kInterpreterBytecodeArrayRegister, |