aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/sparc64fbsd-tdep.c24
2 files changed, 27 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 2a47610..ed79ba9 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,11 @@
2005-01-16 Mark Kettenis <kettenis@gnu.org>
+ * sparc64fbsd-tdep.c: Update copyright year.
+ (sparc64fbsd_collect_gregset, sparc64fbsd_collect_fpregset): New
+ functions.
+ (sparc64fbsd_init_abi): Create register sets with collect
+ functions.
+
* sparc64fbsd-nat.c: Include "fbsd-nat.h".
(_initialize_sparc64fbsd_nat): Add some extra features to the
generic SPARC target.
diff --git a/gdb/sparc64fbsd-tdep.c b/gdb/sparc64fbsd-tdep.c
index 5d3af00..7cd3d7c 100644
--- a/gdb/sparc64fbsd-tdep.c
+++ b/gdb/sparc64fbsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for FreeBSD/sparc64.
- Copyright 2003, 2004 Free Software Foundation, Inc.
+ Copyright 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GDB.
@@ -58,12 +58,28 @@ sparc64fbsd_supply_gregset (const struct regset *regset,
}
static void
+sparc64fbsd_collect_gregset (const struct regset *regset,
+ const struct regcache *regcache,
+ int regnum, void *gregs, size_t len)
+{
+ sparc64_collect_gregset (&sparc64fbsd_gregset, regcache, regnum, gregs);
+}
+
+static void
sparc64fbsd_supply_fpregset (const struct regset *regset,
struct regcache *regcache,
int regnum, const void *fpregs, size_t len)
{
sparc64_supply_fpregset (regcache, regnum, fpregs);
}
+
+static void
+sparc64fbsd_collect_fpregset (const struct regset *regset,
+ const struct regcache *regcache,
+ int regnum, void *fpregs, size_t len)
+{
+ sparc64_collect_fpregset (regcache, regnum, fpregs);
+}
/* Signal trampolines. */
@@ -199,10 +215,12 @@ sparc64fbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
{
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
- tdep->gregset = regset_alloc (gdbarch, sparc64fbsd_supply_gregset, NULL);
+ tdep->gregset = regset_alloc (gdbarch, sparc64fbsd_supply_gregset,
+ sparc64fbsd_collect_gregset);
tdep->sizeof_gregset = 256;
- tdep->fpregset = regset_alloc (gdbarch, sparc64fbsd_supply_fpregset, NULL);
+ tdep->fpregset = regset_alloc (gdbarch, sparc64fbsd_supply_fpregset,
+ sparc64fbsd_collect_fpregset);
tdep->sizeof_fpregset = 272;
frame_unwind_append_sniffer (gdbarch, sparc64fbsd_sigtramp_frame_sniffer);