diff options
author | Andrew Cagney <cagney@redhat.com> | 2003-06-08 22:10:12 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 2003-06-08 22:10:12 +0000 |
commit | 8983bd8343754a6b8b34a0a56e66c5fe03eb4ca3 (patch) | |
tree | 40cbc8da7176c531ec72daadc571b8a8ac1b5834 /gdb/trad-frame.h | |
parent | b9362cc7a8079dd0809070cfd94e94097fa7b6d0 (diff) | |
download | gdb-8983bd8343754a6b8b34a0a56e66c5fe03eb4ca3.zip gdb-8983bd8343754a6b8b34a0a56e66c5fe03eb4ca3.tar.gz gdb-8983bd8343754a6b8b34a0a56e66c5fe03eb4ca3.tar.bz2 |
2003-06-08 Andrew Cagney <cagney@redhat.com>
* trad-frame.h (struct trad_frame_saved_reg): Rename "struct
trad_frame". Update comments.
* d10v-tdep.c (struct d10v_unwind_cache): Update.
* trad-frame.c (trad_frame_alloc_saved_regs): Update.
(trad_frame_register_value, trad_frame_prev_register): Update.
Diffstat (limited to 'gdb/trad-frame.h')
-rw-r--r-- | gdb/trad-frame.h | 46 |
1 files changed, 29 insertions, 17 deletions
diff --git a/gdb/trad-frame.h b/gdb/trad-frame.h index ab58e35..4d75315 100644 --- a/gdb/trad-frame.h +++ b/gdb/trad-frame.h @@ -22,33 +22,45 @@ #ifndef TRAD_FRAME_H #define TRAD_FRAME_H -struct trad_frame +/* A traditional saved regs table, indexed by REGNUM, encoding where + the value of REGNUM for the previous frame can be found in this + frame. + + The table is initialized with an identity encoding (ADDR == 0, + REALNUM == REGNUM) indicating that the value of REGNUM in the + previous frame can be found in register REGNUM (== REALNUM) in this + frame. + + The initial encoding can then be changed: + + Modify ADDR (REALNUM >= 0, ADDR != 0) to indicate that the value of + register REGNUM in the previous frame can be found in memory at + ADDR in this frame. + + Modify REALNUM (REALNUM >= 0, ADDR == 0) to indicate that the value + of register REGNUM in the previous frame is found in register + REALNUM in this frame. + + Call trad_frame_register_value (REALNUM < 0) to indicate that the + value of register REGNUM in the previous frame is found in ADDR. */ + +struct trad_frame_saved_reg { - /* 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. */ + LONGEST addr; /* A CORE_ADDR fits in a longest. */ + int realnum; }; -/* Convenience function, encode the register's value in the - trad-frame. */ -void trad_frame_register_value (struct trad_frame this_saved_regs[], +/* Convenience function, encode REGNUM's location in the trad-frame. */ +void trad_frame_register_value (struct trad_frame_saved_reg this_saved_regs[], int regnum, LONGEST val); /* Return a freshly allocated (and initialized) trad_frame array. */ -struct trad_frame *trad_frame_alloc_saved_regs (struct frame_info *next_frame); +struct trad_frame_saved_reg *trad_frame_alloc_saved_regs (struct frame_info *next_frame); /* Given the trad_frame info, return the location of the specified register. */ void trad_frame_prev_register (struct frame_info *next_frame, - struct trad_frame this_saved_regs[], + struct trad_frame_saved_reg this_saved_regs[], int regnum, int *optimizedp, enum lval_type *lvalp, CORE_ADDR *addrp, int *realnump, void *bufferp); |