diff options
Diffstat (limited to 'gcc/config/rs6000/rs6000.c')
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 30 |
1 files changed, 13 insertions, 17 deletions
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index a4a89d0..3fee228 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -1389,11 +1389,9 @@ static enum reg_class rs6000_debug_secondary_reload_class (enum reg_class, static enum reg_class rs6000_preferred_reload_class (rtx, enum reg_class); static enum reg_class rs6000_debug_preferred_reload_class (rtx, enum reg_class); -static bool rs6000_secondary_memory_needed (enum reg_class, enum reg_class, - machine_mode); -static bool rs6000_debug_secondary_memory_needed (enum reg_class, - enum reg_class, - machine_mode); +static bool rs6000_debug_secondary_memory_needed (machine_mode, + reg_class_t, + reg_class_t); static bool rs6000_cannot_change_mode_class (machine_mode, machine_mode, enum reg_class); @@ -1417,10 +1415,6 @@ enum reg_class (*rs6000_secondary_reload_class_ptr) (enum reg_class, enum reg_class (*rs6000_preferred_reload_class_ptr) (rtx, enum reg_class) = rs6000_preferred_reload_class; -bool (*rs6000_secondary_memory_needed_ptr) (enum reg_class, enum reg_class, - machine_mode) - = rs6000_secondary_memory_needed; - bool (*rs6000_cannot_change_mode_class_ptr) (machine_mode, machine_mode, enum reg_class) @@ -1876,6 +1870,8 @@ static const struct attribute_spec rs6000_attribute_table[] = #undef TARGET_SECONDARY_RELOAD #define TARGET_SECONDARY_RELOAD rs6000_secondary_reload +#undef TARGET_SECONDARY_MEMORY_NEEDED +#define TARGET_SECONDARY_MEMORY_NEEDED rs6000_secondary_memory_needed #undef TARGET_SECONDARY_MEMORY_NEEDED_MODE #define TARGET_SECONDARY_MEMORY_NEEDED_MODE rs6000_secondary_memory_needed_mode @@ -4716,7 +4712,7 @@ rs6000_option_override_internal (bool global_init_p) targetm.legitimize_address = rs6000_debug_legitimize_address; rs6000_secondary_reload_class_ptr = rs6000_debug_secondary_reload_class; - rs6000_secondary_memory_needed_ptr + targetm.secondary_memory_needed = rs6000_debug_secondary_memory_needed; rs6000_cannot_change_mode_class_ptr = rs6000_debug_cannot_change_mode_class; @@ -20491,9 +20487,9 @@ rs6000_debug_preferred_reload_class (rtx x, enum reg_class rclass) set and vice versa. */ static bool -rs6000_secondary_memory_needed (enum reg_class from_class, - enum reg_class to_class, - machine_mode mode) +rs6000_secondary_memory_needed (machine_mode mode, + reg_class_t from_class, + reg_class_t to_class) { enum rs6000_reg_type from_type, to_type; bool altivec_p = ((from_class == ALTIVEC_REGS) @@ -20517,11 +20513,11 @@ rs6000_secondary_memory_needed (enum reg_class from_class, /* Debug version of rs6000_secondary_memory_needed. */ static bool -rs6000_debug_secondary_memory_needed (enum reg_class from_class, - enum reg_class to_class, - machine_mode mode) +rs6000_debug_secondary_memory_needed (machine_mode mode, + reg_class_t from_class, + reg_class_t to_class) { - bool ret = rs6000_secondary_memory_needed (from_class, to_class, mode); + bool ret = rs6000_secondary_memory_needed (mode, from_class, to_class); fprintf (stderr, "rs6000_secondary_memory_needed, return: %s, from_class = %s, " |