Exemplo n.º 1
0
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;
    }
}
Exemplo n.º 2
0
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);
}
Exemplo n.º 4
0
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);
}
Exemplo n.º 5
0
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);
}
Exemplo n.º 6
0
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);
}