aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lj_asm_arm.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/lj_asm_arm.h b/src/lj_asm_arm.h
index 37cbb5be..25a28bd7 100644
--- a/src/lj_asm_arm.h
+++ b/src/lj_asm_arm.h
@@ -1721,6 +1721,7 @@ notst:
1721 as->flagmcp = as->mcp; /* Allow elimination of the compare. */ 1721 as->flagmcp = as->mcp; /* Allow elimination of the compare. */
1722} 1722}
1723 1723
1724#if LJ_HASFFI
1724/* 64 bit integer comparisons. */ 1725/* 64 bit integer comparisons. */
1725static void asm_int64comp(ASMState *as, IRIns *ir) 1726static void asm_int64comp(ASMState *as, IRIns *ir)
1726{ 1727{
@@ -1756,6 +1757,7 @@ static void asm_int64comp(ASMState *as, IRIns *ir)
1756 } 1757 }
1757 emit_n(as, ARMI_CMP^mhi, lefthi); 1758 emit_n(as, ARMI_CMP^mhi, lefthi);
1758} 1759}
1760#endif
1759 1761
1760/* -- Support for 64 bit ops in 32 bit mode ------------------------------- */ 1762/* -- Support for 64 bit ops in 32 bit mode ------------------------------- */
1761 1763
@@ -1769,11 +1771,14 @@ static void asm_hiop(ASMState *as, IRIns *ir)
1769 if ((ir-1)->o <= IR_NE) { /* 64 bit integer or FP comparisons. ORDER IR. */ 1771 if ((ir-1)->o <= IR_NE) { /* 64 bit integer or FP comparisons. ORDER IR. */
1770 as->curins--; /* Always skip the loword comparison. */ 1772 as->curins--; /* Always skip the loword comparison. */
1771#if LJ_SOFTFP 1773#if LJ_SOFTFP
1772 if (!irt_isint(ir->t)) 1774 if (!irt_isint(ir->t)) {
1773 asm_sfpcomp(as, ir-1); 1775 asm_sfpcomp(as, ir-1);
1774 else 1776 return;
1777 }
1778#endif
1779#if LJ_HASFFI
1780 asm_int64comp(as, ir-1);
1775#endif 1781#endif
1776 asm_int64comp(as, ir-1);
1777 return; 1782 return;
1778#if LJ_SOFTFP 1783#if LJ_SOFTFP
1779 } else if ((ir-1)->o == IR_MIN || (ir-1)->o == IR_MAX) { 1784 } else if ((ir-1)->o == IR_MIN || (ir-1)->o == IR_MAX) {