This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] gdbarch software_single_step frame_info to regcache: spu


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=b2260160f8cde8de118914ddeaf797bea42e65ce

commit b2260160f8cde8de118914ddeaf797bea42e65ce
Author: Yao Qi <yao.qi@linaro.org>
Date:   Tue Nov 22 14:05:05 2016 +0000

    gdbarch software_single_step frame_info to regcache: spu
    
    gdb:
    
    2016-11-22  Yao Qi  <yao.qi@linaro.org>
    
    	* spu-tdep.c (spu_software_single_step): Call get_regcache_arch
    	instead of get_frame_arch.  Call regcache_read_pc instead of
    	get_frame_pc.  Call regcache_raw_get_unsigned instead of
    	get_frame_register_unsigned.

Diff:
---
 gdb/ChangeLog  | 7 +++++++
 gdb/spu-tdep.c | 9 +++++----
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 7b799bd..d28552b 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,12 @@
 2016-11-22  Yao Qi  <yao.qi@linaro.org>
 
+	* spu-tdep.c (spu_software_single_step): Call get_regcache_arch
+	instead of get_frame_arch.  Call regcache_read_pc instead of
+	get_frame_pc.  Call regcache_raw_get_unsigned instead of
+	get_frame_register_unsigned.
+
+2016-11-22  Yao Qi  <yao.qi@linaro.org>
+
 	* tic6x-tdep.c (tic6x_condition_true): Replace frame with
 	regcache.  Call regcache_raw_get_signed instead of
 	get_frame_register_signed.
diff --git a/gdb/spu-tdep.c b/gdb/spu-tdep.c
index 073be2d..d16b68f 100644
--- a/gdb/spu-tdep.c
+++ b/gdb/spu-tdep.c
@@ -1613,7 +1613,8 @@ spu_memory_remove_breakpoint (struct gdbarch *gdbarch,
 static VEC (CORE_ADDR) *
 spu_software_single_step (struct frame_info *frame)
 {
-  struct gdbarch *gdbarch = get_frame_arch (frame);
+  struct regcache *regcache = get_current_regcache ();
+  struct gdbarch *gdbarch = get_regcache_arch (regcache);
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   CORE_ADDR pc, next_pc;
   unsigned int insn;
@@ -1622,7 +1623,7 @@ spu_software_single_step (struct frame_info *frame)
   ULONGEST lslr;
   VEC (CORE_ADDR) *next_pcs = NULL;
 
-  pc = get_frame_pc (frame);
+  pc = regcache_read_pc (regcache);
 
   if (target_read_memory (pc, buf, 4))
     throw_error (MEMORY_ERROR, _("Could not read instruction at %s."),
@@ -1631,7 +1632,7 @@ spu_software_single_step (struct frame_info *frame)
   insn = extract_unsigned_integer (buf, 4, byte_order);
 
   /* Get local store limit.  */
-  lslr = get_frame_register_unsigned (frame, SPU_LSLR_REGNUM);
+  lslr = regcache_raw_get_unsigned (regcache, SPU_LSLR_REGNUM);
   if (!lslr)
     lslr = (ULONGEST) -1;
 
@@ -1652,7 +1653,7 @@ spu_software_single_step (struct frame_info *frame)
       if (reg == SPU_PC_REGNUM)
 	target += SPUADDR_ADDR (pc);
       else if (reg != -1)
-	target += get_frame_register_unsigned (frame, reg) & -4;
+	target += regcache_raw_get_unsigned (regcache, reg) & -4;
 
       target = target & lslr;
       if (target != next_pc)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]