Fix data-flow analysis for BC_ITERL.

This commit is contained in:
Mike Pall 2011-06-27 01:11:11 +02:00
parent e613cb7695
commit 113f8e9ac2

View File

@ -192,7 +192,7 @@ static BCReg snap_usedef(jit_State *J, uint8_t *udf,
handle_jump: { handle_jump: {
BCReg minslot = bc_a(ins); BCReg minslot = bc_a(ins);
if (op >= BC_FORI && op <= BC_JFORL) minslot += FORL_EXT; if (op >= BC_FORI && op <= BC_JFORL) minslot += FORL_EXT;
else if (op >= BC_ITERL && op <= BC_JITERL) minslot += bc_b(pc[-1])-1; else if (op >= BC_ITERL && op <= BC_JITERL) minslot += bc_b(pc[-2])-1;
else if (op == BC_UCLO) { pc += bc_j(ins); break; } else if (op == BC_UCLO) { pc += bc_j(ins); break; }
for (s = minslot; s < maxslot; s++) DEF_SLOT(s); for (s = minslot; s < maxslot; s++) DEF_SLOT(s);
return minslot < maxslot ? minslot : maxslot; return minslot < maxslot ? minslot : maxslot;