ppc: Fix record support of Store String Word instructions
authorEdjunior Barbosa Machado <emachado@linux.vnet.ibm.com>
Tue, 20 Sep 2016 15:24:30 +0000 (12:24 -0300)
committerEdjunior Barbosa Machado <emachado@linux.vnet.ibm.com>
Tue, 20 Sep 2016 15:24:30 +0000 (12:24 -0300)
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.

gdb/ChangeLog
gdb/rs6000-tdep.c

index 0dacaf6..2b0589a 100644 (file)
@@ -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-20  Sergio Durigan Junior  <sergiodj@redhat.com>
 
        * fork-inferior.c (startup_inferior): Pass 'event_ptid' instead of
index 5f15780..263dda0 100644 (file)
@@ -4540,7 +4540,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);
@@ -4554,7 +4555,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);
@@ -4562,7 +4564,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);
        }