diff options
author | zippel <zippel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-09-07 16:46:23 +0000 |
---|---|---|
committer | zippel <zippel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-09-07 16:46:23 +0000 |
commit | c6290e1bdd67671aff86839e0bf745b64321a0bc (patch) | |
tree | 341f78f63c5c8a8cca70354c3fe2ccdc86964074 /gcc/reload1.c | |
parent | 4e6322c5d9bd7cfc57385d871d958414cf4f042b (diff) | |
download | gcc-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.c | 8 |
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); |