Commit ed765125 by Paolo Bonzini Committed by Paolo Bonzini

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
parent fc01261a
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> 2007-02-15 Nick Clifton <nickc@redhat.com>
* varasm.c (default_asm_output_anchor): Prepend * to . symbol in * varasm.c (default_asm_output_anchor): Prepend * to . symbol in
......
...@@ -407,7 +407,9 @@ save_call_clobbered_regs (void) ...@@ -407,7 +407,9 @@ save_call_clobbered_regs (void)
regno += insert_restore (chain, 1, regno, MOVE_MAX_WORDS, save_mode); 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; unsigned regno;
HARD_REG_SET hard_regs_to_save; HARD_REG_SET hard_regs_to_save;
...@@ -450,11 +452,6 @@ save_call_clobbered_regs (void) ...@@ -450,11 +452,6 @@ save_call_clobbered_regs (void)
during the call, but the subreg that is set isn't. */ during the call, but the subreg that is set isn't. */
CLEAR_HARD_REG_SET (this_insn_sets); CLEAR_HARD_REG_SET (this_insn_sets);
note_stores (PATTERN (insn), mark_set_regs, &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. */ /* Compute which hard regs must be saved before this call. */
AND_COMPL_HARD_REG_SET (hard_regs_to_save, call_fixed_reg_set); AND_COMPL_HARD_REG_SET (hard_regs_to_save, call_fixed_reg_set);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment