]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: re PR target/53228 (target attributes in libcpp/lex.c cause illegal instruc...
authorUros Bizjak <ubizjak@gmail.com>
Fri, 4 May 2012 17:48:56 +0000 (19:48 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Fri, 4 May 2012 17:48:56 +0000 (19:48 +0200)
Backport from mainline
2012-05-04  Uros Bizjak  <ubizjak@gmail.com>

PR target/53228
* config/i386/i386.h (X86_ARCH_CMOV): Rename from X86_ARCH_CMOVE.
(TARGET_CMOV): Rename from TARGET_CMOVE.
(TARGET_CMOVE): New define.
* config/i386/i386.c (ix86_option_override_internal): Use TARGET_CMOV.
Do not set TARGET_CMOVE here.

From-SVN: r187171

gcc/ChangeLog
gcc/config/i386/i386.c
gcc/config/i386/i386.h

index 8b13279ea97a8626720352211d7cb156874b5de6..096aef8d5756a66476823936e03d6ba3b3a6b144 100644 (file)
@@ -1,3 +1,15 @@
+2012-05-04  Uros Bizjak  <ubizjak@gmail.com>
+
+       Backport from mainline
+       2012-05-04  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/53228
+       * config/i386/i386.h (X86_ARCH_CMOV): Rename from X86_ARCH_CMOVE.
+       (TARGET_CMOV): Rename from TARGET_CMOVE.
+       (TARGET_CMOVE): New define.
+       * config/i386/i386.c (ix86_option_override_internal): Use TARGET_CMOV.
+       Do not set TARGET_CMOVE here.
+
 2012-05-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
 
        Backport from the mainline
index b8022a8942439ea87fc82ce55c6021891f7b1986..8c27488ebf93f9eb3971ffcdd3413a321c6bd4b3 100644 (file)
@@ -2095,7 +2095,7 @@ unsigned char ix86_arch_features[X86_ARCH_LAST];
 /* Feature tests against the various architecture variations, used to create
    ix86_arch_features based on the processor mask.  */
 static unsigned int initial_ix86_arch_features[X86_ARCH_LAST] = {
-  /* X86_ARCH_CMOVE: Conditional move was added for pentiumpro.  */
+  /* X86_ARCH_CMOV: Conditional move was added for pentiumpro.  */
   ~(m_386 | m_486 | m_PENT | m_K6),
 
   /* X86_ARCH_CMPXCHG: Compare and exchange was added for 80486.  */
@@ -3812,7 +3812,7 @@ ix86_option_override_internal (bool main_args_p)
           -mtune (rather than -march) points us to a processor that has them.
           However, the VIA C3 gives a SIGILL, so we only do that for i686 and
           higher processors.  */
-       if (TARGET_CMOVE
+       if (TARGET_CMOV
            && (processor_alias_table[i].flags & (PTA_PREFETCH_SSE | PTA_SSE)))
          x86_prefetch_sse = true;
        break;
@@ -4182,12 +4182,6 @@ ix86_option_override_internal (bool main_args_p)
       target_flags |= MASK_ACCUMULATE_OUTGOING_ARGS;
     }
 
-  /* For sane SSE instruction set generation we need fcomi instruction.
-     It is safe to enable all CMOVE instructions.  Also, RDRAND intrinsic
-     expands to a sequence that includes conditional move. */
-  if (TARGET_SSE || TARGET_RDRND)
-    TARGET_CMOVE = 1;
-
   /* Figure out what ASM_GENERATE_INTERNAL_LABEL builds as a prefix.  */
   {
     char *p;
index b342930f84ae852b504229da566193f3e93f0a06..281f9e1276560c3c076ae77dc26e016ccabf3f34 100644 (file)
@@ -424,7 +424,7 @@ extern unsigned char ix86_tune_features[X86_TUNE_LAST];
 
 /* Feature tests against the various architecture variations.  */
 enum ix86_arch_indices {
-  X86_ARCH_CMOVE,              /* || TARGET_SSE */
+  X86_ARCH_CMOV,
   X86_ARCH_CMPXCHG,
   X86_ARCH_CMPXCHG8B,
   X86_ARCH_XADD,
@@ -435,12 +435,17 @@ enum ix86_arch_indices {
 
 extern unsigned char ix86_arch_features[X86_ARCH_LAST];
 
-#define TARGET_CMOVE           ix86_arch_features[X86_ARCH_CMOVE]
+#define TARGET_CMOV            ix86_arch_features[X86_ARCH_CMOV]
 #define TARGET_CMPXCHG         ix86_arch_features[X86_ARCH_CMPXCHG]
 #define TARGET_CMPXCHG8B       ix86_arch_features[X86_ARCH_CMPXCHG8B]
 #define TARGET_XADD            ix86_arch_features[X86_ARCH_XADD]
 #define TARGET_BSWAP           ix86_arch_features[X86_ARCH_BSWAP]
 
+/* For sane SSE instruction set generation we need fcomi instruction.
+   It is safe to enable all CMOVE instructions.  Also, RDRAND intrinsic
+   expands to a sequence that includes conditional move. */
+#define TARGET_CMOVE           (TARGET_CMOV || TARGET_SSE || TARGET_RDRND)
+
 #define TARGET_FISTTP          (TARGET_SSE3 && TARGET_80387)
 
 extern int x86_prefetch_sse;