Index: src/ia32/lithium-codegen-ia32.cc |
diff --git a/src/ia32/lithium-codegen-ia32.cc b/src/ia32/lithium-codegen-ia32.cc |
index c64a4b0892e763007b80ee49434f278ed4c846fd..d6ffbee4fe6bd65ed6d4e01ddf98f4687cc29e16 100644 |
--- a/src/ia32/lithium-codegen-ia32.cc |
+++ b/src/ia32/lithium-codegen-ia32.cc |
@@ -2753,6 +2753,7 @@ void LCodeGen::EmitReturn(LReturn* instr, bool dynamic_frame_alignment) { |
} |
__ Ret((parameter_count + extra_value_count) * kPointerSize, ecx); |
} else { |
+ DCHECK(info()->IsStub()); // Functions would need to drop one more value. |
Register reg = ToRegister(instr->parameter_count()); |
// The argument count parameter is a smi |
__ SmiUntag(reg); |
@@ -2770,6 +2771,7 @@ void LCodeGen::EmitReturn(LReturn* instr, bool dynamic_frame_alignment) { |
if (dynamic_frame_alignment) { |
__ inc(reg); // 1 more for alignment |
} |
+ |
__ shl(reg, kPointerSizeLog2); |
__ add(esp, reg); |
__ jmp(return_addr_reg); |