diff options
Diffstat (limited to 'src/lj_ir.c')
-rw-r--r-- | src/lj_ir.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lj_ir.c b/src/lj_ir.c index e9364762..3217bc1e 100644 --- a/src/lj_ir.c +++ b/src/lj_ir.c | |||
@@ -393,7 +393,7 @@ TRef LJ_FASTCALL lj_ir_tonum(jit_State *J, TRef tr) | |||
393 | { | 393 | { |
394 | if (!tref_isnum(tr)) { | 394 | if (!tref_isnum(tr)) { |
395 | if (tref_isinteger(tr)) | 395 | if (tref_isinteger(tr)) |
396 | tr = emitir(IRTN(IR_TONUM), tr, 0); | 396 | tr = emitir(IRTN(IR_CONV), tr, IRCONV_NUM_INT); |
397 | else if (tref_isstr(tr)) | 397 | else if (tref_isstr(tr)) |
398 | tr = emitir(IRTG(IR_STRTO, IRT_NUM), tr, 0); | 398 | tr = emitir(IRTG(IR_STRTO, IRT_NUM), tr, 0); |
399 | else | 399 | else |
@@ -434,7 +434,7 @@ TRef LJ_FASTCALL lj_ir_toint(jit_State *J, TRef tr) | |||
434 | tr = emitir(IRTG(IR_STRTO, IRT_NUM), tr, 0); | 434 | tr = emitir(IRTG(IR_STRTO, IRT_NUM), tr, 0); |
435 | else if (!tref_isnum(tr)) | 435 | else if (!tref_isnum(tr)) |
436 | lj_trace_err(J, LJ_TRERR_BADTYPE); | 436 | lj_trace_err(J, LJ_TRERR_BADTYPE); |
437 | tr = emitir(IRTI(IR_TOINT), tr, IRTOINT_ANY); | 437 | tr = emitir(IRTI(IR_CONV), tr, IRCONV_INT_NUM|IRCONV_ANY); |
438 | } | 438 | } |
439 | return tr; | 439 | return tr; |
440 | } | 440 | } |