diff options
Diffstat (limited to 'src/vm_mips.dasc')
| -rw-r--r-- | src/vm_mips.dasc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/vm_mips.dasc b/src/vm_mips.dasc index 5063e7c6..9a39edd6 100644 --- a/src/vm_mips.dasc +++ b/src/vm_mips.dasc | |||
| @@ -3566,7 +3566,8 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
| 3566 | | addu RA, BASE, RA | 3566 | | addu RA, BASE, RA |
| 3567 | | bne SFARG1HI, TISNUM, >2 | 3567 | | bne SFARG1HI, TISNUM, >2 |
| 3568 | |. lw SFARG1LO, LO(RB) | 3568 | |. lw SFARG1LO, LO(RB) |
| 3569 | | lui TMP1, 0x8000 | 3569 | | beqz SFARG1LO, >3 |
| 3570 | |. lui TMP1, 0x8000 | ||
| 3570 | | beq SFARG1LO, TMP1, ->vmeta_unm // Meta handler deals with -2^31. | 3571 | | beq SFARG1LO, TMP1, ->vmeta_unm // Meta handler deals with -2^31. |
| 3571 | |. negu SFARG1LO, SFARG1LO | 3572 | |. negu SFARG1LO, SFARG1LO |
| 3572 | |1: | 3573 | |1: |
| @@ -3580,6 +3581,9 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
| 3580 | |. lui TMP1, 0x8000 | 3581 | |. lui TMP1, 0x8000 |
| 3581 | | b <1 | 3582 | | b <1 |
| 3582 | |. xor SFARG1HI, SFARG1HI, TMP1 | 3583 | |. xor SFARG1HI, SFARG1HI, TMP1 |
| 3584 | |3: | ||
| 3585 | | b <1 | ||
| 3586 | |. lui SFARG1HI, 0x8000 // -0. | ||
| 3583 | break; | 3587 | break; |
| 3584 | case BC_LEN: | 3588 | case BC_LEN: |
| 3585 | | // RA = dst*8, RD = src*8 | 3589 | | // RA = dst*8, RD = src*8 |
