[llvm-commits] [llvm-gcc-4.2] r58610 - /llvm-gcc-4.2/trunk/gcc/config/i386/i386.c

Anton Korobeynikov asl at math.spbu.ru
Mon Nov 3 06:21:40 PST 2008


Author: asl
Date: Mon Nov  3 08:21:40 2008
New Revision: 58610

URL: http://llvm.org/viewvc/llvm-project?rev=58610&view=rev
Log:
Fix weird fallout from partial backport of cmdline option handling:
llvm-gcc forgot all subtarget-specific flags if there was explicit
target selection via -march option.

As a result we ended with 4-byte aligned long doubles on x86-64/linux.
Darwin was suddenly ok, because they override the whole subtarget
options, on just 64-bit ones.

Modified:
    llvm-gcc-4.2/trunk/gcc/config/i386/i386.c

Modified: llvm-gcc-4.2/trunk/gcc/config/i386/i386.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/i386/i386.c?rev=58610&r1=58609&r2=58610&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/i386/i386.c (original)
+++ llvm-gcc-4.2/trunk/gcc/config/i386/i386.c Mon Nov  3 08:21:40 2008
@@ -2020,13 +2020,15 @@
         error ("-mstackrealign not supported in the 64bit mode");
       /* APPLE LOCAL end radar 4877693 */
 
+      target_flags |= TARGET_SUBTARGET64_DEFAULT & ~target_flags_explicit;
+
       /* Enable by default the SSE and MMX builtins.  Do allow the user to
          explicitly disable any of these.  In particular, disabling SSE and
          MMX for kernel code is extremely useful.  */
       if (!ix86_arch_specified)
         target_flags
-          |= ((MASK_SSE2 | MASK_SSE | MASK_MMX | MASK_128BIT_LONG_DOUBLE
-               | TARGET_SUBTARGET64_DEFAULT) & ~target_flags_explicit);
+          |= ((MASK_SSE2 | MASK_SSE | MASK_MMX | MASK_128BIT_LONG_DOUBLE)
+               & ~target_flags_explicit);
       /* APPLE LOCAL begin mainline candidate */
       /* Disable the red zone for kernel compilation.
 	 ??? Why aren't we using -mcmodel=kernel?  */





More information about the llvm-commits mailing list