| Index: src/ia32/code-stubs-ia32.cc
|
| diff --git a/src/ia32/code-stubs-ia32.cc b/src/ia32/code-stubs-ia32.cc
|
| index 95463123b32aa3d6a1ef9519e87fb48dc44fb295..d9cd90d64f17868726d25f06ad2826b4934945f6 100644
|
| --- a/src/ia32/code-stubs-ia32.cc
|
| +++ b/src/ia32/code-stubs-ia32.cc
|
| @@ -48,6 +48,7 @@ void KeyedLoadFastElementStub::InitializeInterfaceDescriptor(
|
| static Register registers[] = { edx, ecx };
|
| descriptor->register_param_count_ = 2;
|
| descriptor->register_params_ = registers;
|
| + descriptor->stack_parameter_count_ = NULL;
|
| descriptor->deoptimization_handler_ =
|
| FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure);
|
| }
|
| @@ -7646,8 +7647,14 @@ void StubFailureTrampolineStub::Generate(MacroAssembler* masm) {
|
| bool save_fp_regs = CpuFeatures::IsSupported(SSE2);
|
| CEntryStub ces(1, save_fp_regs ? kSaveFPRegs : kDontSaveFPRegs);
|
| __ call(ces.GetCode(), RelocInfo::CODE_TARGET);
|
| + int parameter_count_offset =
|
| + StubFailureTrampolineFrame::kCallerStackParameterCountFrameOffset;
|
| + __ mov(ebx, MemOperand(ebp, parameter_count_offset));
|
| masm->LeaveFrame(StackFrame::STUB_FAILURE_TRAMPOLINE);
|
| - __ ret(0); // Return to IC Miss stub, continuation still on stack.
|
| + __ pop(ecx);
|
| + __ lea(esp, MemOperand(esp, ebx, times_pointer_size,
|
| + extra_expression_stack_count_ * kPointerSize));
|
| + __ jmp(ecx); // Return to IC Miss stub, continuation still on stack.
|
| }
|
|
|
|
|
|
|