------- Comment #4 from rth at gcc dot gnu dot org 2005-10-20 08:35 ------- Well, the ideal fix is to make use of the dwarf3 DW_OP_call_frame_cfa directive, and let the debugger get the CFA information from the ia64 unwind info. Similarly for the arm eabi unwind info.
I'm not sure what a good short-term fix is. Perhaps, as you suggest, putting some code back for TARGET_UNWIND_INFO targets. On the other hand, both ia64 and arm are ACCUMULATE_OUTGOING_ARGS targets, which means that they don't *need* all that tracking info to find the CFA. For any function that gcc generates, the CFA starts as SP+OFFSET1 and changes exactly once to either SP+OFFSET2 or FP+OFFSET3. Which means that we could fairly easily acquire this info (plus a label of the transition point) from a target hook. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24444