Fold KPTR + offset in SPLIT pass.

This commit is contained in:
Mike Pall 2012-09-27 14:39:16 +02:00
parent 0ecdff43e8
commit d4d9807f45

View File

@ -184,6 +184,8 @@ static IRRef split_ptr(jit_State *J, IRIns *oir, IRRef ref)
IRRef nref = oir[ref].prev;
IRIns *ir = IR(nref);
int32_t ofs = 4;
if (ir->o == IR_KPTR)
return lj_ir_kptr(J, (char *)ir_kptr(ir) + ofs);
if (ir->o == IR_ADD && irref_isk(ir->op2) && !irt_isphi(oir[ref].t)) {
/* Reassociate address. */
ofs += IR(ir->op2)->i;