| Index: src/ppc/builtins-ppc.cc
|
| diff --git a/src/ppc/builtins-ppc.cc b/src/ppc/builtins-ppc.cc
|
| index 6f4b84d937cab1802876c35b6bebd58b871e224a..0bcd7f2fe8abbb6c752f3a0adf70cdcd69af2ba9 100644
|
| --- a/src/ppc/builtins-ppc.cc
|
| +++ b/src/ppc/builtins-ppc.cc
|
| @@ -978,12 +978,6 @@ void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) {
|
| __ PushFixedFrame(r4);
|
| __ addi(fp, sp, Operand(StandardFrameConstants::kFixedFrameSizeFromFp));
|
|
|
| - // Push new.target, dispatch table pointer and zero for bytecode array offset.
|
| - __ li(r3, Operand::Zero());
|
| - __ mov(r5, Operand(ExternalReference::interpreter_dispatch_table_address(
|
| - masm->isolate())));
|
| - __ Push(r6, r5, r3);
|
| -
|
| // Get the bytecode array from the function object and load the pointer to the
|
| // first entry into kInterpreterBytecodeRegister.
|
| __ LoadP(r3, FieldMemOperand(r4, JSFunction::kSharedFunctionInfoOffset));
|
| @@ -999,6 +993,10 @@ void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) {
|
| __ Assert(eq, kFunctionDataShouldBeBytecodeArrayOnInterpreterEntry);
|
| }
|
|
|
| + // Push new.target, bytecode array and zero for bytecode array offset.
|
| + __ li(r3, Operand::Zero());
|
| + __ Push(r6, kInterpreterBytecodeArrayRegister, r3);
|
| +
|
| // Allocate the local and temporary register file on the stack.
|
| {
|
| // Load frame size (word) from the BytecodeArray object.
|
| @@ -1040,8 +1038,9 @@ void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) {
|
| Operand(InterpreterFrameConstants::kRegisterFilePointerFromFp));
|
| __ mov(kInterpreterBytecodeOffsetRegister,
|
| Operand(BytecodeArray::kHeaderSize - kHeapObjectTag));
|
| - __ LoadP(kInterpreterDispatchTableRegister,
|
| - MemOperand(fp, InterpreterFrameConstants::kDispatchTableFromFp));
|
| + __ mov(kInterpreterDispatchTableRegister,
|
| + Operand(ExternalReference::interpreter_dispatch_table_address(
|
| + masm->isolate())));
|
|
|
| // Dispatch to the first bytecode handler for the function.
|
| __ lbzx(r4, MemOperand(kInterpreterBytecodeArrayRegister,
|
| @@ -1150,12 +1149,10 @@ static void Generate_EnterBytecodeDispatch(MacroAssembler* masm) {
|
| InterpreterFrameConstants::kContextFromRegisterPointer));
|
|
|
| // Get the bytecode array pointer from the frame.
|
| - __ LoadP(r4,
|
| - MemOperand(kInterpreterRegisterFileRegister,
|
| - InterpreterFrameConstants::kFunctionFromRegisterPointer));
|
| - __ LoadP(r4, FieldMemOperand(r4, JSFunction::kSharedFunctionInfoOffset));
|
| - __ LoadP(kInterpreterBytecodeArrayRegister,
|
| - FieldMemOperand(r4, SharedFunctionInfo::kFunctionDataOffset));
|
| + __ LoadP(
|
| + kInterpreterBytecodeArrayRegister,
|
| + MemOperand(kInterpreterRegisterFileRegister,
|
| + InterpreterFrameConstants::kBytecodeArrayFromRegisterPointer));
|
|
|
| if (FLAG_debug_code) {
|
| // Check function data field is actually a BytecodeArray object.
|
|
|