caller-save.c (save_call_clobbered_regs): Do not process sibcalls.
2007-02-15 Paolo Bonzini <bonzini@gnu.org> * caller-save.c (save_call_clobbered_regs): Do not process sibcalls. From-SVN: r121998
This commit is contained in:
parent
fc01261a60
commit
ed765125f2
@ -1,3 +1,7 @@
|
||||
2007-02-15 Paolo Bonzini <bonzini@gnu.org>
|
||||
|
||||
* caller-save.c (save_call_clobbered_regs): Do not process sibcalls.
|
||||
|
||||
2007-02-15 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* varasm.c (default_asm_output_anchor): Prepend * to . symbol in
|
||||
|
@ -407,7 +407,9 @@ save_call_clobbered_regs (void)
|
||||
regno += insert_restore (chain, 1, regno, MOVE_MAX_WORDS, save_mode);
|
||||
}
|
||||
|
||||
if (code == CALL_INSN && ! find_reg_note (insn, REG_NORETURN, NULL))
|
||||
if (code == CALL_INSN
|
||||
&& ! SIBLING_CALL_P (insn)
|
||||
&& ! find_reg_note (insn, REG_NORETURN, NULL))
|
||||
{
|
||||
unsigned regno;
|
||||
HARD_REG_SET hard_regs_to_save;
|
||||
@ -450,11 +452,6 @@ save_call_clobbered_regs (void)
|
||||
during the call, but the subreg that is set isn't. */
|
||||
CLEAR_HARD_REG_SET (this_insn_sets);
|
||||
note_stores (PATTERN (insn), mark_set_regs, &this_insn_sets);
|
||||
/* Sibcalls are considered to set the return value,
|
||||
compare flow.c:propagate_one_insn. */
|
||||
if (SIBLING_CALL_P (insn) && current_function_return_rtx)
|
||||
mark_set_regs (current_function_return_rtx, NULL_RTX,
|
||||
&this_insn_sets);
|
||||
|
||||
/* Compute which hard regs must be saved before this call. */
|
||||
AND_COMPL_HARD_REG_SET (hard_regs_to_save, call_fixed_reg_set);
|
||||
|
Loading…
Reference in New Issue
Block a user