diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lj_opt_narrow.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lj_opt_narrow.c b/src/lj_opt_narrow.c index 3085c837..a4a1c8ee 100644 --- a/src/lj_opt_narrow.c +++ b/src/lj_opt_narrow.c | |||
| @@ -545,9 +545,9 @@ TRef lj_opt_narrow_unm(jit_State *J, TRef rc, TValue *vc) | |||
| 545 | rc = conv_str_tonum(J, rc, vc); | 545 | rc = conv_str_tonum(J, rc, vc); |
| 546 | if (tref_isinteger(rc)) { | 546 | if (tref_isinteger(rc)) { |
| 547 | uint32_t k = (uint32_t)numberVint(vc); | 547 | uint32_t k = (uint32_t)numberVint(vc); |
| 548 | if ((LJ_DUALNUM || k != 0) && k != 0x80000000u) { | 548 | if ((tvisint(vc) || k != 0) && k != 0x80000000u) { |
| 549 | TRef zero = lj_ir_kint(J, 0); | 549 | TRef zero = lj_ir_kint(J, 0); |
| 550 | if (!LJ_DUALNUM) | 550 | if (!tvisint(vc)) |
| 551 | emitir(IRTGI(IR_NE), rc, zero); | 551 | emitir(IRTGI(IR_NE), rc, zero); |
| 552 | return emitir(IRTGI(IR_SUBOV), zero, rc); | 552 | return emitir(IRTGI(IR_SUBOV), zero, rc); |
| 553 | } | 553 | } |
