diff --git a/src/lj_crecord.c b/src/lj_crecord.c index 38d44e4b..a8342015 100644 --- a/src/lj_crecord.c +++ b/src/lj_crecord.c @@ -1005,7 +1005,7 @@ static TRef crec_arith_ptr(jit_State *J, TRef *sp, CType **s, MMS mm) CTSize sz = lj_ctype_size(cts, ctype_cid(ctp->info)); if (sz == 0 || (sz & (sz-1)) != 0) return 0; /* NYI: integer division. */ - tr = emitir(IRT(IR_SUB, IRT_PTR), sp[0], sp[1]); + tr = emitir(IRT(IR_SUB, IRT_INTP), sp[0], sp[1]); tr = emitir(IRT(IR_BSAR, IRT_INTP), tr, lj_ir_kint(J, lj_fls(sz))); #if LJ_64 tr = emitconv(tr, IRT_NUM, IRT_INTP, 0);