]> git.ipfire.org Git - thirdparty/LuaJIT.git/commitdiff
x86/x64: Fix fusion of comparisons with u8/u16 XLOAD.
authorMike Pall <mike>
Wed, 22 Jun 2011 15:55:43 +0000 (17:55 +0200)
committerMike Pall <mike>
Wed, 22 Jun 2011 15:56:41 +0000 (17:56 +0200)
src/lj_asm_x86.h

index e5bc4a0e235175e2f53d3c99ba76ea45526ecc72..ba28792dbcaa57f47680ec7892514b94ba3fde7f 100644 (file)
@@ -2037,6 +2037,8 @@ static void asm_comp(ASMState *as, IRIns *ir, uint32_t cc)
          left = asm_fuseload(as, lref, RSET_GPR);
          irl->t = origt;
          if (left == RID_MRM) {  /* Fusion succeeded? */
+           if (irt_isu8(irl->t) || irt_isu16(irl->t))
+             cc >>= 4;  /* Need unsigned compare. */
            asm_guardcc(as, cc);
            emit_i8(as, imm);
            emit_mrm(as, (irt_isi8(origt) || irt_isu8(origt)) ?