Index: src/arm/builtins-arm.cc |
diff --git a/src/arm/builtins-arm.cc b/src/arm/builtins-arm.cc |
index 745a99939befdadcad2a684a20b2413209cef722..9427cccde3ebfc3ac0ee8d2cd8aae6975a2523d2 100644 |
--- a/src/arm/builtins-arm.cc |
+++ b/src/arm/builtins-arm.cc |
@@ -781,6 +781,7 @@ void Builtins::Generate_JSConstructEntryTrampoline(MacroAssembler* masm) { |
// |
// The live registers are: |
// o r1: the JS function object being called. |
+// o r3: the new target |
// o cp: our context |
// o pp: the caller's constant pool pointer (if enabled) |
// o fp: the caller's frame pointer |
@@ -798,6 +799,7 @@ void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) { |
FrameScope frame_scope(masm, StackFrame::MANUAL); |
__ PushFixedFrame(r1); |
__ add(fp, sp, Operand(StandardFrameConstants::kFixedFrameSizeFromFp)); |
+ __ push(r3); |
// Get the bytecode array from the function object and load the pointer to the |
// first entry into kInterpreterBytecodeRegister. |
@@ -866,7 +868,8 @@ void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) { |
// registers. |
__ LoadRoot(kInterpreterAccumulatorRegister, Heap::kUndefinedValueRootIndex); |
__ sub(kInterpreterRegisterFileRegister, fp, |
- Operand(kPointerSize + StandardFrameConstants::kFixedFrameSizeFromFp)); |
+ Operand(2 * kPointerSize + |
+ StandardFrameConstants::kFixedFrameSizeFromFp)); |
__ mov(kInterpreterBytecodeOffsetRegister, |
Operand(BytecodeArray::kHeaderSize - kHeapObjectTag)); |
__ LoadRoot(kInterpreterDispatchTableRegister, |