On Tue, Apr 04, 2006 at 04:41:25PM -0400, DJ Delorie wrote:
> The v850 is a dwarf-debug target, but not a dwarf-unwind target.  In
> dwarf2out.c we first calculate the "fp to fb offset" in
> compute_frame_pointer_to_fb_displacement.  The frame pointer is not
> needed, so note that we include the fp-sp elimination offset in
> frame_pointer_fb_offset.

Note that this is the *negative* offset.

> Later, when we calculate function parameter locations, we end up in
> based_loc_descr().  We call eliminate_regs again, adjust for the
> elimination offset, then adjust for frame_pointer_fb_offset, which
> *also* includes the elimination offset:

And this is the *positive* offset.

> The net result is that the dwarf2 debug information is off by the
> fp-sp offset.  My question is: which of these adjustments isn't
> supposed to happen in this case?

Both are supposed to happen.  I can't really debug this without
a test case.  This works on ia64, which is a non-dwarf-unwind target,
so that in-and-of itself isn't the problem.


r~

Reply via email to