28#include <sys/ptrace.h>
29#include <sys/sysctl.h>
30#include <machine/reg.h>
31#include <machine/frame.h>
57 struct vfpreg &vfp = fpregset->fpr_vfp;
67 struct reg inferior_registers;
76 warning (_(
"unable to fetch general register"));
80 sizeof (inferior_registers));
86 struct fpreg inferior_fp_registers;
92 struct vfpreg &vfp = inferior_fp_registers.fpr_vfp;
96 warning (_(
"unable to fetch floating-point register"));
104 && regno <= ARM_D0_REGNUM + tdep->vfp_register_count)
110 warning (_(
"Invalid register number."));
116 struct fpreg inferior_fp_registers;
126 warning (_(
"unable to fetch general registers"));
155 struct reg inferior_registers;
164 warning (_(
"unable to fetch general registers"));
181 (
char *) &inferior_registers.r_pc);
190 (
gdbarch, inferior_registers.r_pc);
191 inferior_registers.r_pc |= pc_val;
198 (
char *) &inferior_registers.r_cpsr);
207 (
gdbarch, inferior_registers.r_pc);
208 inferior_registers.r_pc |= psr_val;
221 warning (_(
"unable to write register %d to inferior"), regno);
228 struct reg inferior_registers;
244 (
char *) &inferior_registers.r_cpsr);
257 inferior_registers.r_pc = pc_val | psr_val;
264 warning (_(
"unable to store general registers"));
270 struct fpreg inferior_fp_registers;
274 struct vfpreg &vfp = inferior_fp_registers.fpr_vfp;
278 warning (_(
"unable to fetch floating-point registers"));
286 && regno <= ARM_D0_REGNUM + tdep->vfp_register_count)
292 warning (_(
"Invalid register number."));
298 warning (_(
"unable to write register %d to inferior"), regno);
312 (regno +
ARM_D0_REGNUM, (
char *) &fpregs.fpr_vfp.vfp_regs[regno]);
315 (
char *) &fpregs.fpr_vfp.vfp_fpscr);
321 warning (_(
"unable to store floating-point registers"));
345 size_t len =
sizeof (flag);
347 if (sysctlbyname(
"machdep.fpu_present", &flag, &len, NULL, 0) != 0
352 if (sysctlbyname(
"machdep.neon_present", &flag, &len, NULL, 0) == 0 && flag)
const target_desc * aarch32_read_description()
static void fetch_register(struct regcache *regcache, int regno)
static void store_fp_register(const struct regcache *regcache, int regno)
static void store_fp_regs(const struct regcache *regcache)
static void store_register(const struct regcache *regcache, int regno)
static void fetch_fp_regs(struct regcache *regcache)
static arm_netbsd_nat_target the_arm_netbsd_nat_target
static void store_regs(const struct regcache *regcache)
static void arm_supply_vfpregset(struct regcache *regcache, struct fpreg *fpregset)
void _initialize_arm_netbsd_nat()
static void fetch_fp_register(struct regcache *regcache, int regno)
void arm_nbsd_supply_gregset(const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len)
const target_desc * arm_read_description(arm_fp_type fp_type, bool tls)
const struct target_desc * read_description() override
void fetch_registers(struct regcache *, int) override
void store_registers(struct regcache *, int) override
void raw_collect(int regnum, void *buf) const override
void raw_supply(int regnum, const void *buf) override
#define ptrace(request, pid, addr, data)
CORE_ADDR gdbarch_addr_bits_remove(struct gdbarch *gdbarch, CORE_ADDR addr)
void add_inf_child_target(inf_child_target *target)