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 |
