From 56fe899a06c5a05e8d4ceb8972b3c45dab1c2979 Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Sat, 28 May 2016 13:36:14 +0200 Subject: [PATCH] Proper fix for LJ_GC64 changes to asm_href(). --- src/lj_asm_x86.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/lj_asm_x86.h b/src/lj_asm_x86.h index f5230a44..dcdc727a 100644 --- a/src/lj_asm_x86.h +++ b/src/lj_asm_x86.h @@ -1163,7 +1163,8 @@ static void asm_href(ASMState *as, IRIns *ir, IROp merge) #if LJ_64 && !LJ_GC64 } else if (irt_islightud(kt)) { 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)) { if (isk) { TValue k; @@ -1180,7 +1181,7 @@ static void asm_href(ASMState *as, IRIns *ir, IROp merge) lua_assert(irt_ispri(kt) && !irt_isnil(kt)); emit_u32(as, (irt_toitype(kt)<<15)|0x7fff); emit_rmro(as, XO_ARITHi, XOg_CMP, dest, offsetof(Node, key.it)); -#endif +#else } else { if (!irt_ispri(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)); emit_i8(as, irt_toitype(kt)); emit_rmro(as, XO_ARITHi8, XOg_CMP, dest, offsetof(Node, key.it)); +#endif } emit_sfixup(as, l_loop); checkmclim(as);