diff options
author | Mike Pall <mike> | 2017-02-20 02:51:05 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2017-02-20 02:51:05 +0100 |
commit | 019fb9d1e92b6521a3db2c15c8d0f6922d5250e6 (patch) | |
tree | fee05c57800300f7f63bd3229e9109abe12a35c8 | |
parent | 130d1dc5f243198c2f7800743704057f4e683065 (diff) | |
download | luajit-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.
-rw-r--r-- | src/lj_opt_split.c | 3 |
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. */ |