diff --git a/src/lj_asm.c b/src/lj_asm.c index 32dd7e87..6f5e0c45 100644 --- a/src/lj_asm.c +++ b/src/lj_asm.c @@ -847,7 +847,8 @@ static void ra_destpair(ASMState *as, IRIns *ir) if (destlo == RID_RETHI) { if (desthi == RID_RETLO) { #if LJ_TARGET_X86ORX64 - *--as->mcp = REX_64IR(irx, XI_XCHGa + RID_RETHI); + *--as->mcp = XI_XCHGa + RID_RETHI; + if (LJ_64 && irt_is64(irx->t)) *--as->mcp = 0x48; #else emit_movrr(as, irx, RID_RETHI, RID_TMP); emit_movrr(as, irx, RID_RETLO, RID_RETHI);