This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH 12/13] gdbarch software_single_step frame_info to regcache: spu
- From: Yao Qi <qiyaoltc at gmail dot com>
- To: gdb-patches at sourceware dot org
- Date: Mon, 14 Nov 2016 17:42:49 +0000
- Subject: [PATCH 12/13] gdbarch software_single_step frame_info to regcache: spu
- Authentication-results: sourceware.org; auth=none
- References: <1479145370-11432-1-git-send-email-yao.qi@linaro.org>
gdb:
2016-11-10 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.
---
gdb/spu-tdep.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
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)
--
1.9.1