diff options
author | Andrew Burgess <andrew.burgess@embecosm.com> | 2018-08-17 08:54:26 +0100 |
---|---|---|
committer | Andrew Burgess <andrew.burgess@embecosm.com> | 2018-09-03 15:48:41 +0100 |
commit | 23e60e7a4ea772eabb6ae4788913e228763755cf (patch) | |
tree | ad718250e5ee1563a221b542739735d73b48dab4 | |
parent | 20a4d0bd98969ddbfead7288e6027639dcbd9a21 (diff) | |
download | gdb-23e60e7a4ea772eabb6ae4788913e228763755cf.zip gdb-23e60e7a4ea772eabb6ae4788913e228763755cf.tar.gz gdb-23e60e7a4ea772eabb6ae4788913e228763755cf.tar.bz2 |
gdb: Extend the trad-frame API
Adds two new functions to the trad-frame API and update the internals
of trad-frame to use the new functions. These functions will be used
in later commits.
gdb/ChangeLog:
* trad-frame.h (trad_frame_set_realreg): Declare.
(trad_frame_set_addr): Declare.
* trad-frame.c (trad_frame_set_realreg): Define new function.
(trad_frame_set_addr): Define new function.
(trad_frame_set_reg_realreg): Use new function.
(trad_frame_set_reg_addr): Use new function.
-rw-r--r-- | gdb/ChangeLog | 9 | ||||
-rw-r--r-- | gdb/trad-frame.c | 25 | ||||
-rw-r--r-- | gdb/trad-frame.h | 8 |
3 files changed, 39 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 128c0e8..446fa22 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,12 @@ +2018-09-03 Andrew Burgess <andrew.burgess@embecosm.com> + + * trad-frame.h (trad_frame_set_realreg): Declare. + (trad_frame_set_addr): Declare. + * trad-frame.c (trad_frame_set_realreg): Define new function. + (trad_frame_set_addr): Define new function. + (trad_frame_set_reg_realreg): Use new function. + (trad_frame_set_reg_addr): Use new function. + 2018-09-01 Keith Seitz <keiths@redhat.com> * compile/compile-cplus-types.c (compile_cplus_debug_output_1): Use diff --git a/gdb/trad-frame.c b/gdb/trad-frame.c index a6e2415..fd9f240 100644 --- a/gdb/trad-frame.c +++ b/gdb/trad-frame.c @@ -105,6 +105,26 @@ trad_frame_set_value (struct trad_frame_saved_reg this_saved_regs[], this_saved_regs[regnum].addr = val; } +/* See trad-frame.h. */ + +void +trad_frame_set_realreg (struct trad_frame_saved_reg this_saved_regs[], + int regnum, int realreg) +{ + this_saved_regs[regnum].realreg = realreg; + this_saved_regs[regnum].addr = -1; +} + +/* See trad-frame.h. */ + +void +trad_frame_set_addr (struct trad_frame_saved_reg this_saved_regs[], + int regnum, CORE_ADDR addr) +{ + this_saved_regs[regnum].realreg = regnum; + this_saved_regs[regnum].addr = addr; +} + void trad_frame_set_reg_value (struct trad_frame_cache *this_trad_cache, int regnum, LONGEST val) @@ -118,15 +138,14 @@ void trad_frame_set_reg_realreg (struct trad_frame_cache *this_trad_cache, int regnum, int realreg) { - this_trad_cache->prev_regs[regnum].realreg = realreg; - this_trad_cache->prev_regs[regnum].addr = -1; + trad_frame_set_realreg (this_trad_cache->prev_regs, regnum, realreg); } 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; + trad_frame_set_addr (this_trad_cache->prev_regs, regnum, addr); } void diff --git a/gdb/trad-frame.h b/gdb/trad-frame.h index f7ec43c..a11a2c2 100644 --- a/gdb/trad-frame.h +++ b/gdb/trad-frame.h @@ -88,6 +88,14 @@ struct trad_frame_saved_reg void trad_frame_set_value (struct trad_frame_saved_reg this_saved_regs[], int regnum, LONGEST val); +/* Encode REGNUM is in REALREG in the trad-frame. */ +void trad_frame_set_realreg (struct trad_frame_saved_reg this_saved_regs[], + int regnum, int realreg); + +/* Encode REGNUM is at address ADDR in the trad-frame. */ +void trad_frame_set_addr (struct trad_frame_saved_reg this_trad_cache[], + int regnum, CORE_ADDR addr); + /* Mark REGNUM as unknown. */ void trad_frame_set_unknown (struct trad_frame_saved_reg this_saved_regs[], int regnum); |