Fix restore of sunk CNEWI with implicit P32 to P64 conversion.

This commit is contained in:
Mike Pall 2012-07-18 18:02:32 +02:00
parent 4d9c29a78c
commit f1b4fa844b

View File

@ -662,6 +662,10 @@ static void snap_restoredata(GCtrace *T, ExitState *ex,
rs = snap_renameref(T, snapno, ref, rs); rs = snap_renameref(T, snapno, ref, rs);
if (ra_hasspill(regsp_spill(rs))) { if (ra_hasspill(regsp_spill(rs))) {
src = &ex->spill[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 { } else {
Reg r = regsp_reg(rs); Reg r = regsp_reg(rs);
if (ra_noreg(r)) { if (ra_noreg(r)) {