From 019fb9d1e92b6521a3db2c15c8d0f6922d5250e6 Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Mon, 20 Feb 2017 02:51:05 +0100 Subject: [PATCH] Fix soft-float math.abs() and negation. Broken since SIMD constants were switched to IR_FLOAD REF_NIL. --- src/lj_opt_split.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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. */