aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Sayle <roger@eyesopen.com>2003-06-01 18:59:17 +0000
committerRoger Sayle <sayle@gcc.gnu.org>2003-06-01 18:59:17 +0000
commit14ca333d386817ef8706d21fc17dfc19d6da409b (patch)
tree66ff1ceb127b3674e58e30bd4c2bf6bc29cfd119
parent0cc261bc7bfa1dcd8ec11c0cd92a665032c077f0 (diff)
downloadgcc-14ca333d386817ef8706d21fc17dfc19d6da409b.zip
gcc-14ca333d386817ef8706d21fc17dfc19d6da409b.tar.gz
gcc-14ca333d386817ef8706d21fc17dfc19d6da409b.tar.bz2
emit-rtl.c (gen_lowpart_common): Handle interpreting integer constants as condition code values.
* emit-rtl.c (gen_lowpart_common): Handle interpreting integer constants as condition code values. Co-Authored-By: Geoffrey Keating <geoffk@apple.com> Co-Authored-By: John David Anglin <dave.anglin@nrc-cnrc.gc.ca> From-SVN: r67309
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/emit-rtl.c6
2 files changed, 13 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 54b55a6..0ac8c42 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2003-06-01 Roger Sayle <roger@eyesopen.com>
+ John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+ Geoffrey Keating <geoffk@apple.com>
+
+ * emit-rtl.c (gen_lowpart_common): Handle interpreting integer
+ constants as condition code values.
+
2003-06-01 DJ Delorie <dj@redhat.com>
* cppmacro.c (warn_of_redefinition): Handle cases where the two
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 1bb79dd..8004cfb 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -1291,6 +1291,12 @@ gen_lowpart_common (mode, x)
mode);
#endif
}
+ /* If MODE is a condition code and X is a CONST_INT, the value of X
+ must already have been "recognized" by the back-end, and we can
+ assume that it is valid for this mode. */
+ else if (GET_MODE_CLASS (mode) == MODE_CC
+ && GET_CODE (x) == CONST_INT)
+ return x;
/* Otherwise, we can't do this. */
return 0;