dwarf2 eh for alpha, mark 2
Richard Henderson
rth@cygnus.com
Wed Sep 9 02:23:00 GMT 1998
On Wed, Sep 09, 1998 at 01:56:50AM -0700, Jason Merrill wrote:
> Looks good. One problem: you changed the SP handling to set SP directly,
> rather than adjusting it. I did it with an adjustment to accomodate
> targets like SPARC64 where the SP register value is offset from the real
> stack frame address.
I would have thought that would have been all part of the CFA.
Oh, I think I see now that I was just lucky. I was using the CFA of
the inner call, when what I wanted was cfa-cfa_offset of one frame
farther in. Which happen to be the same thing most of the time.
I guess I'll change it back to an adjustment. I was trying to be
more efficient than the addition, but one subtract and one add is
going to cost much less than unwinding one more frame. Blah.
On a vaguely related note, it seems to me that we could get this
if (udata->cfa_reg == __builtin_dwarf_fp_regnum ())
udata->cfa = __builtin_fp ();
else
udata->cfa = __builtin_sp ();
udata->cfa += udata->cfa_offset;
directly via a virtual register instantiation. I'll see what I
can come up with there.
r~
More information about the Gcc-patches
mailing list