mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 23:24:09 +00:00
Proper fix for LJ_GC64 changes to asm_href().
This commit is contained in:
parent
d9986fbadb
commit
56fe899a06
@ -1163,7 +1163,8 @@ static void asm_href(ASMState *as, IRIns *ir, IROp merge)
|
|||||||
#if LJ_64 && !LJ_GC64
|
#if LJ_64 && !LJ_GC64
|
||||||
} else if (irt_islightud(kt)) {
|
} else if (irt_islightud(kt)) {
|
||||||
emit_rmro(as, XO_CMP, key|REX_64, dest, offsetof(Node, key.u64));
|
emit_rmro(as, XO_CMP, key|REX_64, dest, offsetof(Node, key.u64));
|
||||||
#elif LJ_GC64
|
#endif
|
||||||
|
#if LJ_GC64
|
||||||
} else if (irt_isaddr(kt)) {
|
} else if (irt_isaddr(kt)) {
|
||||||
if (isk) {
|
if (isk) {
|
||||||
TValue k;
|
TValue k;
|
||||||
@ -1180,7 +1181,7 @@ static void asm_href(ASMState *as, IRIns *ir, IROp merge)
|
|||||||
lua_assert(irt_ispri(kt) && !irt_isnil(kt));
|
lua_assert(irt_ispri(kt) && !irt_isnil(kt));
|
||||||
emit_u32(as, (irt_toitype(kt)<<15)|0x7fff);
|
emit_u32(as, (irt_toitype(kt)<<15)|0x7fff);
|
||||||
emit_rmro(as, XO_ARITHi, XOg_CMP, dest, offsetof(Node, key.it));
|
emit_rmro(as, XO_ARITHi, XOg_CMP, dest, offsetof(Node, key.it));
|
||||||
#endif
|
#else
|
||||||
} else {
|
} else {
|
||||||
if (!irt_ispri(kt)) {
|
if (!irt_ispri(kt)) {
|
||||||
lua_assert(irt_isaddr(kt));
|
lua_assert(irt_isaddr(kt));
|
||||||
@ -1194,6 +1195,7 @@ static void asm_href(ASMState *as, IRIns *ir, IROp merge)
|
|||||||
lua_assert(!irt_isnil(kt));
|
lua_assert(!irt_isnil(kt));
|
||||||
emit_i8(as, irt_toitype(kt));
|
emit_i8(as, irt_toitype(kt));
|
||||||
emit_rmro(as, XO_ARITHi8, XOg_CMP, dest, offsetof(Node, key.it));
|
emit_rmro(as, XO_ARITHi8, XOg_CMP, dest, offsetof(Node, key.it));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
emit_sfixup(as, l_loop);
|
emit_sfixup(as, l_loop);
|
||||||
checkmclim(as);
|
checkmclim(as);
|
||||||
|
Loading…
Reference in New Issue
Block a user