diff options
author | Mike Pall <mike> | 2016-03-30 16:26:27 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2016-03-30 16:26:27 +0200 |
commit | 62af10152433c45e5d83e442538fabf1f57f189b (patch) | |
tree | 71a822c4143efdda40fe3d6fd34e39a746f898c1 | |
parent | 9531eb235bbfa8f2928b450614a3426c5197b712 (diff) |
MIPS: Fix use of ffgccheck delay slots in interpreter.
-rw-r--r-- | src/vm_mips.dasc | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/vm_mips.dasc b/src/vm_mips.dasc index 3a300d3..b135fbe 100644 --- a/src/vm_mips.dasc +++ b/src/vm_mips.dasc @@ -1621,6 +1621,7 @@ static void build_subroutines(BuildCtx *ctx) | |.ffunc string_char // Only handle the 1-arg case here. | ffgccheck + |. nop | lw CARG3, HI(BASE) | ldc1 FARG1, 0(BASE) | li AT, 8 @@ -1648,6 +1649,7 @@ static void build_subroutines(BuildCtx *ctx) | |.ffunc string_sub | ffgccheck + |. nop | addiu AT, NARGS8:RC, -16 | lw CARG3, 16+HI(BASE) | ldc1 f0, 16(BASE) @@ -1697,6 +1699,7 @@ static void build_subroutines(BuildCtx *ctx) | |.ffunc string_rep // Only handle the 1-char case inline. | ffgccheck + |. nop | lw TMP0, HI(BASE) | addiu AT, NARGS8:RC, -16 // Exactly 2 arguments. | lw CARG4, 8+HI(BASE) @@ -1731,6 +1734,7 @@ static void build_subroutines(BuildCtx *ctx) | |.ffunc string_reverse | ffgccheck + |. nop | lw CARG3, HI(BASE) | lw STR:CARG1, LO(BASE) | beqz NARGS8:RC, ->fff_fallback @@ -1756,6 +1760,7 @@ static void build_subroutines(BuildCtx *ctx) |.macro ffstring_case, name, lo | .ffunc name | ffgccheck + |. nop | lw CARG3, HI(BASE) | lw STR:CARG1, LO(BASE) | beqz NARGS8:RC, ->fff_fallback |