emit-rtl.c (gen_lowpart_common): Handle interpreting integer constants as condition...
authorRoger Sayle <roger@eyesopen.com>
Sun, 1 Jun 2003 18:59:17 +0000 (18:59 +0000)
committerRoger Sayle <sayle@gcc.gnu.org>
Sun, 1 Jun 2003 18:59:17 +0000 (18:59 +0000)
* 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

gcc/ChangeLog
gcc/emit-rtl.c

index 54b55a6..0ac8c42 100644 (file)
@@ -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
index 1bb79dd..8004cfb 100644 (file)
@@ -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;