summaryrefslogtreecommitdiff
path: root/src/lj_snap.c
diff options
context:
space:
mode:
authorMike Pall <mike>2012-07-18 18:02:32 +0200
committerMike Pall <mike>2012-07-18 18:02:32 +0200
commitf1b4fa844b6b2968aa0fd1b2d3ede1d32ba267c3 (patch)
tree3e33201c743fe2e4b457b89420ecbf5d6c4e7a87 /src/lj_snap.c
parent4d9c29a78cde2596ea3286744d93d29dd2a6d9ca (diff)
downloadluajit-f1b4fa844b6b2968aa0fd1b2d3ede1d32ba267c3.tar.gz
luajit-f1b4fa844b6b2968aa0fd1b2d3ede1d32ba267c3.tar.bz2
luajit-f1b4fa844b6b2968aa0fd1b2d3ede1d32ba267c3.zip
Fix restore of sunk CNEWI with implicit P32 to P64 conversion.
Diffstat (limited to 'src/lj_snap.c')
-rw-r--r--src/lj_snap.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/lj_snap.c b/src/lj_snap.c
index b9a82008..0aab7e78 100644
--- a/src/lj_snap.c
+++ b/src/lj_snap.c
@@ -662,6 +662,10 @@ static void snap_restoredata(GCtrace *T, ExitState *ex,
662 rs = snap_renameref(T, snapno, ref, rs); 662 rs = snap_renameref(T, snapno, ref, rs);
663 if (ra_hasspill(regsp_spill(rs))) { 663 if (ra_hasspill(regsp_spill(rs))) {
664 src = &ex->spill[regsp_spill(rs)]; 664 src = &ex->spill[regsp_spill(rs)];
665 if (sz == 8 && !irt_is64(ir->t)) {
666 tmp = (uint64_t)(uint32_t)*src;
667 src = (int32_t *)&tmp;
668 }
665 } else { 669 } else {
666 Reg r = regsp_reg(rs); 670 Reg r = regsp_reg(rs);
667 if (ra_noreg(r)) { 671 if (ra_noreg(r)) {