NIOS2 Linux: Fill 'collect_regset' in regset structure.
authorAndreas Arnez <arnez@linux.vnet.ibm.com>
Tue, 1 Apr 2014 07:08:11 +0000 (07:08 +0000)
committerUlrich Weigand <ulrich.weigand@de.ibm.com>
Thu, 7 Aug 2014 15:31:49 +0000 (17:31 +0200)
gdb/ChangeLog
gdb/nios2-linux-tdep.c

index ad32672..dc0cee5 100644 (file)
@@ -1,5 +1,10 @@
 2014-08-07  Andreas Arnez  <arnez@linux.vnet.ibm.com>
 
+       * nios2-linux-tdep.c (nios2_collect_gregset): New function.
+       (nios2_core_regset): Add collect method.
+
+2014-08-07  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
        * m32r-linux-tdep.c (m32r_linux_supply_gregset): Make
        platform-independent and don't write to read-only input buffer.
        (m32r_linux_collect_gregset): New function.
index b2a3c3e..b9ee922 100644 (file)
@@ -71,11 +71,30 @@ nios2_supply_gregset (const struct regset *regset,
       }
 }
 
+/* Implement the collect_regset hook for core files.  */
+
+static void
+nios2_collect_gregset (const struct regset *regset,
+                      const struct regcache *regcache,
+                      int regnum, void *gregs_buf, size_t len)
+{
+  gdb_byte *gregs = gregs_buf;
+  int regno;
+
+  for (regno = NIOS2_Z_REGNUM; regno <= NIOS2_MPUACC_REGNUM; regno++)
+    if (regnum == -1 || regnum == regno)
+      {
+       if (reg_offsets[regno] != -1)
+         regcache_raw_collect (regcache, regno,
+                               gregs + 4 * reg_offsets[regno]);
+      }
+}
+
 static const struct regset nios2_core_regset =
 {
   NULL,
   nios2_supply_gregset,
-  NULL,
+  nios2_collect_gregset
 };
 
 /* Implement the regset_from_core_section gdbarch method.  */