Index: src/arm/lithium-codegen-arm.cc |
diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc |
index d096087b4283f16bf93adba20324692376ca549c..627aad79de5159082866a1757c584b74bd9fd83a 100644 |
--- a/src/arm/lithium-codegen-arm.cc |
+++ b/src/arm/lithium-codegen-arm.cc |
@@ -2956,23 +2956,25 @@ void LCodeGen::DoReturn(LReturn* instr) { |
if (NeedsEagerFrame()) { |
no_frame_start = masm_->LeaveFrame(StackFrame::JAVA_SCRIPT); |
} |
- if (instr->has_constant_parameter_count()) { |
- int parameter_count = ToInteger32(instr->constant_parameter_count()); |
- int32_t sp_delta = (parameter_count + 1) * kPointerSize; |
- if (sp_delta != 0) { |
- __ add(sp, sp, Operand(sp_delta)); |
+ { ConstantPoolUnavailableScope constant_pool_unavailable(masm()); |
+ if (instr->has_constant_parameter_count()) { |
+ int parameter_count = ToInteger32(instr->constant_parameter_count()); |
+ int32_t sp_delta = (parameter_count + 1) * kPointerSize; |
+ if (sp_delta != 0) { |
+ __ add(sp, sp, Operand(sp_delta)); |
+ } |
+ } else { |
+ Register reg = ToRegister(instr->parameter_count()); |
+ // The argument count parameter is a smi |
+ __ SmiUntag(reg); |
+ __ add(sp, sp, Operand(reg, LSL, kPointerSizeLog2)); |
} |
- } else { |
- Register reg = ToRegister(instr->parameter_count()); |
- // The argument count parameter is a smi |
- __ SmiUntag(reg); |
- __ add(sp, sp, Operand(reg, LSL, kPointerSizeLog2)); |
- } |
- __ Jump(lr); |
+ __ Jump(lr); |
- if (no_frame_start != -1) { |
- info_->AddNoFrameRange(no_frame_start, masm_->pc_offset()); |
+ if (no_frame_start != -1) { |
+ info_->AddNoFrameRange(no_frame_start, masm_->pc_offset()); |
+ } |
} |
} |