Index: src/ia32/lithium-codegen-ia32.cc |
diff --git a/src/ia32/lithium-codegen-ia32.cc b/src/ia32/lithium-codegen-ia32.cc |
index 33cfd011af44a9a469285e5b9377b6c2ba96f7e2..b45c24855849f50cbeb8445f91240b728012ca9c 100644 |
--- a/src/ia32/lithium-codegen-ia32.cc |
+++ b/src/ia32/lithium-codegen-ia32.cc |
@@ -210,6 +210,7 @@ bool LCodeGen::GeneratePrologue() { |
frame_is_built_ = true; |
__ push(ebp); // Caller's frame pointer. |
__ mov(ebp, esp); |
+ info()->AddNoFrameRange(0, masm_->pc_offset()); |
__ push(esi); // Callee's context. |
if (info()->IsStub()) { |
__ push(Immediate(Smi::FromInt(StackFrame::STUB))); |
@@ -2806,9 +2807,11 @@ void LCodeGen::DoReturn(LReturn* instr) { |
__ mov(edx, Operand(ebp, |
JavaScriptFrameConstants::kDynamicAlignmentStateOffset)); |
} |
+ int no_frame_start = -1; |
if (NeedsEagerFrame()) { |
__ mov(esp, ebp); |
__ pop(ebp); |
+ no_frame_start = masm_->pc_offset(); |
} |
if (dynamic_frame_alignment_) { |
Label no_padding; |
@@ -2820,6 +2823,9 @@ void LCodeGen::DoReturn(LReturn* instr) { |
} |
EmitReturn(instr, false); |
+ if (no_frame_start != -1) { |
+ info()->AddNoFrameRange(no_frame_start, masm_->pc_offset()); |
+ } |
} |