static void mipsnbsd_supply_gregset (const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len) { size_t regsize = mips_isa_regsize (get_regcache_arch (regcache)); char zerobuf[MAX_REGISTER_SIZE]; const char *regs = gregs; int i; memset (zerobuf, 0, MAX_REGISTER_SIZE); gdb_assert (len >= MIPSNBSD_NUM_GREGS * regsize); for (i = 0; i <= MIPS_PC_REGNUM; i++) { if (regnum == i || regnum == -1) { if (i == MIPS_ZERO_REGNUM || i == MIPS_UNUSED_REGNUM) regcache_raw_supply (regcache, i, zerobuf); else regcache_raw_supply (regcache, i, regs + i * regsize); } } if (len >= (MIPSNBSD_NUM_GREGS + MIPSNBSD_NUM_FPREGS) * regsize) { regs += MIPSNBSD_NUM_GREGS * regsize; len -= MIPSNBSD_NUM_GREGS * regsize; mipsnbsd_supply_fpregset (regset, regcache, regnum, regs, len); } }
static void mipsnbsd_supply_gregset (const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len) { size_t regsize = mips_isa_regsize (get_regcache_arch (regcache)); const char *regs = gregs; int i; gdb_assert (len >= MIPSNBSD_NUM_GREGS * regsize); for (i = 0; i <= MIPS_PC_REGNUM; i++) { if (regnum == i || regnum == -1) regcache_raw_supply (regcache, i, regs + i * regsize); } if (len >= (MIPSNBSD_NUM_GREGS + MIPSNBSD_NUM_FPREGS) * regsize) { regs += MIPSNBSD_NUM_GREGS * regsize; len -= MIPSNBSD_NUM_GREGS * regsize; mipsnbsd_supply_fpregset (regset, regcache, regnum, regs, len); } }