Index: src/mips/builtins-mips.cc |
diff --git a/src/mips/builtins-mips.cc b/src/mips/builtins-mips.cc |
index 6fed89cd566d4af1624b96b7c3535c24b7285787..4cc4b90355324e561712f0ff0aa3aedae450ff45 100644 |
--- a/src/mips/builtins-mips.cc |
+++ b/src/mips/builtins-mips.cc |
@@ -784,6 +784,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 |
@@ -801,6 +802,7 @@ void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) { |
__ Push(ra, fp, cp, a1); |
__ Addu(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. |
@@ -866,9 +868,9 @@ void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) { |
// Load bytecode offset and dispatch table into registers. |
__ LoadRoot(kInterpreterAccumulatorRegister, Heap::kUndefinedValueRootIndex); |
- __ Subu( |
- kInterpreterRegisterFileRegister, fp, |
- Operand(kPointerSize + StandardFrameConstants::kFixedFrameSizeFromFp)); |
+ __ Subu(kInterpreterRegisterFileRegister, fp, |
+ Operand(2 * kPointerSize + |
+ StandardFrameConstants::kFixedFrameSizeFromFp)); |
__ li(kInterpreterBytecodeOffsetRegister, |
Operand(BytecodeArray::kHeaderSize - kHeapObjectTag)); |
__ LoadRoot(kInterpreterDispatchTableRegister, |