]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/11793 (ICE in extract_insn, at recog.c:2175 (const_vector's))
authorSegher Boessenkool <boessen@de.ibm.com>
Fri, 16 Jan 2004 15:05:37 +0000 (15:05 +0000)
committerHartmut Penner <hpenner@gcc.gnu.org>
Fri, 16 Jan 2004 15:05:37 +0000 (15:05 +0000)
       PR target/11793
       * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Handle
       vectors.

From-SVN: r75974

gcc/ChangeLog
gcc/config/rs6000/rs6000.h

index 32008eecfe0c15519d63b33b6efc0334bffcef93..2ae63a75de50f706f1769f0743b25614fcfbb805 100644 (file)
@@ -1,3 +1,9 @@
+2004-01-16  Segher Boessenkool  <boessen@de.ibm.com>
+
+        PR target/11793
+       * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Handle
+       vectors.
+       
 2004-01-16  Jan Hubicka  <jh@suse.cz>
 
         PR opt/11350
index 957fcecfe1e2069508e07c60f49d66d3a7b8849d..05298b90083c69c9358417885ca8e55992a9946d 100644 (file)
@@ -1993,9 +1993,11 @@ typedef struct rs6000_args
    acceptable.  */
 
 #define LEGITIMATE_CONSTANT_P(X)                               \
-  (GET_CODE (X) != CONST_DOUBLE || GET_MODE (X) == VOIDmode    \
-   || (TARGET_POWERPC64 && GET_MODE (X) == DImode)             \
-   || easy_fp_constant (X, GET_MODE (X)))
+  ((GET_CODE (X) != CONST_VECTOR                               \
+    || zero_constant (X, GET_MODE (X)))                                \
+   && (GET_CODE (X) != CONST_DOUBLE || GET_MODE (X) == VOIDmode        \
+       || (TARGET_POWERPC64 && GET_MODE (X) == DImode)         \
+       || easy_fp_constant (X, GET_MODE (X))))
 
 /* The macros REG_OK_FOR..._P assume that the arg is a REG rtx
    and check its validity for a certain class.