aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Burgess <andrew.burgess@embecosm.com>2018-08-17 08:54:26 +0100
committerAndrew Burgess <andrew.burgess@embecosm.com>2018-09-03 15:48:41 +0100
commit23e60e7a4ea772eabb6ae4788913e228763755cf (patch)
treead718250e5ee1563a221b542739735d73b48dab4
parent20a4d0bd98969ddbfead7288e6027639dcbd9a21 (diff)
downloadgdb-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/ChangeLog9
-rw-r--r--gdb/trad-frame.c25
-rw-r--r--gdb/trad-frame.h8
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);