aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJim Wilson <wilson@gcc.gnu.org>1994-07-21 15:06:05 -0700
committerJim Wilson <wilson@gcc.gnu.org>1994-07-21 15:06:05 -0700
commit787745f56c13fb51357a4fa580cc8c4b37aae924 (patch)
tree7a2864cfdc1e9734e5e43c8c559fac424e1ae0ca /gcc
parent6fc7c517d571f4c666b9b1a8764759ea4a2d3496 (diff)
downloadgcc-787745f56c13fb51357a4fa580cc8c4b37aae924.zip
gcc-787745f56c13fb51357a4fa580cc8c4b37aae924.tar.gz
gcc-787745f56c13fb51357a4fa580cc8c4b37aae924.tar.bz2
(simplify_rtx): For (not (xor X C)) generate new rtx
instead of modifying old rtx. From-SVN: r7788
Diffstat (limited to 'gcc')
-rw-r--r--gcc/combine.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/gcc/combine.c b/gcc/combine.c
index 990fa4d..9307af2 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -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