sh.c (calc_live_regs): Use current_function_saves_all_registers instead of...
* config/sh/sh.c (calc_live_regs): Use current_function_saves_all_registers instead of current_function_has_nonlocal_label. (sh_allocate_initial_value): Likewise. (sh_get_pr_initial_val): Likewise. * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Likewise. * config/sh/sh.md (load_ra): Likewise. From-SVN: r128408
This commit is contained in:
parent
367985140f
commit
6ac9cbc5e8
4 changed files with 15 additions and 5 deletions
|
@ -1,3 +1,13 @@
|
|||
2007-09-12 Kaz Kojima <kkojima@gcc.gnu.org>
|
||||
|
||||
* config/sh/sh.c (calc_live_regs): Use
|
||||
current_function_saves_all_registers instead of
|
||||
current_function_has_nonlocal_label.
|
||||
(sh_allocate_initial_value): Likewise.
|
||||
(sh_get_pr_initial_val): Likewise.
|
||||
* config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Likewise.
|
||||
* config/sh/sh.md (load_ra): Likewise.
|
||||
|
||||
2007-09-12 Hans-Peter Nilsson <hp@axis.com>
|
||||
|
||||
* config/cris/t-linux (LIMITS_H_TEST): Only define if not inhibit_libc.
|
||||
|
|
|
@ -5873,7 +5873,7 @@ calc_live_regs (HARD_REG_SET *live_regs_mask)
|
|||
if (TARGET_SHCOMPACT
|
||||
&& ((current_function_args_info.call_cookie
|
||||
& ~ CALL_COOKIE_RET_TRAMP (1))
|
||||
|| current_function_has_nonlocal_label))
|
||||
|| current_function_saves_all_registers))
|
||||
pr_live = 1;
|
||||
has_call = TARGET_SHMEDIA ? ! leaf_function_p () : pr_live;
|
||||
for (count = 0, reg = FIRST_PSEUDO_REGISTER; reg-- != 0; )
|
||||
|
@ -8944,7 +8944,7 @@ sh_allocate_initial_value (rtx hard_reg)
|
|||
&& ! (TARGET_SHCOMPACT
|
||||
&& ((current_function_args_info.call_cookie
|
||||
& ~ CALL_COOKIE_RET_TRAMP (1))
|
||||
|| current_function_has_nonlocal_label)))
|
||||
|| current_function_saves_all_registers)))
|
||||
x = hard_reg;
|
||||
else
|
||||
x = gen_frame_mem (Pmode, return_address_pointer_rtx);
|
||||
|
@ -10332,7 +10332,7 @@ sh_get_pr_initial_val (void)
|
|||
if (TARGET_SHCOMPACT
|
||||
&& ((current_function_args_info.call_cookie
|
||||
& ~ CALL_COOKIE_RET_TRAMP (1))
|
||||
|| current_function_has_nonlocal_label))
|
||||
|| current_function_saves_all_registers))
|
||||
return gen_frame_mem (SImode, return_address_pointer_rtx);
|
||||
|
||||
/* If we haven't finished rtl generation, there might be a nonlocal label
|
||||
|
|
|
@ -1365,7 +1365,7 @@ extern char sh_additional_register_names[ADDREGNAMES_SIZE] \
|
|||
#define DEFAULT_PCC_STRUCT_RETURN 0
|
||||
|
||||
#define SHMEDIA_REGS_STACK_ADJUST() \
|
||||
(TARGET_SHCOMPACT && current_function_has_nonlocal_label \
|
||||
(TARGET_SHCOMPACT && current_function_saves_all_registers \
|
||||
? (8 * (/* r28-r35 */ 8 + /* r44-r59 */ 16 + /* tr5-tr7 */ 3) \
|
||||
+ (TARGET_FPU_ANY ? 4 * (/* fr36 - fr63 */ 28) : 0)) \
|
||||
: 0)
|
||||
|
|
|
@ -5023,7 +5023,7 @@ label:
|
|||
[(set (match_dup 0) (match_dup 1))]
|
||||
"
|
||||
{
|
||||
if (TARGET_SHCOMPACT && current_function_has_nonlocal_label)
|
||||
if (TARGET_SHCOMPACT && current_function_saves_all_registers)
|
||||
operands[1] = gen_frame_mem (SImode, return_address_pointer_rtx);
|
||||
}")
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue