diff options
author | Edjunior Barbosa Machado <emachado@linux.vnet.ibm.com> | 2016-09-20 16:58:39 -0300 |
---|---|---|
committer | Edjunior Barbosa Machado <emachado@linux.vnet.ibm.com> | 2016-09-20 16:58:39 -0300 |
commit | 4e2b3c62a39b99edcd20c25774c1eee01ea6fad5 (patch) | |
tree | e33ef9ad6cbed9971aee5443937d5d768af43dbf | |
parent | 87e84bc8a7842db2a4ab10a39118bf563c620d6c (diff) | |
download | gdb-4e2b3c62a39b99edcd20c25774c1eee01ea6fad5.zip gdb-4e2b3c62a39b99edcd20c25774c1eee01ea6fad5.tar.gz gdb-4e2b3c62a39b99edcd20c25774c1eee01ea6fad5.tar.bz2 |
ppc: Fix record support of Store String Word instructions
gdb/ChangeLog
2016-09-20 Edjunior Barbosa Machado <emachado@linux.vnet.ibm.com>
* rs6000-tdep.c (ppc_process_record_op31): Fix record of Store String
Word instructions.
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/rs6000-tdep.c | 10 |
2 files changed, 12 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 92aec7a..6f45d50 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2016-09-20 Edjunior Barbosa Machado <emachado@linux.vnet.ibm.com> + + * rs6000-tdep.c (ppc_process_record_op31): Fix record of Store String + Word instructions. + 2016-09-06 Pedro Alves <palves@redhat.com> * top.c (wait_sync_command_done): Don't assume current_ui doesn't diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c index eb12c5d..fab3583 100644 --- a/gdb/rs6000-tdep.c +++ b/gdb/rs6000-tdep.c @@ -4539,7 +4539,8 @@ ppc_process_record_op31 (struct gdbarch *gdbarch, struct regcache *regcache, case 725: /* Store String Word Immediate */ ra = 0; if (PPC_RA (insn) != 0) - regcache_raw_read_unsigned (regcache, tdep->ppc_xer_regnum, &ra); + regcache_raw_read_unsigned (regcache, + tdep->ppc_gp0_regnum + PPC_RA (insn), &ra); ea += ra; nb = PPC_NB (insn); @@ -4553,7 +4554,8 @@ ppc_process_record_op31 (struct gdbarch *gdbarch, struct regcache *regcache, case 661: /* Store String Word Indexed */ ra = 0; if (PPC_RA (insn) != 0) - regcache_raw_read_unsigned (regcache, tdep->ppc_xer_regnum, &ra); + regcache_raw_read_unsigned (regcache, + tdep->ppc_gp0_regnum + PPC_RA (insn), &ra); ea += ra; regcache_raw_read_unsigned (regcache, tdep->ppc_xer_regnum, &xer); @@ -4561,7 +4563,9 @@ ppc_process_record_op31 (struct gdbarch *gdbarch, struct regcache *regcache, if (nb != 0) { - regcache_raw_read_unsigned (regcache, tdep->ppc_xer_regnum, &rb); + regcache_raw_read_unsigned (regcache, + tdep->ppc_gp0_regnum + PPC_RB (insn), + &rb); ea += rb; record_full_arch_list_add_mem (ea, nb); } |