Bug 558813 - [MIPS] running tamarin as3/Vector/ acceptance testcases produces an assert (r=edwsmith)

--HG--
extra : convert_revision : 25449d23ba02a99a502c06ffc0565f87376a3e7e
This commit is contained in:
Chris Dearman 2010-04-21 09:16:18 -04:00
parent 70abf16395
commit 2f43dc3b85

View File

@ -1400,8 +1400,12 @@ namespace nanojit
// b(ne|eq) $ra,$rb,btarg
if (branchOnFalse)
BNE(ra, rb, btarg);
else
BEQ(ra, rb, btarg);
else {
if (ra == rb)
B(btarg);
else
BEQ(ra, rb, btarg);
}
patch = _nIns;
break;
case LIR_lt:
@ -1502,13 +1506,18 @@ namespace nanojit
void Assembler::asm_j(NIns * const targ, bool bdelay)
{
NanoAssert(targ != NULL);
NanoAssert(SEG(targ) == SEG(_nIns));
if (bdelay) {
underrunProtect(2*4); // j + delay
NOP();
if (targ == NULL) {
NanoAssert(bdelay);
(void) asm_bxx(false, LIR_eq, ZERO, ZERO, targ);
}
else {
NanoAssert(SEG(targ) == SEG(_nIns));
if (bdelay) {
underrunProtect(2*4); // j + delay
NOP();
}
J(targ);
}
J(targ);
TAG("asm_j(targ=%p) bdelay=%d", targ);
}