From 01a097c0d9b2a48b1f73cefed350a3d7a8e2d09e Mon Sep 17 00:00:00 2001 From: Julian Seward Date: Sun, 27 Feb 2005 13:35:41 +0000 Subject: [PATCH] A few more 64-bit folding rules. git-svn-id: svn://svn.valgrind.org/vex/trunk@983 --- VEX/priv/ir/iropt.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/VEX/priv/ir/iropt.c b/VEX/priv/ir/iropt.c index d8fbd77e4..52daf9264 100644 --- a/VEX/priv/ir/iropt.c +++ b/VEX/priv/ir/iropt.c @@ -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: