Merge branch 'master' into v2.1

This commit is contained in:
Mike Pall 2013-04-22 22:30:33 +02:00
commit 2ab5e7c5dc

View File

@ -1721,6 +1721,7 @@ notst:
as->flagmcp = as->mcp; /* Allow elimination of the compare. */ as->flagmcp = as->mcp; /* Allow elimination of the compare. */
} }
#if LJ_HASFFI
/* 64 bit integer comparisons. */ /* 64 bit integer comparisons. */
static void asm_int64comp(ASMState *as, IRIns *ir) static void asm_int64comp(ASMState *as, IRIns *ir)
{ {
@ -1756,6 +1757,7 @@ static void asm_int64comp(ASMState *as, IRIns *ir)
} }
emit_n(as, ARMI_CMP^mhi, lefthi); emit_n(as, ARMI_CMP^mhi, lefthi);
} }
#endif
/* -- Support for 64 bit ops in 32 bit mode ------------------------------- */ /* -- Support for 64 bit ops in 32 bit mode ------------------------------- */
@ -1769,11 +1771,14 @@ static void asm_hiop(ASMState *as, IRIns *ir)
if ((ir-1)->o <= IR_NE) { /* 64 bit integer or FP comparisons. ORDER IR. */ if ((ir-1)->o <= IR_NE) { /* 64 bit integer or FP comparisons. ORDER IR. */
as->curins--; /* Always skip the loword comparison. */ as->curins--; /* Always skip the loword comparison. */
#if LJ_SOFTFP #if LJ_SOFTFP
if (!irt_isint(ir->t)) if (!irt_isint(ir->t)) {
asm_sfpcomp(as, ir-1); asm_sfpcomp(as, ir-1);
else return;
}
#endif #endif
#if LJ_HASFFI
asm_int64comp(as, ir-1); asm_int64comp(as, ir-1);
#endif
return; return;
#if LJ_SOFTFP #if LJ_SOFTFP
} else if ((ir-1)->o == IR_MIN || (ir-1)->o == IR_MAX) { } else if ((ir-1)->o == IR_MIN || (ir-1)->o == IR_MAX) {