mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 23:24:09 +00:00
Fix TDUP to HLOAD forwarding for DUALNUM builds.
This commit is contained in:
parent
3dc7baf6af
commit
9a98ba64b4
@ -181,7 +181,8 @@ static TRef fwd_ahload(jit_State *J, IRRef xref)
|
|||||||
lua_assert(ir->o != IR_TNEW || irt_isnil(fins->t));
|
lua_assert(ir->o != IR_TNEW || irt_isnil(fins->t));
|
||||||
if (irt_ispri(fins->t)) {
|
if (irt_ispri(fins->t)) {
|
||||||
return TREF_PRI(irt_type(fins->t));
|
return TREF_PRI(irt_type(fins->t));
|
||||||
} else if (irt_isnum(fins->t) || irt_isstr(fins->t)) {
|
} else if (irt_isnum(fins->t) || (LJ_DUALNUM && irt_isint(fins->t)) ||
|
||||||
|
irt_isstr(fins->t)) {
|
||||||
TValue keyv;
|
TValue keyv;
|
||||||
cTValue *tv;
|
cTValue *tv;
|
||||||
IRIns *key = IR(xr->op2);
|
IRIns *key = IR(xr->op2);
|
||||||
@ -191,6 +192,8 @@ static TRef fwd_ahload(jit_State *J, IRRef xref)
|
|||||||
lua_assert(itype2irt(tv) == irt_type(fins->t));
|
lua_assert(itype2irt(tv) == irt_type(fins->t));
|
||||||
if (irt_isnum(fins->t))
|
if (irt_isnum(fins->t))
|
||||||
return lj_ir_knum_u64(J, tv->u64);
|
return lj_ir_knum_u64(J, tv->u64);
|
||||||
|
else if (LJ_DUALNUM && irt_isint(fins->t))
|
||||||
|
return lj_ir_kint(J, intV(tv));
|
||||||
else
|
else
|
||||||
return lj_ir_kstr(J, strV(tv));
|
return lj_ir_kstr(J, strV(tv));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user