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_gregset (struct regcache *regcache, const gdb_gregset_t *gregsetp) { const long *regp = gregsetp->regs; /* PC is in slot 32. */ alpha_supply_int_regs (regcache, -1, regp, regp + 31, NULL); }
void supply_gregset (struct regcache *regcache, const gdb_gregset_t *gregsetp) { const long *regp = (const long *)gregsetp; /* PC is in slot 32, UNIQUE is in slot 33. */ alpha_supply_int_regs (regcache, -1, regp, regp + 31, regp + 32); }
void supply_gregset (gdb_gregset_t *gregsetp) { long *regp = ALPHA_REGSET_BASE (gregsetp); void *unique = ALPHA_REGSET_UNIQUE (gregsetp); /* PC is in slot 32. */ alpha_supply_int_regs (-1, regp, regp + 31, unique); }
static void alpha_linux_supply_gregset (const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len) { const gdb_byte *regs = gregs; gdb_assert (len >= 32 * 8); alpha_supply_int_regs (regcache, regnum, regs, regs + 31 * 8, len >= 33 * 8 ? regs + 32 * 8 : NULL); }
void alphabsd_supply_reg (struct regcache *regcache, const char *regs, int regno) { /* PC is at slot 32; UNIQUE not present. */ alpha_supply_int_regs (regcache, regno, regs, regs + 31 * 8, NULL); }