]> git.ipfire.org Git - thirdparty/LuaJIT.git/commitdiff
PPC: Fix resume after yield from hook.
authorMike Pall <mike>
Mon, 23 Jan 2012 18:13:26 +0000 (19:13 +0100)
committerMike Pall <mike>
Mon, 23 Jan 2012 18:13:26 +0000 (19:13 +0100)
src/buildvm_ppc.dasc

index c26f3924c7a979c704e2bd115c15783a0f297b0e..7872a482f334c820e537abea13c11ad4f2a526fe 100644 (file)
@@ -501,22 +501,22 @@ static void build_subroutines(BuildCtx *ctx)
   |   lwz TMP1, L->top
   |  lwz PC, FRAME_PC(BASE)
   |     lus TMP3, 0x59c0               // TOBIT = 2^52 + 2^51 (float).
-  |   sub RD, TMP1, BASE
   |    stb CARG3, L->status
   |     stw TMP3, TMPD
-  |  andi. TMP0, PC, FRAME_TYPE
   |     ori TMP3, TMP3, 0x0004         // TONUM = 2^52 + 2^51 + 2^31 (float).
   |     lfs TOBIT, TMPD
-  |     li ZERO, 0
+  |   sub RD, TMP1, BASE
   |     stw TMP3, TMPD
-  |   addi RD, RD, 8
   |     lus TMP0, 0x4338               // Hiword of 2^52 + 2^51 (double)
-  |   mr MULTRES, RD
+  |   addi RD, RD, 8
   |     stw TMP0, TONUM_HI
   |    li_vmstate INTERP
+  |     li ZERO, 0
+  |    st_vmstate
+  |  andi. TMP0, PC, FRAME_TYPE
+  |   mr MULTRES, RD
   |     lfs TONUM, TMPD
   |     li TISNIL, LJ_TNIL
-  |    st_vmstate
   |  beq ->BC_RET_Z
   |  b ->vm_return
   |