aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-05-27 16:42:08 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1994-05-27 16:42:08 -0400
commit8080be5fddb57f7c29fc7eea0c34e226fd2afa14 (patch)
tree801a4b0a37a0ab345abd41298e5e5a4698d6508c /gcc
parentd46f42a50a60cd92500b440fc9b862f3b8932dc7 (diff)
downloadgcc-8080be5fddb57f7c29fc7eea0c34e226fd2afa14.zip
gcc-8080be5fddb57f7c29fc7eea0c34e226fd2afa14.tar.gz
gcc-8080be5fddb57f7c29fc7eea0c34e226fd2afa14.tar.bz2
(try_combine): Don't make complemented NOT for constant out of range.
From-SVN: r7370
Diffstat (limited to 'gcc')
-rw-r--r--gcc/combine.c26
1 files changed, 0 insertions, 26 deletions
diff --git a/gcc/combine.c b/gcc/combine.c
index cec950b..e65496b 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -1704,32 +1704,6 @@ try_combine (i3, i2, i1)
insn_code_number = recog_for_combine (&newpat, i3, &new_i3_notes);
}
- /* See if this is an XOR. If so, perhaps the problem is that the
- constant is out of range. Replace it with a complemented XOR with
- a complemented constant; it might be in range. */
-
- else if (insn_code_number < 0 && GET_CODE (newpat) == SET
- && GET_CODE (SET_SRC (newpat)) == XOR
- && GET_CODE (XEXP (SET_SRC (newpat), 1)) == CONST_INT
- && ((temp = simplify_unary_operation (NOT,
- GET_MODE (SET_SRC (newpat)),
- XEXP (SET_SRC (newpat), 1),
- GET_MODE (SET_SRC (newpat))))
- != 0))
- {
- enum machine_mode i_mode = GET_MODE (SET_SRC (newpat));
- rtx pat
- = gen_rtx_combine (SET, VOIDmode, SET_DEST (newpat),
- gen_unary (NOT, i_mode,
- gen_binary (XOR, i_mode,
- XEXP (SET_SRC (newpat), 0),
- temp)));
-
- insn_code_number = recog_for_combine (&pat, i3, &new_i3_notes);
- if (insn_code_number >= 0)
- newpat = pat;
- }
-
/* If we were combining three insns and the result is a simple SET
with no ASM_OPERANDS that wasn't recognized, try to split it into two
insns. There are two ways to do this. It can be split using a