aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2011-01-28 02:17:35 +0100
committerMike Pall <mike>2011-01-28 02:17:35 +0100
commit6fee0002b9ea12d4b7f745ee664d6ccb2411af6c (patch)
treeeb48b62bf7087c2facbe92dcdf59accb469a4c07 /src
parent07d8a53b393b5fbb52f3920f913ab21ce6dde4fa (diff)
downloadluajit-6fee0002b9ea12d4b7f745ee664d6ccb2411af6c.tar.gz
luajit-6fee0002b9ea12d4b7f745ee664d6ccb2411af6c.tar.bz2
luajit-6fee0002b9ea12d4b7f745ee664d6ccb2411af6c.zip
Fix 64 bit case of (SUB x x) and (BXOR x x) FOLD rules.
Diffstat (limited to 'src')
-rw-r--r--src/lj_opt_fold.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lj_opt_fold.c b/src/lj_opt_fold.c
index bc53b168..2d08e187 100644
--- a/src/lj_opt_fold.c
+++ b/src/lj_opt_fold.c
@@ -1019,7 +1019,7 @@ LJFOLD(SUBOV any any)
1019LJFOLDF(simplify_intsub) 1019LJFOLDF(simplify_intsub)
1020{ 1020{
1021 if (fins->op1 == fins->op2 && !irt_isnum(fins->t)) /* i - i ==> 0 */ 1021 if (fins->op1 == fins->op2 && !irt_isnum(fins->t)) /* i - i ==> 0 */
1022 return INTFOLD(0); 1022 return irt_is64(fins->t) ? INT64FOLD(0) : INTFOLD(0);
1023 return NEXTFOLD; 1023 return NEXTFOLD;
1024} 1024}
1025 1025
@@ -1492,7 +1492,7 @@ LJFOLD(BXOR any any)
1492LJFOLDF(comm_bxor) 1492LJFOLDF(comm_bxor)
1493{ 1493{
1494 if (fins->op1 == fins->op2) /* i xor i ==> 0 */ 1494 if (fins->op1 == fins->op2) /* i xor i ==> 0 */
1495 return INTFOLD(0); 1495 return irt_is64(fins->t) ? INT64FOLD(0) : INTFOLD(0);
1496 return fold_comm_swap(J); 1496 return fold_comm_swap(J);
1497} 1497}
1498 1498