void alphabsd_supply_fpreg (struct regcache *regcache, const char *fpregs, int regno) { /* FPCR is at slot 33; slot 32 unused. */ alpha_supply_fp_regs (regcache, regno, fpregs, fpregs + 32 * 8); }
static void fetch_elf_core_registers (char *core_reg_sect, unsigned core_reg_size, int which, CORE_ADDR reg_addr) { if (core_reg_size < 32 * 8) { error ("Core file register section too small (%u bytes).", core_reg_size); return; } switch (which) { case 0: /* integer registers */ /* PC is in slot 32; UNIQUE is in slot 33, if present. */ alpha_supply_int_regs (-1, core_reg_sect, core_reg_sect + 31*8, (core_reg_size >= 33 * 8 ? core_reg_sect + 32*8 : NULL)); break; case 2: /* floating-point registers */ /* FPCR is in slot 32. */ alpha_supply_fp_regs (-1, core_reg_sect, core_reg_sect + 31*8); break; default: break; } }
void supply_fpregset (gdb_fpregset_t *fpregsetp) { long *regp = ALPHA_REGSET_BASE (fpregsetp); /* FPCR is in slot 32. */ alpha_supply_fp_regs (-1, regp, regp + 31); }
void supply_fpregset (struct regcache *regcache, const gdb_fpregset_t *fpregsetp) { const long *regp = fpregsetp->regs; /* FPCR is in slot 32. */ alpha_supply_fp_regs (regcache, -1, regp, regp + 31); }
static void alpha_linux_supply_fpregset (const struct regset *regset, struct regcache *regcache, int regnum, const void *fpregs, size_t len) { const gdb_byte *regs = fpregs; gdb_assert (len >= 32 * 8); alpha_supply_fp_regs (regcache, regnum, regs, regs + 31 * 8); }