summaryrefslogtreecommitdiff
path: root/gcc/reload1.c
diff options
context:
space:
mode:
authorzippel <zippel@138bc75d-0d04-0410-961f-82ee72b054a4>2007-09-07 16:46:23 +0000
committerzippel <zippel@138bc75d-0d04-0410-961f-82ee72b054a4>2007-09-07 16:46:23 +0000
commitc6290e1bdd67671aff86839e0bf745b64321a0bc (patch)
tree341f78f63c5c8a8cca70354c3fe2ccdc86964074 /gcc/reload1.c
parent4e6322c5d9bd7cfc57385d871d958414cf4f042b (diff)
downloadgcc-c6290e1bdd67671aff86839e0bf745b64321a0bc.tar.gz
* function.h (struct function): Rename calls_unwind_init
to saves_all_registers. (current_function_saves_all_registers): Renamed from current_function_calls_unwind_init. * reload1.c (reload): Set current_function_saves_all_registers. * except.c (expand_builtin_unwind_init): Likewise. * config/m68k/m68k.c (m68k_save_reg): Use current_function_saves_all_registers to save pic register. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128248 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/reload1.c')
-rw-r--r--gcc/reload1.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c
index dada8921716..270ea0654cf 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -743,9 +743,11 @@ reload (rtx first, int global)
/* A function that has a nonlocal label that can reach the exit
block via non-exceptional paths must save all call-saved
registers. */
- if (current_function_calls_unwind_init
- || (current_function_has_nonlocal_label
- && has_nonexceptional_receiver ()))
+ if (current_function_has_nonlocal_label
+ && has_nonexceptional_receiver ())
+ current_function_saves_all_registers = 1;
+
+ if (current_function_saves_all_registers)
for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
if (! call_used_regs[i] && ! fixed_regs[i] && ! LOCAL_REGNO (i))
df_set_regs_ever_live (i, true);