]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
A few more 64-bit folding rules.
authorJulian Seward <jseward@acm.org>
Sun, 27 Feb 2005 13:35:41 +0000 (13:35 +0000)
committerJulian Seward <jseward@acm.org>
Sun, 27 Feb 2005 13:35:41 +0000 (13:35 +0000)
git-svn-id: svn://svn.valgrind.org/vex/trunk@983

VEX/priv/ir/iropt.c

index d8fbd77e4a93861278cf0b215ccd66c73c29ffae..52daf92646178d676e83b72f11b9b699d3fc6df5 100644 (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: