diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/vm_mips.dasc | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/src/vm_mips.dasc b/src/vm_mips.dasc index 8b083ff1..0543c7e0 100644 --- a/src/vm_mips.dasc +++ b/src/vm_mips.dasc | |||
@@ -4546,24 +4546,24 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
4546 | case BC_ISNEXT: | 4546 | case BC_ISNEXT: |
4547 | | // RA = base*8, RD = target (points to ITERN) | 4547 | | // RA = base*8, RD = target (points to ITERN) |
4548 | | addu RA, BASE, RA | 4548 | | addu RA, BASE, RA |
4549 | | lw TMP0, -24+HI(RA) | 4549 | | srl TMP0, RD, 1 |
4550 | | lw CFUNC:TMP1, -24+LO(RA) | 4550 | | lw CARG1, -24+HI(RA) |
4551 | | lw TMP2, -16+HI(RA) | 4551 | | lw CFUNC:CARG2, -24+LO(RA) |
4552 | | lw TMP3, -8+HI(RA) | 4552 | | addu TMP0, PC, TMP0 |
4553 | | lw CARG3, -16+HI(RA) | ||
4554 | | lw CARG4, -8+HI(RA) | ||
4553 | | li AT, LJ_TFUNC | 4555 | | li AT, LJ_TFUNC |
4554 | | bne TMP0, AT, >5 | 4556 | | bne CARG1, AT, >5 |
4555 | |. addiu TMP2, TMP2, -LJ_TTAB | 4557 | |. lui TMP2, (-(BCBIAS_J*4 >> 16) & 65535) |
4556 | | lbu TMP1, CFUNC:TMP1->ffid | 4558 | | lbu CARG2, CFUNC:CARG2->ffid |
4557 | | addiu TMP3, TMP3, -LJ_TNIL | 4559 | | addiu CARG3, CARG3, -LJ_TTAB |
4558 | | srl TMP0, RD, 1 | 4560 | | addiu CARG4, CARG4, -LJ_TNIL |
4559 | | or TMP2, TMP2, TMP3 | 4561 | | or CARG3, CARG3, CARG4 |
4560 | | addiu TMP1, TMP1, -FF_next_N | 4562 | | addiu CARG2, CARG2, -FF_next_N |
4561 | | addu TMP0, PC, TMP0 | 4563 | | or CARG2, CARG2, CARG3 |
4562 | | or TMP1, TMP1, TMP2 | 4564 | | bnez CARG2, >5 |
4563 | | bnez TMP1, >5 | 4565 | |. lui TMP1, 0xfffe |
4564 | |. lui TMP2, (-(BCBIAS_J*4 >> 16) & 65535) | ||
4565 | | addu PC, TMP0, TMP2 | 4566 | | addu PC, TMP0, TMP2 |
4566 | | lui TMP1, 0xfffe | ||
4567 | | ori TMP1, TMP1, 0x7fff | 4567 | | ori TMP1, TMP1, 0x7fff |
4568 | | sw r0, -8+LO(RA) // Initialize control var. | 4568 | | sw r0, -8+LO(RA) // Initialize control var. |
4569 | | sw TMP1, -8+HI(RA) | 4569 | | sw TMP1, -8+HI(RA) |
@@ -4573,7 +4573,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
4573 | | li TMP3, BC_JMP | 4573 | | li TMP3, BC_JMP |
4574 | | li TMP1, BC_ITERC | 4574 | | li TMP1, BC_ITERC |
4575 | | sb TMP3, -4+OFS_OP(PC) | 4575 | | sb TMP3, -4+OFS_OP(PC) |
4576 | | addu PC, TMP0, TMP2 | 4576 | | addu PC, TMP0, TMP2 |
4577 | | b <1 | 4577 | | b <1 |
4578 | |. sb TMP1, OFS_OP(PC) | 4578 | |. sb TMP1, OFS_OP(PC) |
4579 | break; | 4579 | break; |