diff options
Diffstat (limited to 'gcc/config/pa/pa.c')
-rw-r--r-- | gcc/config/pa/pa.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index f9c7a7c..f39b672 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -178,6 +178,8 @@ static struct machine_function * pa_init_machine_status (void); static reg_class_t pa_secondary_reload (bool, rtx, reg_class_t, machine_mode, secondary_reload_info *); +static bool pa_secondary_memory_needed (machine_mode, + reg_class_t, reg_class_t); static void pa_extra_live_on_entry (bitmap); static machine_mode pa_promote_function_mode (const_tree, machine_mode, int *, @@ -377,6 +379,8 @@ static size_t n_deferred_plabels = 0; #undef TARGET_SECONDARY_RELOAD #define TARGET_SECONDARY_RELOAD pa_secondary_reload +#undef TARGET_SECONDARY_MEMORY_NEEDED +#define TARGET_SECONDARY_MEMORY_NEEDED pa_secondary_memory_needed #undef TARGET_EXTRA_LIVE_ON_ENTRY #define TARGET_EXTRA_LIVE_ON_ENTRY pa_extra_live_on_entry @@ -6189,6 +6193,20 @@ pa_secondary_reload (bool in_p, rtx x, reg_class_t rclass_i, return NO_REGS; } +/* Implement TARGET_SECONDARY_MEMORY_NEEDED. */ + +static bool +pa_secondary_memory_needed (machine_mode mode ATTRIBUTE_UNUSED, + reg_class_t class1 ATTRIBUTE_UNUSED, + reg_class_t class2 ATTRIBUTE_UNUSED) +{ +#ifdef PA_SECONDARY_MEMORY_NEEDED + return PA_SECONDARY_MEMORY_NEEDED (mode, class1, class2); +#else + return false; +#endif +} + /* Implement TARGET_EXTRA_LIVE_ON_ENTRY. The argument pointer is only marked as live on entry by df-scan when it is a fixed register. It isn't a fixed register in the 64-bit runtime, |