This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: ARM: Support for interrupt functions - mk II
- To: Nick Clifton <nickc at redhat dot com>
- Subject: Re: ARM: Support for interrupt functions - mk II
- From: Philip Blundell <philb at gnu dot org>
- Date: Wed, 20 Sep 2000 07:16:48 +0100
- cc: rearnshaw at cambridge dot arm dot com, gcc-patches at gcc dot gnu dot org, scottb at netwinder dot org
- References: <200009192241.PAA29403@elmo.cygnus.com>
>+ case FT_ISR:
>+ case FT_EXCEPTION:
>+ /* Interrupt and exception handlers work with their own set of
>+ banked registers, so there is no need to save any of them
>+ onto the stack upon function entry. */
>+ break;
>+
>+ case FT_FIQ:
>+ /* FIQ handlers only have registers r0 - r7 banked, so
>+ if they corrupt any others, they must save them. */
>+ for (reg = 8; reg <= 12; reg++)
>+ if (regs_ever_live[reg])
>+ save_reg_mask |= (1 << reg);
>+ break;
Hi Nick,
This is exactly backwards. FIQ mode has R8..R14 banked, it's R0-R7 that must
be saved. IRQ and exception modes only bank R13 and R14 so everything must be
saved.
p.