aboutsummaryrefslogtreecommitdiff
path: root/src/vm_ppc.dasc
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/vm_ppc.dasc9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/vm_ppc.dasc b/src/vm_ppc.dasc
index f2e5a08f..abcc03e5 100644
--- a/src/vm_ppc.dasc
+++ b/src/vm_ppc.dasc
@@ -1735,8 +1735,12 @@ static void build_subroutines(BuildCtx *ctx)
1735 |//-- Base library: catch errors ---------------------------------------- 1735 |//-- Base library: catch errors ----------------------------------------
1736 | 1736 |
1737 |.ffunc pcall 1737 |.ffunc pcall
1738 | lwz TMP1, L->maxstack
1739 | add TMP2, BASE, NARGS8:RC
1738 | cmplwi NARGS8:RC, 8 1740 | cmplwi NARGS8:RC, 8
1739 | lbz TMP3, DISPATCH_GL(hookmask)(DISPATCH) 1741 | lbz TMP3, DISPATCH_GL(hookmask)(DISPATCH)
1742 | cmplw cr1, TMP1, TMP2
1743 | cror 4*cr0+lt, 4*cr0+lt, 4*cr1+lt
1740 | blt ->fff_fallback 1744 | blt ->fff_fallback
1741 | mr TMP2, BASE 1745 | mr TMP2, BASE
1742 | la BASE, 8(BASE) 1746 | la BASE, 8(BASE)
@@ -1747,14 +1751,19 @@ static void build_subroutines(BuildCtx *ctx)
1747 | b ->vm_call_dispatch 1751 | b ->vm_call_dispatch
1748 | 1752 |
1749 |.ffunc xpcall 1753 |.ffunc xpcall
1754 | lwz TMP1, L->maxstack
1755 | add TMP2, BASE, NARGS8:RC
1750 | cmplwi NARGS8:RC, 16 1756 | cmplwi NARGS8:RC, 16
1751 | lwz CARG3, 8(BASE) 1757 | lwz CARG3, 8(BASE)
1758 | cmplw cr1, TMP1, TMP2
1752 |.if FPU 1759 |.if FPU
1753 | lfd FARG2, 8(BASE) 1760 | lfd FARG2, 8(BASE)
1761 | cror 4*cr0+lt, 4*cr0+lt, 4*cr1+lt
1754 | lfd FARG1, 0(BASE) 1762 | lfd FARG1, 0(BASE)
1755 |.else 1763 |.else
1756 | lwz CARG1, 0(BASE) 1764 | lwz CARG1, 0(BASE)
1757 | lwz CARG2, 4(BASE) 1765 | lwz CARG2, 4(BASE)
1766 | cror 4*cr0+lt, 4*cr0+lt, 4*cr1+lt
1758 | lwz CARG4, 12(BASE) 1767 | lwz CARG4, 12(BASE)
1759 |.endif 1768 |.endif
1760 | blt ->fff_fallback 1769 | blt ->fff_fallback