aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/buildvm_ppc.dasc12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/buildvm_ppc.dasc b/src/buildvm_ppc.dasc
index 856311c7..a6ac25e2 100644
--- a/src/buildvm_ppc.dasc
+++ b/src/buildvm_ppc.dasc
@@ -391,12 +391,20 @@ static void build_subroutines(BuildCtx *ctx)
391 | rlwinm sp, CARG1, 0, 0, 29 391 | rlwinm sp, CARG1, 0, 0, 29
392 |->vm_unwind_ff_eh: // Landing pad for external unwinder. 392 |->vm_unwind_ff_eh: // Landing pad for external unwinder.
393 | lwz L, SAVE_L 393 | lwz L, SAVE_L
394 | evsplati TISNUM, LJ_TISNUM+1 // Setup type comparison constants.
395 | evsplati TISFUNC, LJ_TFUNC
396 | lus TOBIT, 0x4338
397 | evsplati TISTAB, LJ_TTAB
398 | li TMP0, 0
394 | lwz BASE, L->base 399 | lwz BASE, L->base
395 | li TMP1, LJ_TFALSE 400 | evmergelo TOBIT, TOBIT, TMP0
396 | lwz DISPATCH, L->glref // Setup pointer to dispatch table. 401 | lwz DISPATCH, L->glref // Setup pointer to dispatch table.
402 | evsplati TISSTR, LJ_TSTR
403 | li TMP1, LJ_TFALSE
404 | evsplati TISNIL, LJ_TNIL
397 | li_vmstate INTERP 405 | li_vmstate INTERP
398 | lwz PC, FRAME_PC(BASE) // Fetch PC of previous frame. 406 | lwz PC, FRAME_PC(BASE) // Fetch PC of previous frame.
399 | subi RA, BASE, 8 // Results start at BASE-8. 407 | la RA, -8(BASE) // Results start at BASE-8.
400 | addi DISPATCH, DISPATCH, GG_G2DISP 408 | addi DISPATCH, DISPATCH, GG_G2DISP
401 | stw TMP1, 0(RA) // Prepend false to error message. 409 | stw TMP1, 0(RA) // Prepend false to error message.
402 | li RD, 16 // 2 results: false + error message. 410 | li RD, 16 // 2 results: false + error message.