Index: src/mips64/builtins-mips64.cc |
diff --git a/src/mips64/builtins-mips64.cc b/src/mips64/builtins-mips64.cc |
index a5d1c53adf1701fe4b9d0e69dec20f4769e48fad..81698a7c7cbfc1f9aca885e282e5e4554944cff8 100644 |
--- a/src/mips64/builtins-mips64.cc |
+++ b/src/mips64/builtins-mips64.cc |
@@ -780,6 +780,7 @@ void Builtins::Generate_JSConstructEntryTrampoline(MacroAssembler* masm) { |
// |
// The live registers are: |
// o a1: the JS function object being called. |
+// o a3: the new target |
// o cp: our context |
// o fp: the caller's frame pointer |
// o sp: stack pointer |
@@ -797,6 +798,7 @@ void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) { |
__ Push(ra, fp, cp, a1); |
__ Daddu(fp, sp, Operand(StandardFrameConstants::kFixedFrameSizeFromFp)); |
+ __ Push(a3); |
// Get the bytecode array from the function object and load the pointer to the |
// first entry into kInterpreterBytecodeRegister. |
@@ -862,9 +864,9 @@ void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) { |
// Load bytecode offset and dispatch table into registers. |
__ LoadRoot(kInterpreterAccumulatorRegister, Heap::kUndefinedValueRootIndex); |
- __ Dsubu( |
- kInterpreterRegisterFileRegister, fp, |
- Operand(kPointerSize + StandardFrameConstants::kFixedFrameSizeFromFp)); |
+ __ Dsubu(kInterpreterRegisterFileRegister, fp, |
+ Operand(2 * kPointerSize + |
+ StandardFrameConstants::kFixedFrameSizeFromFp)); |
__ li(kInterpreterBytecodeOffsetRegister, |
Operand(BytecodeArray::kHeaderSize - kHeapObjectTag)); |
__ LoadRoot(kInterpreterDispatchTableRegister, |