A few more 64-bit folding rules.

git-svn-id: svn://svn.valgrind.org/vex/trunk@983
This commit is contained in:
Julian Seward
2005-02-27 13:35:41 +00:00
parent b0480a8c45
commit 01a097c0d9

View File

@@ -899,6 +899,10 @@ static IRExpr* fold_Expr ( IRExpr* e )
)));
break;
case Iop_Not64:
e2 = IRExpr_Const(IRConst_U64(
~ (e->Iex.Unop.arg->Iex.Const.con->Ico.U64)));
break;
case Iop_Not32:
e2 = IRExpr_Const(IRConst_U32(
~ (e->Iex.Unop.arg->Iex.Const.con->Ico.U32)));
@@ -963,6 +967,11 @@ static IRExpr* fold_Expr ( IRExpr* e )
(e->Iex.Binop.arg1->Iex.Const.con->Ico.U32
| e->Iex.Binop.arg2->Iex.Const.con->Ico.U32)));
break;
case Iop_Or64:
e2 = IRExpr_Const(IRConst_U64(
(e->Iex.Binop.arg1->Iex.Const.con->Ico.U64
| e->Iex.Binop.arg2->Iex.Const.con->Ico.U64)));
break;
/* -- Xor -- */
case Iop_Xor8:
@@ -975,6 +984,11 @@ static IRExpr* fold_Expr ( IRExpr* e )
(e->Iex.Binop.arg1->Iex.Const.con->Ico.U32
^ e->Iex.Binop.arg2->Iex.Const.con->Ico.U32)));
break;
case Iop_Xor64:
e2 = IRExpr_Const(IRConst_U64(
(e->Iex.Binop.arg1->Iex.Const.con->Ico.U64
^ e->Iex.Binop.arg2->Iex.Const.con->Ico.U64)));
break;
/* -- And -- */
case Iop_And8: