Problem converting ia64 to use new frame model
Andrew Cagney
ac131313@redhat.com
Tue Jul 22 17:57:00 GMT 2003
> I have things working reasonably well, but I have run into a problem when
> returning from a function (e.g. restore.exp testcase). The bsp and
> cfm values (used to compute where regs 32-127 are stored) do not get
> restored to their previous values.
Hmm, the new model is that the unwinder shall return register values
exactly as if there were no more inner frame.
No additional adjustment necessary.
Perhaphs that model needs to be revisited, or adjusted slightly.
> In the old code, the ia64_pop_frame_regular () code would reset the
> bsp and cfm registers manually after calculating their previous values.
> This was set up by using the set_gdbarch_deprecated_pop_frame method.
>
> In the new code, nothing seems to reset these two registers on a return
> call. They are normally set by the hardware when you call or return.
>
> How do I set up the special rewrite of the registers when the
> frame is popped?
For the moment, add a comment to ia64 pop-frame explaining what happens.
Once the basic changes are in place, it will be easier to revisit this.
Andrew
More information about the Gdb
mailing list