gdb: Extend the trad-frame API
authorAndrew Burgess <andrew.burgess@embecosm.com>
Fri, 17 Aug 2018 07:54:26 +0000 (08:54 +0100)
committerAndrew Burgess <andrew.burgess@embecosm.com>
Mon, 3 Sep 2018 14:48:41 +0000 (15:48 +0100)
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.

gdb/ChangeLog
gdb/trad-frame.c
gdb/trad-frame.h

index 128c0e8..446fa22 100644 (file)
@@ -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
index a6e2415..fd9f240 100644 (file)
@@ -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
index f7ec43c..a11a2c2 100644 (file)
@@ -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);