| Index: src/x64/builtins-x64.cc
|
| diff --git a/src/x64/builtins-x64.cc b/src/x64/builtins-x64.cc
|
| index 4a94f230e1bdd6d08fc1aa4ab6f11c710f417cfd..ce2f72958e8623051857f8fe6340ff2c6a050106 100644
|
| --- a/src/x64/builtins-x64.cc
|
| +++ b/src/x64/builtins-x64.cc
|
| @@ -329,6 +329,14 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm,
|
| NullCallWrapper(), CALL_AS_METHOD);
|
| }
|
|
|
| + // Store offset of return address for deoptimizer.
|
| + // TODO(849): Once Generate_StringConstructCode doesn't reuse this
|
| + // generator, we can drop the third condition below!
|
| + if (!is_api_function && !count_constructions &&
|
| + masm->isolate()->heap()->construct_stub_deopt_pc_offset() == 0) {
|
| + masm->isolate()->heap()->SetConstructStubDeoptPCOffset(masm->pc_offset());
|
| + }
|
| +
|
| // Restore context from the frame.
|
| __ movq(rsi, Operand(rbp, StandardFrameConstants::kContextOffset));
|
|
|
| @@ -1509,7 +1517,9 @@ void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) {
|
| __ bind(&invoke);
|
| __ call(rdx);
|
|
|
| + // Store offset of return address for deoptimizer.
|
| masm->isolate()->heap()->SetArgumentsAdaptorDeoptPCOffset(masm->pc_offset());
|
| +
|
| // Leave frame and return.
|
| LeaveArgumentsAdaptorFrame(masm);
|
| __ ret(0);
|
|
|