aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-01-10 19:31:01 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1994-01-10 19:31:01 -0500
commit28bad1cbc3d2c0d2b942296e4f32ff32bc6701b5 (patch)
tree15d5537476209185e746a2b5284becee826c943a
parente9baa644022b2d7d0f2f547baa5c7a4b477e7429 (diff)
downloadgcc-28bad1cbc3d2c0d2b942296e4f32ff32bc6701b5.zip
gcc-28bad1cbc3d2c0d2b942296e4f32ff32bc6701b5.tar.gz
gcc-28bad1cbc3d2c0d2b942296e4f32ff32bc6701b5.tar.bz2
(simplify_relational_operation): Don't do anything with CC0 in
addition to MODE_CC values. From-SVN: r6376
-rw-r--r--gcc/cse.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/gcc/cse.c b/gcc/cse.c
index 2d48833..dd2cb28 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -4296,9 +4296,13 @@ simplify_relational_operation (code, mode, op0, op1)
if (GET_CODE (op0) == COMPARE && op1 == const0_rtx)
op1 = XEXP (op0, 1), op0 = XEXP (op0, 0);
- /* What to do with MODE_CC isn't clear yet.
- Let's make sure nothing erroneous is done. */
- if (GET_MODE_CLASS (GET_MODE (op0)) == MODE_CC)
+ /* We can't simplify MODE_CC values since we don't know what the
+ actual comparison is. */
+ if (GET_MODE_CLASS (GET_MODE (op0)) == MODE_CC
+#ifdef HAVE_cc0
+ || op0 == cc0_rtx
+#endif
+ )
return 0;
/* For integer comparisons of A and B maybe we can simplify A - B and can