Index: src/ia32/code-stubs-ia32.cc |
diff --git a/src/ia32/code-stubs-ia32.cc b/src/ia32/code-stubs-ia32.cc |
index 2c6b0a5f3df33e6e9c629cef11ad0b3e8332280d..b45bdaa99bbacd82a8cbc224762eb8a7f044908e 100644 |
--- a/src/ia32/code-stubs-ia32.cc |
+++ b/src/ia32/code-stubs-ia32.cc |
@@ -47,6 +47,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); |
} |
@@ -7634,8 +7635,13 @@ 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); |
+ __ mov(ebx, MemOperand(ebp, StandardFrameConstants::kMarkerOffset - |
+ 2 * kPointerSize)); |
mvstanton
2013/02/04 08:54:26
Would it make sense to having something like a Stu
danno
2013/02/04 10:22:24
Done.
|
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. |
} |