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 /src | |
parent | 9531eb235bbfa8f2928b450614a3426c5197b712 (diff) | |
download | luajit-62af10152433c45e5d83e442538fabf1f57f189b.tar.gz luajit-62af10152433c45e5d83e442538fabf1f57f189b.tar.bz2 luajit-62af10152433c45e5d83e442538fabf1f57f189b.zip |
MIPS: Fix use of ffgccheck delay slots in interpreter.
Diffstat (limited to 'src')
-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 3a300d36..b135fbe0 100644 --- a/src/vm_mips.dasc +++ b/src/vm_mips.dasc | |||
@@ -1621,6 +1621,7 @@ static void build_subroutines(BuildCtx *ctx) | |||
1621 | | | 1621 | | |
1622 | |.ffunc string_char // Only handle the 1-arg case here. | 1622 | |.ffunc string_char // Only handle the 1-arg case here. |
1623 | | ffgccheck | 1623 | | ffgccheck |
1624 | |. nop | ||
1624 | | lw CARG3, HI(BASE) | 1625 | | lw CARG3, HI(BASE) |
1625 | | ldc1 FARG1, 0(BASE) | 1626 | | ldc1 FARG1, 0(BASE) |
1626 | | li AT, 8 | 1627 | | li AT, 8 |
@@ -1648,6 +1649,7 @@ static void build_subroutines(BuildCtx *ctx) | |||
1648 | | | 1649 | | |
1649 | |.ffunc string_sub | 1650 | |.ffunc string_sub |
1650 | | ffgccheck | 1651 | | ffgccheck |
1652 | |. nop | ||
1651 | | addiu AT, NARGS8:RC, -16 | 1653 | | addiu AT, NARGS8:RC, -16 |
1652 | | lw CARG3, 16+HI(BASE) | 1654 | | lw CARG3, 16+HI(BASE) |
1653 | | ldc1 f0, 16(BASE) | 1655 | | ldc1 f0, 16(BASE) |
@@ -1697,6 +1699,7 @@ static void build_subroutines(BuildCtx *ctx) | |||
1697 | | | 1699 | | |
1698 | |.ffunc string_rep // Only handle the 1-char case inline. | 1700 | |.ffunc string_rep // Only handle the 1-char case inline. |
1699 | | ffgccheck | 1701 | | ffgccheck |
1702 | |. nop | ||
1700 | | lw TMP0, HI(BASE) | 1703 | | lw TMP0, HI(BASE) |
1701 | | addiu AT, NARGS8:RC, -16 // Exactly 2 arguments. | 1704 | | addiu AT, NARGS8:RC, -16 // Exactly 2 arguments. |
1702 | | lw CARG4, 8+HI(BASE) | 1705 | | lw CARG4, 8+HI(BASE) |
@@ -1731,6 +1734,7 @@ static void build_subroutines(BuildCtx *ctx) | |||
1731 | | | 1734 | | |
1732 | |.ffunc string_reverse | 1735 | |.ffunc string_reverse |
1733 | | ffgccheck | 1736 | | ffgccheck |
1737 | |. nop | ||
1734 | | lw CARG3, HI(BASE) | 1738 | | lw CARG3, HI(BASE) |
1735 | | lw STR:CARG1, LO(BASE) | 1739 | | lw STR:CARG1, LO(BASE) |
1736 | | beqz NARGS8:RC, ->fff_fallback | 1740 | | beqz NARGS8:RC, ->fff_fallback |
@@ -1756,6 +1760,7 @@ static void build_subroutines(BuildCtx *ctx) | |||
1756 | |.macro ffstring_case, name, lo | 1760 | |.macro ffstring_case, name, lo |
1757 | | .ffunc name | 1761 | | .ffunc name |
1758 | | ffgccheck | 1762 | | ffgccheck |
1763 | |. nop | ||
1759 | | lw CARG3, HI(BASE) | 1764 | | lw CARG3, HI(BASE) |
1760 | | lw STR:CARG1, LO(BASE) | 1765 | | lw STR:CARG1, LO(BASE) |
1761 | | beqz NARGS8:RC, ->fff_fallback | 1766 | | beqz NARGS8:RC, ->fff_fallback |