diff options
author | John Baldwin <jhb@FreeBSD.org> | 2017-04-18 10:49:44 -0700 |
---|---|---|
committer | John Baldwin <jhb@FreeBSD.org> | 2017-05-23 12:03:16 -0700 |
commit | f7241d4f27cd59357a75bf802e9ffa7d95036deb (patch) | |
tree | 328de3ccead42231fedc31ea6ebcfca5cb42e473 | |
parent | d489d81d0934c4fda8c8aa68fbec1b1315cf8df0 (diff) | |
download | fsf-binutils-gdb-f7241d4f27cd59357a75bf802e9ffa7d95036deb.zip fsf-binutils-gdb-f7241d4f27cd59357a75bf802e9ffa7d95036deb.tar.gz fsf-binutils-gdb-f7241d4f27cd59357a75bf802e9ffa7d95036deb.tar.bz2 |
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.
-rw-r--r-- | gdb/ChangeLog | 10 | ||||
-rw-r--r-- | gdb/mips-fbsd-tdep.c | 29 |
2 files changed, 26 insertions, 13 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index a271021..c8bd6fd 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,15 @@ 2017-05-23 John Baldwin <jhb@FreeBSD.org> + * 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 <jhb@FreeBSD.org> + * mips-fbsd-nat.c (getregs_supplies): Fix upper bound comparison. (getpfpregs_supplies): New function. (mips_fbsd_fetch_inferior_registers): Remove early exit and use diff --git a/gdb/mips-fbsd-tdep.c b/gdb/mips-fbsd-tdep.c index 00fae0e..d5bec3c 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 <machine/reg.h>. 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); } |