diff options
author | Michael Meissner <meissner@linux.vnet.ibm.com> | 2012-10-02 18:08:02 +0000 |
---|---|---|
committer | Michael Meissner <meissner@gcc.gnu.org> | 2012-10-02 18:08:02 +0000 |
commit | 59a2dfe8d754913ff356c83e1c9a7106a69aad11 (patch) | |
tree | b71704cef58ddf578204641fb40e495212684b06 | |
parent | 6b7fa93a48b768a4b3414012a66d2343a6e6acaa (diff) | |
download | gcc-59a2dfe8d754913ff356c83e1c9a7106a69aad11.zip gcc-59a2dfe8d754913ff356c83e1c9a7106a69aad11.tar.gz gcc-59a2dfe8d754913ff356c83e1c9a7106a69aad11.tar.bz2 |
If no -mcpu=<xxx> or implicit cpu via --with-cpu=<xxx> configure option, inhereit all TARGET_DEFAULT bits.
From-SVN: r191993
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 29 |
2 files changed, 28 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 32dce2d..0a6a139 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2012-10-02 Michael Meissner <meissner@linux.vnet.ibm.com> + + * config/rs6000/rs6000.c (rs6000_option_override_internal): If + -mcpu=<xxx> is not specified and the compiler is not configured + using --with-cpu=<xxx>, use the bits from the TARGET_DEFAULT to + set the initial options. + 2012-10-02 Sharad Singhai <singhai@google.com> PR testsuite/54772 diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index a3f9909..3e3d553 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -2446,21 +2446,34 @@ rs6000_option_override_internal (bool global_init_p) rs6000_cpu_index = cpu_index = main_target_opt->x_rs6000_cpu_index; have_cpu = true; } + else if (implicit_cpu) + { + rs6000_cpu_index = cpu_index = rs6000_cpu_name_lookup (implicit_cpu); + have_cpu = true; + } else { - const char *default_cpu = - (implicit_cpu ? implicit_cpu - : (TARGET_POWERPC64 ? "powerpc64" : "powerpc")); - + const char *default_cpu = (TARGET_POWERPC64 ? "powerpc64" : "powerpc"); rs6000_cpu_index = cpu_index = rs6000_cpu_name_lookup (default_cpu); - have_cpu = implicit_cpu != 0; + have_cpu = false; } gcc_assert (cpu_index >= 0); - target_flags &= ~set_masks; - target_flags |= (processor_target_table[cpu_index].target_enable - & set_masks); + /* If we have a cpu, either through an explicit -mcpu=<xxx> or if the + compiler was configured with --with-cpu=<xxx>, replace all of the ISA bits + with those from the cpu, except for options that were explicitly set. If + we don't have a cpu, do not override the target bits set in + TARGET_DEFAULT. */ + if (have_cpu) + { + target_flags &= ~set_masks; + target_flags |= (processor_target_table[cpu_index].target_enable + & set_masks); + } + else + target_flags |= (processor_target_table[cpu_index].target_enable + & ~target_flags_explicit); if (rs6000_tune_index >= 0) tune_index = rs6000_tune_index; |