From 81580573ba47d0047d76d4fddabe150b49ee3b54 Mon Sep 17 00:00:00 2001 From: Andreas Arnez Date: Tue, 1 Apr 2014 07:08:11 +0000 Subject: [PATCH] NIOS2 Linux: Fill 'collect_regset' in regset structure. --- gdb/ChangeLog | 5 +++++ gdb/nios2-linux-tdep.c | 21 ++++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index ad32672..dc0cee5 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,10 @@ 2014-08-07 Andreas Arnez + * nios2-linux-tdep.c (nios2_collect_gregset): New function. + (nios2_core_regset): Add collect method. + +2014-08-07 Andreas Arnez + * 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. diff --git a/gdb/nios2-linux-tdep.c b/gdb/nios2-linux-tdep.c index b2a3c3e..b9ee922 100644 --- a/gdb/nios2-linux-tdep.c +++ b/gdb/nios2-linux-tdep.c @@ -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. */ -- 2.7.4