avr.h (machine_function): Add 'is_leaf' field.
* config/avr/avr.h (machine_function): Add 'is_leaf' field. * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'. Use 'machine->is_leaf' instead of 'leaf_func_p'. From-SVN: r135231
This commit is contained in:
parent
ea0a7f390a
commit
4c75f70928
@ -1,3 +1,9 @@
|
||||
2008-05-12 Anatoly Sokolov <aesok@post.ru>
|
||||
|
||||
* config/avr/avr.h (machine_function): Add 'is_leaf' field.
|
||||
* config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
|
||||
Use 'machine->is_leaf' instead of 'leaf_func_p'.
|
||||
|
||||
2008-05-12 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* config/i386/sse.md (*sse_concatv4sf): Renamed to ...
|
||||
|
@ -471,7 +471,9 @@ avr_regs_to_save (HARD_REG_SET *set)
|
||||
int reg, count;
|
||||
int int_or_sig_p = (interrupt_function_p (current_function_decl)
|
||||
|| signal_function_p (current_function_decl));
|
||||
int leaf_func_p = leaf_function_p ();
|
||||
|
||||
if (!reload_completed)
|
||||
cfun->machine->is_leaf = leaf_function_p ();
|
||||
|
||||
if (set)
|
||||
CLEAR_HARD_REG_SET (*set);
|
||||
@ -490,7 +492,7 @@ avr_regs_to_save (HARD_REG_SET *set)
|
||||
if (fixed_regs[reg])
|
||||
continue;
|
||||
|
||||
if ((int_or_sig_p && !leaf_func_p && call_used_regs[reg])
|
||||
if ((int_or_sig_p && !cfun->machine->is_leaf && call_used_regs[reg])
|
||||
|| (df_regs_ever_live_p (reg)
|
||||
&& (int_or_sig_p || !call_used_regs[reg])
|
||||
&& !(frame_pointer_needed
|
||||
|
@ -1026,6 +1026,9 @@ mmcu=*:-mmcu=%*}"
|
||||
This is added to the cfun structure. */
|
||||
struct machine_function GTY(())
|
||||
{
|
||||
/* 'true' - if the current function is a leaf function. */
|
||||
int is_leaf;
|
||||
|
||||
/* 'true' - if current function is a naked function. */
|
||||
int is_naked;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user