]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
fold_Expr: add rules
authorJulian Seward <jseward@acm.org>
Fri, 27 Feb 2015 12:51:22 +0000 (12:51 +0000)
committerJulian Seward <jseward@acm.org>
Fri, 27 Feb 2015 12:51:22 +0000 (12:51 +0000)
   Xor8/16/32/64(0,t) ==> t
   Xor8/16/32/64(t,0) ==> t

git-svn-id: svn://svn.valgrind.org/vex/trunk@3094

VEX/priv/ir_opt.c

index ffd18f95beb76e0c56c7192876ce7c5a500fdd25..f503bef181626d53d2f14a539990de7a16aa4248 100644 (file)
@@ -2292,6 +2292,17 @@ static IRExpr* fold_Expr ( IRExpr** env, IRExpr* e )
                   //   e2 = e->Iex.Binop.arg2;
                   //   break;
                   //}
+               } else {
+                  /* Xor8/16/32/64(0,t) ==> t */
+                  if (isZeroU(e->Iex.Binop.arg1)) {
+                     e2 = e->Iex.Binop.arg2;
+                     break;
+                  }
+                  /* Xor8/16/32/64(t,0) ==> t */
+                  if (isZeroU(e->Iex.Binop.arg2)) {
+                     e2 = e->Iex.Binop.arg1;
+                     break;
+                  }
                }
                break;