diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2e779e7194e98fdb633645576fbcf9709b5d389c..48cd73e9f493ba413634604c880dd1f2b88dc371 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,4 +1,13 @@ +2002-09-23 Richard Henderson <rth@redhat.com> + + * config/i386/i386.h (MASK_ACCUMULATE_OUTGOING_ARGS_SET, MASK_MMX_SET, + MASK_SSE_SET, MASK_SSE2_SET, MASK_3DNOW_SET, MASK_3DNOW_A_SET): Kill. + (TARGET_SWITCHES): Don't reference them. + * config/i386/i386.c (override_options): Use target_flags_explicit + to examine bits set by the user. + 2002-09-23 Dale Johannesen <dalej@apple.com> + * dbxout.c (dbxout_parms): Set current_sym_code for params passed on stack by invisible reference. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index b72047e6b4485c6adf4902ef53ddadf083fa6d4f..777721c61bc86659d97588e94faa4ffb7cbd5582 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -1001,19 +1001,19 @@ override_options () /* Default cpu tuning to the architecture. */ ix86_cpu = ix86_arch; if (processor_alias_table[i].flags & PTA_MMX - && !(target_flags & MASK_MMX_SET)) + && !(target_flags_explicit & MASK_MMX)) target_flags |= MASK_MMX; if (processor_alias_table[i].flags & PTA_3DNOW - && !(target_flags & MASK_3DNOW_SET)) + && !(target_flags_explicit & MASK_3DNOW)) target_flags |= MASK_3DNOW; if (processor_alias_table[i].flags & PTA_3DNOW_A - && !(target_flags & MASK_3DNOW_A_SET)) + && !(target_flags_explicit & MASK_3DNOW_A)) target_flags |= MASK_3DNOW_A; if (processor_alias_table[i].flags & PTA_SSE - && !(target_flags & MASK_SSE_SET)) + && !(target_flags_explicit & MASK_SSE)) target_flags |= MASK_SSE; if (processor_alias_table[i].flags & PTA_SSE2 - && !(target_flags & MASK_SSE2_SET)) + && !(target_flags_explicit & MASK_SSE2)) target_flags |= MASK_SSE2; if (processor_alias_table[i].flags & PTA_PREFETCH_SSE) x86_prefetch_sse = true; @@ -1236,7 +1236,7 @@ override_options () target_flags |= MASK_3DNOW_A; } if ((x86_accumulate_outgoing_args & CPUMASK) - && !(target_flags & MASK_ACCUMULATE_OUTGOING_ARGS_SET) + && !(target_flags_explicit & MASK_ACCUMULATE_OUTGOING_ARGS) && !optimize_size) target_flags |= MASK_ACCUMULATE_OUTGOING_ARGS; diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index acd2db040e10c0c09e1f4f40d0a3e052b7dad655..c2d7c4324462c55b6490172bd5c879087eb2fef5 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -105,19 +105,16 @@ extern int target_flags; #define MASK_INLINE_ALL_STROPS 0x00000400 /* Inline stringops in all cases */ #define MASK_NO_PUSH_ARGS 0x00000800 /* Use push instructions */ #define MASK_ACCUMULATE_OUTGOING_ARGS 0x00001000/* Accumulate outgoing args */ -#define MASK_ACCUMULATE_OUTGOING_ARGS_SET 0x00002000 -#define MASK_MMX 0x00004000 /* Support MMX regs/builtins */ -#define MASK_MMX_SET 0x00008000 -#define MASK_SSE 0x00010000 /* Support SSE regs/builtins */ -#define MASK_SSE_SET 0x00020000 -#define MASK_SSE2 0x00040000 /* Support SSE2 regs/builtins */ -#define MASK_SSE2_SET 0x00080000 -#define MASK_3DNOW 0x00100000 /* Support 3Dnow builtins */ -#define MASK_3DNOW_SET 0x00200000 -#define MASK_3DNOW_A 0x00400000 /* Support Athlon 3Dnow builtins */ -#define MASK_3DNOW_A_SET 0x00800000 -#define MASK_128BIT_LONG_DOUBLE 0x01000000 /* long double size is 128bit */ -#define MASK_64BIT 0x02000000 /* Produce 64bit code */ +#define MASK_MMX 0x00002000 /* Support MMX regs/builtins */ +#define MASK_SSE 0x00004000 /* Support SSE regs/builtins */ +#define MASK_SSE2 0x00008000 /* Support SSE2 regs/builtins */ +#define MASK_3DNOW 0x00010000 /* Support 3Dnow builtins */ +#define MASK_3DNOW_A 0x00020000 /* Support Athlon 3Dnow builtins */ +#define MASK_128BIT_LONG_DOUBLE 0x00040000 /* long double size is 128bit */ +#define MASK_64BIT 0x00080000 /* Produce 64bit code */ + +/* Unused: 0x03f0000 */ + /* ... overlap with subtarget options starts by 0x04000000. */ #define MASK_NO_RED_ZONE 0x04000000 /* Do not use red zone */ @@ -334,30 +331,25 @@ extern int x86_prefetch_sse; N_("Use push instructions to save outgoing arguments") }, \ { "no-push-args", MASK_NO_PUSH_ARGS, \ N_("Do not use push instructions to save outgoing arguments") }, \ - { "accumulate-outgoing-args", (MASK_ACCUMULATE_OUTGOING_ARGS \ - | MASK_ACCUMULATE_OUTGOING_ARGS_SET), \ + { "accumulate-outgoing-args", MASK_ACCUMULATE_OUTGOING_ARGS, \ N_("Use push instructions to save outgoing arguments") }, \ - { "no-accumulate-outgoing-args",MASK_ACCUMULATE_OUTGOING_ARGS_SET, \ + { "no-accumulate-outgoing-args",-MASK_ACCUMULATE_OUTGOING_ARGS, \ N_("Do not use push instructions to save outgoing arguments") }, \ - { "mmx", MASK_MMX | MASK_MMX_SET, \ + { "mmx", MASK_MMX, \ N_("Support MMX built-in functions") }, \ { "no-mmx", -MASK_MMX, \ N_("Do not support MMX built-in functions") }, \ - { "no-mmx", MASK_MMX_SET, "" }, \ - { "3dnow", MASK_3DNOW | MASK_3DNOW_SET, \ + { "3dnow", MASK_3DNOW, \ N_("Support 3DNow! built-in functions") }, \ - { "no-3dnow", -MASK_3DNOW, "" }, \ - { "no-3dnow", MASK_3DNOW_SET, \ + { "no-3dnow", -MASK_3DNOW, \ N_("Do not support 3DNow! built-in functions") }, \ - { "sse", MASK_SSE | MASK_SSE_SET, \ + { "sse", MASK_SSE, \ N_("Support MMX and SSE built-in functions and code generation") }, \ - { "no-sse", -MASK_SSE, "" }, \ - { "no-sse", MASK_SSE_SET, \ + { "no-sse", -MASK_SSE, \ N_("Do not support MMX and SSE built-in functions and code generation") },\ - { "sse2", MASK_SSE2 | MASK_SSE2_SET, \ + { "sse2", MASK_SSE2, \ N_("Support MMX, SSE and SSE2 built-in functions and code generation") }, \ - { "no-sse2", -MASK_SSE2, "" }, \ - { "no-sse2", MASK_SSE2_SET, \ + { "no-sse2", -MASK_SSE2, \ N_("Do not support MMX, SSE and SSE2 built-in functions and code generation") }, \ { "128bit-long-double", MASK_128BIT_LONG_DOUBLE, \ N_("sizeof(long double) is 16") }, \