diff options
Diffstat (limited to 'src/lj_record.c')
-rw-r--r-- | src/lj_record.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/src/lj_record.c b/src/lj_record.c index 613e458e..ea23c758 100644 --- a/src/lj_record.c +++ b/src/lj_record.c | |||
@@ -1666,8 +1666,7 @@ void lj_record_ins(jit_State *J) | |||
1666 | 1666 | ||
1667 | case BC_UNM: | 1667 | case BC_UNM: |
1668 | if (tref_isnumber_str(rc)) { | 1668 | if (tref_isnumber_str(rc)) { |
1669 | rc = lj_ir_tonum(J, rc); | 1669 | rc = lj_opt_narrow_unm(J, rc, &ix.tabv); |
1670 | rc = emitir(IRTN(IR_NEG), rc, lj_ir_knum_neg(J)); | ||
1671 | } else { | 1670 | } else { |
1672 | ix.tab = rc; | 1671 | ix.tab = rc; |
1673 | copyTV(J->L, &ix.tabv, &ix.keyv); | 1672 | copyTV(J->L, &ix.tabv, &ix.keyv); |