Index: src/compiler/mips/code-generator-mips.cc |
diff --git a/src/compiler/mips/code-generator-mips.cc b/src/compiler/mips/code-generator-mips.cc |
index e1fa446c672a4288690c478b0ef77e3d4fd96e42..47ccfbf226d7f263446ee29ed7c23db5ae138541 100644 |
--- a/src/compiler/mips/code-generator-mips.cc |
+++ b/src/compiler/mips/code-generator-mips.cc |
@@ -559,7 +559,7 @@ void AdjustStackPointerForTailCall(MacroAssembler* masm, |
masm->Subu(sp, sp, stack_slot_delta * kPointerSize); |
state->IncreaseSPDelta(stack_slot_delta); |
} else if (allow_shrinkage && stack_slot_delta < 0) { |
- masm->Addu(sp, sp, stack_slot_delta * kPointerSize); |
+ masm->Addu(sp, sp, -stack_slot_delta * kPointerSize); |
state->IncreaseSPDelta(stack_slot_delta); |
} |
} |
@@ -620,6 +620,7 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction( |
CHECK(!instr->InputAt(0)->IsImmediate()); |
__ Jump(i.InputRegister(0)); |
frame_access_state()->ClearSPDelta(); |
+ frame_access_state()->SetFrameAccessToDefault(); |
break; |
} |
case kArchCallJSFunction: { |
@@ -655,7 +656,6 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction( |
__ lw(at, FieldMemOperand(func, JSFunction::kCodeEntryOffset)); |
__ Jump(at); |
frame_access_state()->ClearSPDelta(); |
- frame_access_state()->SetFrameAccessToDefault(); |
break; |
} |
case kArchPrepareCallCFunction: { |