From: Julian Seward Date: Sun, 27 Feb 2005 13:35:41 +0000 (+0000) Subject: A few more 64-bit folding rules. X-Git-Tag: svn/VALGRIND_3_0_1^2~351 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=01a097c0d9b2a48b1f73cefed350a3d7a8e2d09e;p=thirdparty%2Fvalgrind.git A few more 64-bit folding rules. git-svn-id: svn://svn.valgrind.org/vex/trunk@983 --- diff --git a/VEX/priv/ir/iropt.c b/VEX/priv/ir/iropt.c index d8fbd77e4a..52daf92646 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: