This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: EH question and registers
- From: Richard Henderson <rth at redhat dot com>
- To: Richard Kenner <kenner at vlsi1 dot ultra dot nyu dot edu>
- Cc: gcc at gcc dot gnu dot org
- Date: Tue, 6 Jul 2004 18:00:21 -0700
- Subject: Re: EH question and registers
- References: <10407070019.AA29406@vlsi1.ultra.nyu.edu>
On Tue, Jul 06, 2004 at 08:19:56PM -0400, Richard Kenner wrote:
> The problem I'm having with the Ada ACATS tests has to do with EH.
>
> I have a situation like this:
>
> ... code that sets a register (r12 in this case) ...
>
> ... a block that raises and catches an exception but doesn't modify R12
>
> ... code that looks at r12
>
> The act of raising and catching the exception isn't restoring r12.
...
> So suggestions as to where to look first would be greatly appreciated.
Amd64 r12 (don't make us guess what platform next time) is a call-clobbered
register. The value that was allocated to r12 clearly isn't thought to be
live across the throw or catch, or it wouldn't have been allocated there.
r~