aboutsummaryrefslogtreecommitdiff
path: root/src/vm_ppcspe.dasc
diff options
context:
space:
mode:
Diffstat (limited to 'src/vm_ppcspe.dasc')
-rw-r--r--src/vm_ppcspe.dasc8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/vm_ppcspe.dasc b/src/vm_ppcspe.dasc
index c4a44191..ea33c08b 100644
--- a/src/vm_ppcspe.dasc
+++ b/src/vm_ppcspe.dasc
@@ -1184,8 +1184,12 @@ static void build_subroutines(BuildCtx *ctx)
1184 |//-- Base library: catch errors ---------------------------------------- 1184 |//-- Base library: catch errors ----------------------------------------
1185 | 1185 |
1186 |.ffunc pcall 1186 |.ffunc pcall
1187 | lwz TMP1, L->maxstack
1188 | add TMP2, BASE, NARGS8:RC
1187 | cmplwi NARGS8:RC, 8 1189 | cmplwi NARGS8:RC, 8
1188 | lbz TMP3, DISPATCH_GL(hookmask)(DISPATCH) 1190 | lbz TMP3, DISPATCH_GL(hookmask)(DISPATCH)
1191 | cmplw cr1, TMP1, TMP2
1192 | cror 4*cr0+lt, 4*cr0+lt, 4*cr1+lt
1189 | blt ->fff_fallback 1193 | blt ->fff_fallback
1190 | mr TMP2, BASE 1194 | mr TMP2, BASE
1191 | la BASE, 8(BASE) 1195 | la BASE, 8(BASE)
@@ -1196,8 +1200,12 @@ static void build_subroutines(BuildCtx *ctx)
1196 | b ->vm_call_dispatch 1200 | b ->vm_call_dispatch
1197 | 1201 |
1198 |.ffunc_2 xpcall 1202 |.ffunc_2 xpcall
1203 | lwz TMP1, L->maxstack
1204 | add TMP2, BASE, NARGS8:RC
1199 | lbz TMP3, DISPATCH_GL(hookmask)(DISPATCH) 1205 | lbz TMP3, DISPATCH_GL(hookmask)(DISPATCH)
1200 | mr TMP2, BASE 1206 | mr TMP2, BASE
1207 | cmplw TMP1, TMP2
1208 | blt ->fff_fallback
1201 | checkfunc CARG2 // Traceback must be a function. 1209 | checkfunc CARG2 // Traceback must be a function.
1202 | checkfail ->fff_fallback 1210 | checkfail ->fff_fallback
1203 | la BASE, 16(BASE) 1211 | la BASE, 16(BASE)