summaryrefslogtreecommitdiff
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
parent130d1dc5f243198c2f7800743704057f4e683065 (diff)
downloadluajit2-019fb9d1e92b6521a3db2c15c8d0f6922d5250e6.tar.gz
Fix soft-float math.abs() and negation.
Broken since SIMD constants were switched to IR_FLOAD REF_NIL.
-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)
nir->o = IR_CONV; /* Pass through loword. */
nir->op2 = (IRT_INT << 5) | IRT_INT;
hi = split_emit(J, IRT(ir->o == IR_NEG ? IR_BXOR : IR_BAND, IRT_SOFTFP),
- hisubst[ir->op1], hisubst[ir->op2]);
+ hisubst[ir->op1],
+ lj_ir_kint(J, (int32_t)(0x7fffffffu + (ir->o == IR_NEG))));
break;
case IR_SLOAD:
if ((nir->op2 & IRSLOAD_CONVERT)) { /* Convert from int to number. */