This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
Re: Exception causing insns in delay slots
- From: Jason Merrill <jason at redhat dot com>
- To: "David S. Miller" <davem at redhat dot com>
- Cc: gcc-patches at gcc dot gnu dot org, mark at codesourcery dot com, java at gcc dot gnu dot org
- Date: Fri, 26 Apr 2002 11:43:39 +0100
- Subject: Re: Exception causing insns in delay slots
- References: <20020425.213054.00020114.davem@redhat.com>
>>>>> "David" == David S Miller <davem@redhat.com> writes:
> After some analysis of how unwinding and throw work, I think it
> may not even be supportable on Sparc. The reason has to do with
> a combination of two things:
> a) How unwind-dw2.c looks for FDEs at "context->ra - 1" instead of
> just "context->ra"
> b) How on delay slot architectures "context->ra - 1" is not
> necessarily the previous instruction executed.
context->ra - 1 isn't supposed to be the previous instruction; it's
supposed to point somewhere inside the throwing instruction.
> Basically, for signal frame dwarf2 unwind to work in the current
> framework the signal handler advances the program counter past
> the exception causing instruction and that value minus one has to
> be within the exception causing instruction.
Sounds right to me. What's the problem?
The dwarf2 unwind information does not know about delay slots; it assumes
that code is executed linearly, so it's important that the shuffling of
instructions for delay slot scheduling doesn't affect register save
information. Other than that, it should be fine.
Jason