Commit d7862be3 by Nick Clifton Committed by Nick Clifton

rx.c (rx_get_stack_layout): Only save call clobbered registers inside interrupt handlers if...

	* config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
	registers inside interrupt handlers if the handler is not a leaf
	function.

From-SVN: r169434
parent 171bbfd2
2011-01-31 Nick Clifton <nickc@redhat.com>
* config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
registers inside interrupt handlers if the handler is not a leaf
function.
2011-01-31 Nick Clifton <nickc@redhat.com>
* config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
reg_renumber returning an INVALID_REGNUM.
......
......@@ -1137,10 +1137,12 @@ rx_get_stack_layout (unsigned int * lowest,
for (save_mask = high = low = 0, reg = 1; reg < CC_REGNUM; reg++)
{
if ((df_regs_ever_live_p (reg)
/* Always save all call clobbered registers inside interrupt
handlers, even if they are not live - they may be used in
routines called from this one. */
|| (call_used_regs[reg] && is_interrupt_func (NULL_TREE)))
/* Always save all call clobbered registers inside non-leaf
interrupt handlers, even if they are not live - they may
be used in (non-interrupt aware) routines called from this one. */
|| (call_used_regs[reg]
&& is_interrupt_func (NULL_TREE)
&& ! current_function_is_leaf))
&& (! call_used_regs[reg]
/* Even call clobbered registered must
be pushed inside interrupt handlers. */
......
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