diff options
author | Andrew Cagney <cagney@redhat.com> | 2004-03-22 03:15:23 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 2004-03-22 03:15:23 +0000 |
commit | 1aef2af9e5d477c078495d2fa36a3d57d17eba5e (patch) | |
tree | 9d4e2d6794b452f1e03e9a356804416008c35914 /gdb/trad-frame.c | |
parent | d2ad28bb36aa9704073ab540bd03c218b89f63a1 (diff) | |
download | gdb-cagney_tramp-20040309-branch.zip gdb-cagney_tramp-20040309-branch.tar.gz gdb-cagney_tramp-20040309-branch.tar.bz2 |
Final tramp-frame code.cagney_tramp-20040309-branch
Diffstat (limited to 'gdb/trad-frame.c')
-rw-r--r-- | gdb/trad-frame.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/gdb/trad-frame.c b/gdb/trad-frame.c index 3b570e1..85575df 100644 --- a/gdb/trad-frame.c +++ b/gdb/trad-frame.c @@ -24,6 +24,14 @@ #include "trad-frame.h" #include "regcache.h" +struct trad_frame_cache +{ + struct frame_info *next_frame; + CORE_ADDR this_base; + struct trad_frame_saved_reg *prev_regs; + struct frame_id this_id; +}; + struct trad_frame_cache * trad_frame_cache_zalloc (struct frame_info *next_frame) { @@ -31,6 +39,7 @@ trad_frame_cache_zalloc (struct frame_info *next_frame) this_trad_cache = FRAME_OBSTACK_ZALLOC (struct trad_frame_cache); this_trad_cache->prev_regs = trad_frame_alloc_saved_regs (next_frame); + this_trad_cache->next_frame = next_frame; return this_trad_cache; } @@ -89,6 +98,13 @@ trad_frame_set_value (struct trad_frame_saved_reg this_saved_regs[], } void +trad_frame_set_reg_addr (struct trad_frame_cache *this_trad_cache, + int regnum, CORE_ADDR addr) +{ + this_trad_cache->prev_regs[regnum].addr = addr; +} + +void trad_frame_set_unknown (struct trad_frame_saved_reg this_saved_regs[], int regnum) { @@ -142,3 +158,29 @@ trad_frame_prev_register (struct frame_info *next_frame, gdbarch_register_name (gdbarch, regnum)); } } + +void +trad_frame_get_register (struct trad_frame_cache *this_trad_cache, + struct frame_info *next_frame, + int regnum, int *optimizedp, + enum lval_type *lvalp, CORE_ADDR *addrp, + int *realregp, void *bufferp) +{ + trad_frame_prev_register (next_frame, this_trad_cache->prev_regs, + regnum, optimizedp, lvalp, addrp, realregp, + bufferp); +} + +void +trad_frame_set_id (struct trad_frame_cache *this_trad_cache, + struct frame_id this_id) +{ + this_trad_cache->this_id = this_id; +} + +void +trad_frame_get_id (struct trad_frame_cache *this_trad_cache, + struct frame_id *this_id) +{ + (*this_id) = this_trad_cache->this_id; +} |