]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
(simplify_rtx): For (not (xor X C)) generate new rtx
authorJim Wilson <wilson@gcc.gnu.org>
Thu, 21 Jul 1994 22:06:05 +0000 (15:06 -0700)
committerJim Wilson <wilson@gcc.gnu.org>
Thu, 21 Jul 1994 22:06:05 +0000 (15:06 -0700)
instead of modifying old rtx.

From-SVN: r7788

gcc/combine.c

index 990fa4d594ff2ef630c62dda87d9c8196385ea57..9307af27d3251a3e3dc87f68582cc96a536618ab 100644 (file)
@@ -3261,10 +3261,7 @@ simplify_rtx (x, op0_mode, last, in_dest)
          && (temp = simplify_unary_operation (NOT, mode,
                                               XEXP (XEXP (x, 0), 1),
                                               mode)) != 0)
-       {
-         SUBST (XEXP (XEXP (x, 0), 1), temp);
-         return XEXP (x, 0);
-       }
+       return gen_binary (XOR, mode, XEXP (XEXP (x, 0), 0), temp);
              
       /* (not (ashift 1 X)) is (rotate ~1 X).  We used to do this for operands
         other than 1, but that is not valid.  We could do a similar