diff options
Diffstat (limited to 'gcc/config/rs6000/rs6000.c')
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index f557dba..0d95b39 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -1134,6 +1134,7 @@ static rtx altivec_expand_vec_init_builtin (tree, tree, rtx); static rtx altivec_expand_vec_set_builtin (tree); static rtx altivec_expand_vec_ext_builtin (tree, rtx); static int get_element_number (tree, tree); +static void rs6000_option_override (void); static bool rs6000_handle_option (size_t, const char *, int); static void rs6000_parse_tls_size_option (void); static void rs6000_parse_yes_no_option (const char *, const char *, int *); @@ -1592,6 +1593,9 @@ static const struct attribute_spec rs6000_attribute_table[] = #undef TARGET_HANDLE_OPTION #define TARGET_HANDLE_OPTION rs6000_handle_option +#undef TARGET_OPTION_OVERRIDE +#define TARGET_OPTION_OVERRIDE rs6000_option_override + #undef TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION #define TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION \ rs6000_builtin_vectorized_function @@ -2397,8 +2401,8 @@ darwin_rs6000_override_options (void) /* Override command line options. Mostly we process the processor type and sometimes adjust other TARGET_ options. */ -void -rs6000_override_options (const char *default_cpu) +static void +rs6000_option_override_internal (const char *default_cpu) { size_t i, j; struct rs6000_cpu_select *ptr; @@ -3230,6 +3234,15 @@ rs6000_override_options (const char *default_cpu) rs6000_init_hard_regno_mode_ok (); } +/* Implement TARGET_OPTION_OVERRIDE. On the RS/6000 this is used to + define the target cpu type. */ + +static void +rs6000_option_override (void) +{ + rs6000_option_override_internal (OPTION_TARGET_CPU_DEFAULT); +} + /* Implement targetm.vectorize.builtin_mask_for_load. */ static tree rs6000_builtin_mask_for_load (void) @@ -7558,7 +7571,7 @@ rs6000_emit_move (rtx dest, rtx source, enum machine_mode mode) controls this instead of DEFAULT_ABI; V.4 targets needing backward compatibility can change DRAFT_V4_STRUCT_RET to override the default, and -m switches get the final word. See - rs6000_override_options for more details. + rs6000_option_override_internal for more details. The PPC32 SVR4 ABI uses IEEE double extended for long double, if 128-bit long double support is enabled. These values are returned in memory. @@ -21969,7 +21982,7 @@ output_toc (FILE *file, rtx x, int labelno, enum machine_mode mode) struct toc_hash_struct *h; void * * found; - /* Create toc_hash_table. This can't be done at OVERRIDE_OPTIONS + /* Create toc_hash_table. This can't be done at TARGET_OPTION_OVERRIDE time because GGC is not initialized at that point. */ if (toc_hash_table == NULL) toc_hash_table = htab_create_ggc (1021, toc_hash_function, |