]> git.ipfire.org Git - thirdparty/LuaJIT.git/commitdiff
Fix restore of sunk CNEWI with implicit P32 to P64 conversion.
authorMike Pall <mike>
Wed, 18 Jul 2012 16:02:32 +0000 (18:02 +0200)
committerMike Pall <mike>
Wed, 18 Jul 2012 16:02:32 +0000 (18:02 +0200)
src/lj_snap.c

index b9a82008e33c1f433a07915def0ee604d442bba0..0aab7e78b35207d5f1415602ec20aabf5a3c8b08 100644 (file)
@@ -662,6 +662,10 @@ static void snap_restoredata(GCtrace *T, ExitState *ex,
       rs = snap_renameref(T, snapno, ref, rs);
     if (ra_hasspill(regsp_spill(rs))) {
       src = &ex->spill[regsp_spill(rs)];
+      if (sz == 8 && !irt_is64(ir->t)) {
+       tmp = (uint64_t)(uint32_t)*src;
+       src = (int32_t *)&tmp;
+      }
     } else {
       Reg r = regsp_reg(rs);
       if (ra_noreg(r)) {