This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: dwarf2 eh for alpha, mark 2


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~


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]