| Index: src/x64/builtins-x64.cc
|
| diff --git a/src/x64/builtins-x64.cc b/src/x64/builtins-x64.cc
|
| index c86d811be39fa4464d024660a8b517515821b2d3..3709097955d4d22d6869a2733189df9a05ef44f3 100644
|
| --- a/src/x64/builtins-x64.cc
|
| +++ b/src/x64/builtins-x64.cc
|
| @@ -579,6 +579,7 @@ void Builtins::Generate_JSConstructEntryTrampoline(MacroAssembler* masm) {
|
| //
|
| // The live registers are:
|
| // o rdi: the JS function object being called
|
| +// o rdx: the new target
|
| // o rsi: our context
|
| // o rbp: the caller's frame pointer
|
| // o rsp: stack pointer (pointing to return address)
|
| @@ -596,6 +597,7 @@ void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) {
|
| __ movp(rbp, rsp);
|
| __ Push(rsi); // Callee's context.
|
| __ Push(rdi); // Callee's JS function.
|
| + __ Push(rdx); // Callee's new target.
|
|
|
| // Get the bytecode array from the function object and load the pointer to the
|
| // first entry into edi (InterpreterBytecodeRegister).
|
| @@ -662,9 +664,9 @@ void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) {
|
| // registers.
|
| __ LoadRoot(kInterpreterAccumulatorRegister, Heap::kUndefinedValueRootIndex);
|
| __ movp(kInterpreterRegisterFileRegister, rbp);
|
| - __ subp(
|
| - kInterpreterRegisterFileRegister,
|
| - Immediate(kPointerSize + StandardFrameConstants::kFixedFrameSizeFromFp));
|
| + __ subp(kInterpreterRegisterFileRegister,
|
| + Immediate(2 * kPointerSize +
|
| + StandardFrameConstants::kFixedFrameSizeFromFp));
|
| __ movp(kInterpreterBytecodeOffsetRegister,
|
| Immediate(BytecodeArray::kHeaderSize - kHeapObjectTag));
|
| __ LoadRoot(kInterpreterDispatchTableRegister,
|
|
|