/* Target-dependent code for OpenBSD/sparc64.
- Copyright (C) 2004-2014 Free Software Foundation, Inc.
+ Copyright (C) 2004-2015 Free Software Foundation, Inc.
This file is part of GDB.
#include "objfiles.h"
#include "trad-frame.h"
-#include "gdb_assert.h"
-
#include "obsd-tdep.h"
#include "sparc64-tdep.h"
#include "solib-svr4.h"
match the ptrace(2) layout. */
/* From <machine/reg.h>. */
-const struct sparc_gregset sparc64obsd_gregset =
+const struct sparc_gregmap sparc64obsd_gregmap =
{
0 * 8, /* "tstate" */
1 * 8, /* %pc */
4 /* sizeof (%y) */
};
-const struct sparc_gregset sparc64obsd_core_gregset =
+const struct sparc_gregmap sparc64obsd_core_gregmap =
{
0 * 8, /* "tstate" */
1 * 8, /* %pc */
if (len < 832)
{
- sparc64_supply_gregset (&sparc64obsd_gregset, regcache, regnum, gregs);
+ sparc64_supply_gregset (&sparc64obsd_gregmap, regcache, regnum, gregs);
return;
}
- sparc64_supply_gregset (&sparc64obsd_core_gregset, regcache, regnum, gregs);
- sparc64_supply_fpregset (&sparc64_bsd_fpregset, regcache, regnum, fpregs);
+ sparc64_supply_gregset (&sparc64obsd_core_gregmap, regcache, regnum, gregs);
+ sparc64_supply_fpregset (&sparc64_bsd_fpregmap, regcache, regnum, fpregs);
}
static void
struct regcache *regcache,
int regnum, const void *fpregs, size_t len)
{
- sparc64_supply_fpregset (&sparc64_bsd_fpregset, regcache, regnum, fpregs);
+ sparc64_supply_fpregset (&sparc64_bsd_fpregmap, regcache, regnum, fpregs);
}
\f
CORE_ADDR addr;
if (*this_cache)
- return *this_cache;
+ return (struct sparc_frame_cache *) *this_cache;
cache = sparc_frame_cache (this_frame, this_cache);
gdb_assert (cache == *this_cache);
int regnum;
if (*this_cache)
- return *this_cache;
+ return (struct sparc_frame_cache *) *this_cache;
cache = sparc_frame_cache (this_frame, this_cache);
gdb_assert (cache == *this_cache);
}
\f
+static const struct regset sparc64obsd_gregset =
+ {
+ NULL, sparc64obsd_supply_gregset, NULL
+ };
+
+static const struct regset sparc64obsd_fpregset =
+ {
+ NULL, sparc64obsd_supply_fpregset, NULL
+ };
+
static void
sparc64obsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
{
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
- tdep->gregset = regset_alloc (gdbarch, sparc64obsd_supply_gregset, NULL);
+ tdep->gregset = &sparc64obsd_gregset;
tdep->sizeof_gregset = 288;
-
- tdep->fpregset = regset_alloc (gdbarch, sparc64obsd_supply_fpregset, NULL);
+ tdep->fpregset = &sparc64obsd_fpregset;
tdep->sizeof_fpregset = 272;
/* Make sure we can single-step "new" syscalls. */
frame_unwind_append_unwinder (gdbarch, &sparc64obsd_trapframe_unwind);
sparc64_init_abi (info, gdbarch);
+ obsd_init_abi (info, gdbarch);
/* OpenBSD/sparc64 has SVR4-style shared libraries. */
set_solib_svr4_fetch_link_map_offsets