MIPS: Fix another bug with mozilla regress-396684.js

As with TF fix 94506cc3, correctly support absurdly large stack
adjustments.

TEST=mozilla/js/tests/js1_5/Regress/regress-396684.js
BUG=

Review URL: https://codereview.chromium.org/1057763002

Cr-Commit-Position: refs/heads/master@{#27592}
This commit is contained in:
paul.lind 2015-04-02 08:19:45 -07:00 committed by Commit bot
parent fa7c34764c
commit 6b03f2233f
2 changed files with 4 additions and 2 deletions

View File

@ -3151,6 +3151,7 @@ void MacroAssembler::Jalr(Label* L, BranchDelaySlot bdslot) {
void MacroAssembler::DropAndRet(int drop) {
DCHECK(is_int16(drop * kPointerSize));
Ret(USE_DELAY_SLOT);
addiu(sp, sp, drop * kPointerSize);
}
@ -3188,7 +3189,7 @@ void MacroAssembler::Drop(int count,
Branch(&skip, NegateCondition(cond), reg, op);
}
addiu(sp, sp, count * kPointerSize);
Addu(sp, sp, Operand(count * kPointerSize));
if (cond != al) {
bind(&skip);

View File

@ -3164,6 +3164,7 @@ void MacroAssembler::Jalr(Label* L, BranchDelaySlot bdslot) {
void MacroAssembler::DropAndRet(int drop) {
DCHECK(is_int16(drop * kPointerSize));
Ret(USE_DELAY_SLOT);
daddiu(sp, sp, drop * kPointerSize);
}
@ -3201,7 +3202,7 @@ void MacroAssembler::Drop(int count,
Branch(&skip, NegateCondition(cond), reg, op);
}
daddiu(sp, sp, count * kPointerSize);
Daddu(sp, sp, Operand(count * kPointerSize));
if (cond != al) {
bind(&skip);