[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