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~