rx.c (rx_expand_prologue): Do not adjust frame size when pushing accumulator register.

* config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
        when pushing accumulator register.
        (rx_get_stack_layout): Always save call clobbered registers inside
        interrupt handlers.
        * config/rx/rx-modes.def: Fix descriptive comment at start of file.

From-SVN: r163720
This commit is contained in:
Nick Clifton 2010-09-01 08:33:35 +00:00 committed by Nick Clifton
parent c14c81552a
commit e14ca1cef6
3 changed files with 16 additions and 9 deletions

View File

@ -1,3 +1,11 @@
2010-09-01 Nick Clifton <nickc@redhat.com>
* config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
when pushing accumulator register.
(rx_get_stack_layout): Always save call clobbered registers inside
interrupt handlers.
* config/rx/rx-modes.def: Fix descriptive comment at start of file.
2010-09-01 Uros Bizjak <ubizjak@gmail.com>
* config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add

View File

@ -1,9 +1,6 @@
/* Definitions of target machine for GNU compiler, for ARM.
Copyright (C) 2002, 2004, 2007 Free Software Foundation, Inc.
Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl)
and Martin Simmons (@harleqn.co.uk).
More major hacks by Richard Earnshaw (rearnsha@arm.com)
Minor hacks by Nick Clifton (nickc@cygnus.com)
/* Definitions of target specific machine modes for the RX.
Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of GCC.

View File

@ -1067,7 +1067,11 @@ 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)
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)))
&& (! call_used_regs[reg]
/* Even call clobbered registered must
be pushed inside interrupt handlers. */
@ -1307,8 +1311,6 @@ rx_expand_prologue (void)
emit_insn (gen_stack_pushm (GEN_INT (2 * UNITS_PER_WORD),
gen_rx_store_vector (acc_low, acc_high)));
}
frame_size += 2 * UNITS_PER_WORD;
}
/* If needed, set up the frame pointer. */