summaryrefslogtreecommitdiff
path: root/src/lj_opt_fold.c
diff options
context:
space:
mode:
authorMike Pall <mike>2011-03-10 01:57:24 +0100
committerMike Pall <mike>2011-03-10 01:57:24 +0100
commitbfce3c1127fd57fe0c935c92bcf45b4737041edd (patch)
tree2bd2d9e08c70608de63c7a69df7f00cfab07f6be /src/lj_opt_fold.c
parent3f26e3a89d54dfb761ca02fc89aaf15326f5f514 (diff)
downloadluajit-bfce3c1127fd57fe0c935c92bcf45b4737041edd.tar.gz
luajit-bfce3c1127fd57fe0c935c92bcf45b4737041edd.tar.bz2
luajit-bfce3c1127fd57fe0c935c92bcf45b4737041edd.zip
DUALNUM: Handle integer type in JIT compiler.
Diffstat (limited to 'src/lj_opt_fold.c')
-rw-r--r--src/lj_opt_fold.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/lj_opt_fold.c b/src/lj_opt_fold.c
index 471a4b29..e2d5c517 100644
--- a/src/lj_opt_fold.c
+++ b/src/lj_opt_fold.c
@@ -558,7 +558,10 @@ LJFOLD(CONV KINT IRCONV_I64_INT)
558LJFOLD(CONV KINT IRCONV_U64_INT) 558LJFOLD(CONV KINT IRCONV_U64_INT)
559LJFOLDF(kfold_conv_kint_i64) 559LJFOLDF(kfold_conv_kint_i64)
560{ 560{
561 return INT64FOLD((uint64_t)(int64_t)fleft->i); 561 if ((fins->op2 & IRCONV_SEXT))
562 return INT64FOLD((uint64_t)(int64_t)fleft->i);
563 else
564 return INT64FOLD((uint64_t)(int64_t)(uint32_t)fleft->i);
562} 565}
563 566
564LJFOLD(CONV KINT64 IRCONV_NUM_I64) 567LJFOLD(CONV KINT64 IRCONV_NUM_I64)