Index: src/arm64/builtins-arm64.cc |
diff --git a/src/arm64/builtins-arm64.cc b/src/arm64/builtins-arm64.cc |
index 1f2c2343e8f35cbcd6e467a01ef49a9283cce49c..7383189617c57eb3b203fa0f707a81653769af94 100644 |
--- a/src/arm64/builtins-arm64.cc |
+++ b/src/arm64/builtins-arm64.cc |
@@ -804,6 +804,7 @@ void Builtins::Generate_JSConstructEntryTrampoline(MacroAssembler* masm) { |
// |
// The live registers are: |
// - x1: the JS function object being called. |
+// - x3: the new target |
// - cp: our context. |
// - fp: our caller's frame pointer. |
// - jssp: stack pointer. |
@@ -820,6 +821,7 @@ void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) { |
FrameScope frame_scope(masm, StackFrame::MANUAL); |
__ Push(lr, fp, cp, x1); |
__ Add(fp, jssp, StandardFrameConstants::kFixedFrameSizeFromFp); |
+ __ Push(x3); |
Michael Starzinger
2015/11/24 12:40:41
Not sure whether this is the best way to construct
|
// Get the bytecode array from the function object and load the pointer to the |
// first entry into kInterpreterBytecodeRegister. |
@@ -885,7 +887,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, |