aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2017-02-20 02:51:05 +0100
committerMike Pall <mike>2017-02-20 02:51:05 +0100
commit019fb9d1e92b6521a3db2c15c8d0f6922d5250e6 (patch)
treefee05c57800300f7f63bd3229e9109abe12a35c8 /src
parent130d1dc5f243198c2f7800743704057f4e683065 (diff)
downloadluajit-019fb9d1e92b6521a3db2c15c8d0f6922d5250e6.tar.gz
luajit-019fb9d1e92b6521a3db2c15c8d0f6922d5250e6.tar.bz2
luajit-019fb9d1e92b6521a3db2c15c8d0f6922d5250e6.zip
Fix soft-float math.abs() and negation.
Broken since SIMD constants were switched to IR_FLOAD REF_NIL.
Diffstat (limited to 'src')
-rw-r--r--src/lj_opt_split.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lj_opt_split.c b/src/lj_opt_split.c
index 09a85da7..fc935204 100644
--- a/src/lj_opt_split.c
+++ b/src/lj_opt_split.c
@@ -436,7 +436,8 @@ static void split_ir(jit_State *J)
436 nir->o = IR_CONV; /* Pass through loword. */ 436 nir->o = IR_CONV; /* Pass through loword. */
437 nir->op2 = (IRT_INT << 5) | IRT_INT; 437 nir->op2 = (IRT_INT << 5) | IRT_INT;
438 hi = split_emit(J, IRT(ir->o == IR_NEG ? IR_BXOR : IR_BAND, IRT_SOFTFP), 438 hi = split_emit(J, IRT(ir->o == IR_NEG ? IR_BXOR : IR_BAND, IRT_SOFTFP),
439 hisubst[ir->op1], hisubst[ir->op2]); 439 hisubst[ir->op1],
440 lj_ir_kint(J, (int32_t)(0x7fffffffu + (ir->o == IR_NEG))));
440 break; 441 break;
441 case IR_SLOAD: 442 case IR_SLOAD:
442 if ((nir->op2 & IRSLOAD_CONVERT)) { /* Convert from int to number. */ 443 if ((nir->op2 & IRSLOAD_CONVERT)) { /* Convert from int to number. */