Browse Source

ARM: Fix soft-float math.min()/math.max().

Reported by Dong Jianqiang. #1356
Mike Pall 6 months ago
parent
commit
51d4c26ec7
2 changed files with 3 additions and 3 deletions
  1. 1 1
      src/lj_asm_arm.h
  2. 2 2
      src/vm_arm.dasc

+ 1 - 1
src/lj_asm_arm.h

@@ -1927,7 +1927,7 @@ static void asm_hiop(ASMState *as, IRIns *ir)
   } else if ((ir-1)->o == IR_MIN || (ir-1)->o == IR_MAX) {
   } else if ((ir-1)->o == IR_MIN || (ir-1)->o == IR_MAX) {
     as->curins--;  /* Always skip the loword min/max. */
     as->curins--;  /* Always skip the loword min/max. */
     if (uselo || usehi)
     if (uselo || usehi)
-      asm_sfpmin_max(as, ir-1, (ir-1)->o == IR_MIN ? CC_PL : CC_LE);
+      asm_sfpmin_max(as, ir-1, (ir-1)->o == IR_MIN ? CC_HS : CC_LS);
     return;
     return;
 #elif LJ_HASFFI
 #elif LJ_HASFFI
   } else if ((ir-1)->o == IR_CONV) {
   } else if ((ir-1)->o == IR_CONV) {

+ 2 - 2
src/vm_arm.dasc

@@ -1717,8 +1717,8 @@ static void build_subroutines(BuildCtx *ctx)
   |.endif
   |.endif
   |.endmacro
   |.endmacro
   |
   |
-  |  math_minmax math_min, gt, pl
-  |  math_minmax math_max, lt, le
+  |  math_minmax math_min, gt, hs
+  |  math_minmax math_max, lt, ls
   |
   |
   |//-- String library -----------------------------------------------------
   |//-- String library -----------------------------------------------------
   |
   |