diff options
Diffstat (limited to 'gdb/trad-frame.h')
-rw-r--r-- | gdb/trad-frame.h | 63 |
1 files changed, 39 insertions, 24 deletions
diff --git a/gdb/trad-frame.h b/gdb/trad-frame.h index ae2722eefb7..6af0df301ac 100644 --- a/gdb/trad-frame.h +++ b/gdb/trad-frame.h @@ -63,51 +63,66 @@ struct trad_frame_cache { struct frame_id this_id; CORE_ADDR this_base; - struct trad_frame_saved_reg *prev_regs; + struct trad_frame_saved_reg *saved_regs; }; +struct trad_frame_cache *trad_frame_cache_zalloc (struct frame_info *next_frame); + + /* Encode REGNUM's value in the trad-frame. */ -void trad_frame_set_value (struct trad_frame_cache *this_cache, - int regnum, LONGEST val); -void trad_frame_set_addr (struct trad_frame_cache *this_cache, - int regnum, CORE_ADDR addr); -void trad_frame_set_realreg (struct trad_frame_cache *this_cache, - int regnum, int realreg); -void trad_frame_set_unknown (struct trad_frame_cache *this_cache, - int regnum); +void trad_frame_set_reg_value (struct trad_frame_cache *this_cache, + int regnum, LONGEST val); +void trad_frame_set_reg_addr (struct trad_frame_cache *this_cache, + int regnum, CORE_ADDR addr); +void trad_frame_set_reg_reg (struct trad_frame_cache *this_cache, + int regnum, int realreg); +void trad_frame_set_reg_unknown (struct trad_frame_cache *this_cache, + int regnum); +void trad_frame_set_this_id (struct trad_frame_cache *this_cache, + struct frame_id *this_id); +void trad_frame_set_this_base (struct trad_frame_cache *this_cache, + CORE_ADDR base); /* Set the offset of a register, and then update all offsets. Useful when the offset of a register is known before its absolute address. */ -void trad_frame_set_offset (struct trad_frame_cache *this_cache, - int regnum, LONGEST addr); -void trad_frame_add_addr (struct trad_frame_cache *this_cache, - int regnum, CORE_ADDR addr); +void trad_frame_set_reg_offset (struct trad_frame_cache *this_cache, + int regnum, LONGEST addr); +void trad_frame_add_reg_addr (struct trad_frame_cache *this_cache, + int regnum, CORE_ADDR addr); /* Convenience functions, return non-zero if the register has been encoded as specified. */ -int trad_frame_value_p (struct trad_frame_cache *this_cache, - int regnum); -int trad_frame_addr_p (struct trad_frame_cache *this_cache, - int regnum); -int trad_frame_realreg_p (struct trad_frame_cache *this_cache, +int trad_frame_reg_value_p (struct trad_frame_cache *this_cache, + int regnum); +int trad_frame_reg_addr_p (struct trad_frame_cache *this_cache, + int regnum); +int trad_frame_reg_reg_p (struct trad_frame_cache *this_cache, int regnum); -typedef void (trad_frame_init_ftype) (const struct trad_frame *self, - struct frame_info *next_frame, - struct trad_frame_cache *this_cache); -typedef int (trad_frame_sniffer_ftype) (const struct trad_frame *self, - struct frame_info *next_frame); +typedef struct trad_frame_cache *(trad_frame_sniffer_ftype) (const struct trad_frame *self, + struct frame_info *next_frame); struct trad_frame { enum frame_type type; trad_frame_sniffer_ftype *sniffer; - trad_frame_init_ftype *init; const struct trad_frame_data *trad_data; }; void trad_frame_append (struct gdbarch *gdbarch, const struct trad_frame *trad_frame); +void trad_frame_this_id (struct trad_frame_cache *trad_cache, + struct frame_info *next_frame, + struct frame_id *this_id); + +void trad_frame_prev_register (struct trad_frame_cache *trad_cache, + struct frame_info *next_frame, + int prev_regnum, + int *optimizedp, + enum lval_type * lvalp, + CORE_ADDR *addrp, + int *realnump, void *valuep); + #endif |