diff options
author | Andrew Cagney <cagney@redhat.com> | 2003-07-01 13:25:19 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 2003-07-01 13:25:19 +0000 |
commit | 3b3850e8522c6002cf38ecd573a4a83ac818a9bb (patch) | |
tree | 1a18f39de8053e9099dd9ce2fb85525dfb30480a /gdb/trad-frame.h | |
parent | 39071cb835a8a987f53c69b666e244ec53672325 (diff) | |
download | gdb-3b3850e8522c6002cf38ecd573a4a83ac818a9bb.zip gdb-3b3850e8522c6002cf38ecd573a4a83ac818a9bb.tar.gz gdb-3b3850e8522c6002cf38ecd573a4a83ac818a9bb.tar.bz2 |
2003-07-01 Andrew Cagney <cagney@redhat.com>
* trad-frame.h: Update comments, a -1 .addr is reserved.
(trad_frame_value_p, trad_frame_addr_p): Declare.
(trad_frame_reg_p): Declare.
(trad_frame_set_value): Rename trad_frame_register_value.
(trad_frame_set_unknown): Declare.
* trad-frame.c (trad_frame_realreg_p): New function.
(trad_frame_addr_p, trad_frame_value_p): New function.
(trad_frame_set_unknown): New function.
(trad_frame_alloc_saved_regs): Initialize .addr to -1, not zero.
(trad_frame_prev_register): Use trad_frame_realreg_p,
trad_frame_addr_p and trad_frame_value_p.
(trad_frame_set_value): Rename trad_frame_register_value.
* d10v-tdep.c (d10v_frame_unwind_cache): Use trad_frame_addr_p
and trad_frame_set_value.
Diffstat (limited to 'gdb/trad-frame.h')
-rw-r--r-- | gdb/trad-frame.h | 50 |
1 files changed, 34 insertions, 16 deletions
diff --git a/gdb/trad-frame.h b/gdb/trad-frame.h index 2b04c7e..55720c7 100644 --- a/gdb/trad-frame.h +++ b/gdb/trad-frame.h @@ -28,33 +28,51 @@ struct frame_info; 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 + The table is initialized with an identity encoding (ADDR == -1, + REALREG == REGNUM) indicating that the value of REGNUM in the + previous frame can be found in register REGNUM (== REALREG) 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 ADDR (REALREG >= 0, ADDR != -1) to indicate that the value + of register REGNUM in the previous frame can be found in memory at + ADDR in this frame (addr_p, !realreg_p, !value_p). - 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. + Modify REALREG (REALREG >= 0, ADDR == -1) to indicate that the + value of register REGNUM in the previous frame is found in register + REALREG in this frame (!addr_p, realreg_p, !value_p). - Call trad_frame_register_value (REALNUM < 0) to indicate that the - value of register REGNUM in the previous frame is found in ADDR. */ + Call trad_frame_set_value (REALREG == -1) to indicate that the + value of register REGNUM in the previous frame is found in ADDR + (!addr_p, !realreg_p, value_p). + + Call trad_frame_set_unknown (REALREG == -2) to indicate that the + register's value is not known. */ struct trad_frame_saved_reg { LONGEST addr; /* A CORE_ADDR fits in a longest. */ - int realnum; + int realreg; }; -/* 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); +/* Encode REGNUM value in the trad-frame. */ +void trad_frame_set_value (struct trad_frame_saved_reg this_saved_regs[], + int regnum, LONGEST val); + +/* Mark REGNUM as unknown. */ +void trad_frame_set_unknown (struct trad_frame_saved_reg this_saved_regs[], + int regnum); + +/* Convenience functions, return non-zero if the register has been + encoded as specified. */ +int trad_frame_value_p (struct trad_frame_saved_reg this_saved_regs[], + int regnum); +int trad_frame_addr_p (struct trad_frame_saved_reg this_saved_regs[], + int regnum); +int trad_frame_realreg_p (struct trad_frame_saved_reg this_saved_regs[], + int regnum); + /* Return a freshly allocated (and initialized) trad_frame array. */ struct trad_frame_saved_reg *trad_frame_alloc_saved_regs (struct frame_info *next_frame); @@ -65,6 +83,6 @@ void trad_frame_prev_register (struct frame_info *next_frame, struct trad_frame_saved_reg this_saved_regs[], int regnum, int *optimizedp, enum lval_type *lvalp, CORE_ADDR *addrp, - int *realnump, void *bufferp); + int *realregp, void *bufferp); #endif |