From: John Baldwin Date: Tue, 18 Apr 2017 17:49:44 +0000 (-0700) Subject: Use mips_regnum instead of constants for FreeBSD/mips register operations. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f7241d4f27cd59357a75bf802e9ffa7d95036deb;p=binutils-gdb.git Use mips_regnum instead of constants for FreeBSD/mips register operations. gdb/ChangeLog: * mips-fbsd-tdep.c (MIPS_PC_REGNUM): Remove. (MIPS_FP0_REGNUM): Remove. (MIPS_FSR_REGNUM): Remove. (mips_fbsd_supply_fpregs): Use mips_regnum. (mips_fbsd_supply_gregs): Likewise. (mips_fbsd_collect_fpregs): Likewise. (mips_fbsd_collect_gregs): Likewise. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index a271021a5dc..c8bd6fd783e 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,13 @@ +2017-05-23 John Baldwin + + * mips-fbsd-tdep.c (MIPS_PC_REGNUM): Remove. + (MIPS_FP0_REGNUM): Remove. + (MIPS_FSR_REGNUM): Remove. + (mips_fbsd_supply_fpregs): Use mips_regnum. + (mips_fbsd_supply_gregs): Likewise. + (mips_fbsd_collect_fpregs): Likewise. + (mips_fbsd_collect_gregs): Likewise. + 2017-05-23 John Baldwin * mips-fbsd-nat.c (getregs_supplies): Fix upper bound comparison. diff --git a/gdb/mips-fbsd-tdep.c b/gdb/mips-fbsd-tdep.c index 00fae0ec60d..d5bec3c1571 100644 --- a/gdb/mips-fbsd-tdep.c +++ b/gdb/mips-fbsd-tdep.c @@ -29,11 +29,6 @@ #include "solib-svr4.h" -/* Shorthand for some register numbers used below. */ -#define MIPS_PC_REGNUM MIPS_EMBED_PC_REGNUM -#define MIPS_FP0_REGNUM MIPS_EMBED_FP0_REGNUM -#define MIPS_FSR_REGNUM MIPS_EMBED_FP0_REGNUM + 32 - /* Core file support. */ /* Number of registers in `struct reg' from . The @@ -108,13 +103,16 @@ void mips_fbsd_supply_fpregs (struct regcache *regcache, int regnum, const void *fpregs, size_t regsize) { + struct gdbarch *gdbarch = get_regcache_arch (regcache); const gdb_byte *regs = (const gdb_byte *) fpregs; - int i; + int i, fp0num, fsrnum; - for (i = MIPS_FP0_REGNUM; i <= MIPS_FSR_REGNUM; i++) + fp0num = mips_regnum (gdbarch)->fp0; + fsrnum = mips_regnum (gdbarch)->fp_control_status; + for (i = fp0num; i <= fsrnum; i++) if (regnum == i || regnum == -1) mips_fbsd_supply_reg (regcache, i, - regs + (i - MIPS_FP0_REGNUM) * regsize, regsize); + regs + (i - fp0num) * regsize, regsize); } /* Supply the general-purpose registers stored in GREGS to REGCACHE. @@ -125,10 +123,11 @@ void mips_fbsd_supply_gregs (struct regcache *regcache, int regnum, const void *gregs, size_t regsize) { + struct gdbarch *gdbarch = get_regcache_arch (regcache); const gdb_byte *regs = (const gdb_byte *) gregs; int i; - for (i = 0; i <= MIPS_PC_REGNUM; i++) + for (i = 0; i <= mips_regnum (gdbarch)->pc; i++) if (regnum == i || regnum == -1) mips_fbsd_supply_reg (regcache, i, regs + i * regsize, regsize); } @@ -141,13 +140,16 @@ void mips_fbsd_collect_fpregs (const struct regcache *regcache, int regnum, void *fpregs, size_t regsize) { + struct gdbarch *gdbarch = get_regcache_arch (regcache); gdb_byte *regs = (gdb_byte *) fpregs; - int i; + int i, fp0num, fsrnum; - for (i = MIPS_FP0_REGNUM; i <= MIPS_FSR_REGNUM; i++) + fp0num = mips_regnum (gdbarch)->fp0; + fsrnum = mips_regnum (gdbarch)->fp_control_status; + for (i = fp0num; i <= fsrnum; i++) if (regnum == i || regnum == -1) mips_fbsd_collect_reg (regcache, i, - regs + (i - MIPS_FP0_REGNUM) * regsize, regsize); + regs + (i - fp0num) * regsize, regsize); } /* Collect the general-purpose registers from REGCACHE and store them @@ -158,10 +160,11 @@ void mips_fbsd_collect_gregs (const struct regcache *regcache, int regnum, void *gregs, size_t regsize) { + struct gdbarch *gdbarch = get_regcache_arch (regcache); gdb_byte *regs = (gdb_byte *) gregs; int i; - for (i = 0; i <= MIPS_PC_REGNUM; i++) + for (i = 0; i <= mips_regnum (gdbarch)->pc; i++) if (regnum == i || regnum == -1) mips_fbsd_collect_reg (regcache, i, regs + i * regsize, regsize); }