v850, dwarf2, too many fp-sp compensations?
Richard Henderson
rth@redhat.com
Thu Apr 13 17:33:00 GMT 2006
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~
More information about the Gcc
mailing list