This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Problem converting ia64 to use new frame model


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



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]