| Index: src/x64/code-stubs-x64.cc
|
| diff --git a/src/x64/code-stubs-x64.cc b/src/x64/code-stubs-x64.cc
|
| index e4d401f6fd449b43850ded0d5659639d00b6a65a..095113c40da56f397fbecbdc8f8b6d261ee38295 100644
|
| --- a/src/x64/code-stubs-x64.cc
|
| +++ b/src/x64/code-stubs-x64.cc
|
| @@ -45,6 +45,7 @@ void KeyedLoadFastElementStub::InitializeInterfaceDescriptor(
|
| static Register registers[] = { rdx, rax };
|
| descriptor->register_param_count_ = 2;
|
| descriptor->register_params_ = registers;
|
| + descriptor->stack_parameter_count_ = NULL;
|
| descriptor->deoptimization_handler_ =
|
| FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure);
|
| }
|
| @@ -6635,8 +6636,14 @@ void StubFailureTrampolineStub::Generate(MacroAssembler* masm) {
|
| ASSERT(!Serializer::enabled());
|
| CEntryStub ces(1, kSaveFPRegs);
|
| __ Call(ces.GetCode(), RelocInfo::CODE_TARGET);
|
| + int parameter_count_offset =
|
| + StubFailureTrampolineFrame::kCallerStackParameterCountFrameOffset;
|
| + __ movq(rbx, MemOperand(rbp, parameter_count_offset));
|
| masm->LeaveFrame(StackFrame::STUB_FAILURE_TRAMPOLINE);
|
| - __ ret(0); // Return to IC Miss stub, continuation still on stack.
|
| + __ pop(rcx);
|
| + __ lea(rsp, MemOperand(rsp, rbx, times_pointer_size,
|
| + extra_expression_stack_count_ * kPointerSize));
|
| + __ jmp(rcx); // Return to IC Miss stub, continuation still on stack.
|
| }
|
|
|
|
|
|
|