+{
+ /* If non-zero (and regnum >= 0), the stack address at which the
+ register is saved. By default, it is assumed that the register
+ was not saved (addr == 0). Remember, a LONGEST can always fit a
+ CORE_ADDR. */
+ LONGEST addr;
+ /* else, if regnum >=0 (and addr == 0), the REGNUM that contains
+ this registers value. By default, it is assumed that the
+ registers are not moved (the register's value is still in that
+ register and regnum == the index). */
+ int regnum;
+ /* else, if regnum < 0, ADDR is the registers value. */
+};
Gyuh? I looked at this for a couple of minutes and couldn't make heads
or tails of it until I went to look at trad-frame.c: this structure
isn't a frame at all, it's a single saved register. Could you rename
it, and update the comments?
I'm also not sure I understand all the combinations:
regnum < 0, addr is the register value
regnum >= 0 and addr 0, regnum holds the new register number (in the
next frame?)