void mips64_supply_gregset (struct regcache *regcache, const mips64_elf_gregset_t *gregsetp) { int regi; const mips64_elf_greg_t *regp = *gregsetp; gdb_byte zerobuf[MAX_REGISTER_SIZE]; struct gdbarch *gdbarch = get_regcache_arch (regcache); memset (zerobuf, 0, MAX_REGISTER_SIZE); for (regi = MIPS64_EF_REG0 + 1; regi <= MIPS64_EF_REG31; regi++) supply_64bit_reg (regcache, regi - MIPS64_EF_REG0, (const gdb_byte *)(regp + regi)); if (mips_linux_restart_reg_p (gdbarch)) supply_64bit_reg (regcache, MIPS_RESTART_REGNUM, (const gdb_byte *)(regp + MIPS64_EF_REG0)); supply_64bit_reg (regcache, mips_regnum (gdbarch)->lo, (const gdb_byte *) (regp + MIPS64_EF_LO)); supply_64bit_reg (regcache, mips_regnum (gdbarch)->hi, (const gdb_byte *) (regp + MIPS64_EF_HI)); supply_64bit_reg (regcache, mips_regnum (gdbarch)->pc, (const gdb_byte *) (regp + MIPS64_EF_CP0_EPC)); supply_64bit_reg (regcache, mips_regnum (gdbarch)->badvaddr, (const gdb_byte *) (regp + MIPS64_EF_CP0_BADVADDR)); supply_64bit_reg (regcache, MIPS_PS_REGNUM, (const gdb_byte *) (regp + MIPS64_EF_CP0_STATUS)); supply_64bit_reg (regcache, mips_regnum (gdbarch)->cause, (const gdb_byte *) (regp + MIPS64_EF_CP0_CAUSE)); }
void aarch64_linux_supply_gregset (struct regcache *regcache, const gdb_byte *gregs_buf) { int regno; for (regno = AARCH64_X0_REGNUM; regno <= AARCH64_CPSR_REGNUM; regno++) supply_64bit_reg (regcache, regno, gregs_buf + X_REGISTER_SIZE * (regno - AARCH64_X0_REGNUM)); }
void mips64_supply_gregset (struct regcache *regcache, const mips64_elf_gregset_t *gregsetp) { int regi; const mips64_elf_greg_t *regp = *gregsetp; gdb_byte zerobuf[MAX_REGISTER_SIZE]; memset (zerobuf, 0, MAX_REGISTER_SIZE); for (regi = MIPS64_EF_REG0 + 1; regi <= MIPS64_EF_REG31; regi++) supply_64bit_reg (regcache, regi - MIPS64_EF_REG0, (const gdb_byte *)(regp + regi)); if (mips_linux_restart_reg_p (current_gdbarch)) supply_64bit_reg (regcache, MIPS_RESTART_REGNUM, (const gdb_byte *)(regp + MIPS64_EF_REG0)); supply_64bit_reg (regcache, mips_regnum (current_gdbarch)->lo, (const gdb_byte *) (regp + MIPS64_EF_LO)); supply_64bit_reg (regcache, mips_regnum (current_gdbarch)->hi, (const gdb_byte *) (regp + MIPS64_EF_HI)); supply_64bit_reg (regcache, mips_regnum (current_gdbarch)->pc, (const gdb_byte *) (regp + MIPS64_EF_CP0_EPC)); supply_64bit_reg (regcache, mips_regnum (current_gdbarch)->badvaddr, (const gdb_byte *) (regp + MIPS64_EF_CP0_BADVADDR)); supply_64bit_reg (regcache, MIPS_PS_REGNUM, (const gdb_byte *) (regp + MIPS64_EF_CP0_STATUS)); supply_64bit_reg (regcache, mips_regnum (current_gdbarch)->cause, (const gdb_byte *) (regp + MIPS64_EF_CP0_CAUSE)); /* Fill inaccessible registers with zero. */ regcache_raw_supply (regcache, MIPS_ZERO_REGNUM, zerobuf); regcache_raw_supply (regcache, MIPS_UNUSED_REGNUM, zerobuf); for (regi = MIPS_FIRST_EMBED_REGNUM; regi <= MIPS_LAST_EMBED_REGNUM; regi++) regcache_raw_supply (regcache, regi, zerobuf); }