diff options
Diffstat (limited to 'gdb/mips-netbsd-tdep.c')
-rw-r--r-- | gdb/mips-netbsd-tdep.c | 92 |
1 files changed, 39 insertions, 53 deletions
diff --git a/gdb/mips-netbsd-tdep.c b/gdb/mips-netbsd-tdep.c index 500869844bc..5eb2baea055 100644 --- a/gdb/mips-netbsd-tdep.c +++ b/gdb/mips-netbsd-tdep.c @@ -34,17 +34,17 @@ #include "solib-svr4.h" /* Shorthand for some register numbers used below. */ -#define MIPS_PC_REGNUM MIPS_EMBED_PC_REGNUM +#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>. */ -#define MIPSNBSD_NUM_GREGS 38 +#define MIPSNBSD_NUM_GREGS 38 /* Number of registers in `struct fpreg' from <machine/reg.h>. */ -#define MIPSNBSD_NUM_FPREGS 33 +#define MIPSNBSD_NUM_FPREGS 33 /* Supply register REGNUM from the buffer specified by FPREGS and LEN in the floating-point register set REGSET to register cache @@ -52,8 +52,8 @@ static void mipsnbsd_supply_fpregset (const struct regset *regset, - struct regcache *regcache, - int regnum, const void *fpregs, size_t len) + struct regcache *regcache, int regnum, + const void *fpregs, size_t len) { size_t regsize = mips_isa_regsize (regcache->arch ()); const char *regs = (const char *) fpregs; @@ -99,19 +99,11 @@ mipsnbsd_supply_gregset (const struct regset *regset, /* NetBSD/mips register sets. */ -static const struct regset mipsnbsd_gregset = -{ - NULL, - mipsnbsd_supply_gregset, - NULL, - REGSET_VARIABLE_SIZE -}; +static const struct regset mipsnbsd_gregset + = { NULL, mipsnbsd_supply_gregset, NULL, REGSET_VARIABLE_SIZE }; -static const struct regset mipsnbsd_fpregset = -{ - NULL, - mipsnbsd_supply_fpregset -}; +static const struct regset mipsnbsd_fpregset + = { NULL, mipsnbsd_supply_fpregset }; /* Iterate over core file register note sections. */ @@ -128,7 +120,6 @@ mipsnbsd_iterate_over_regset_sections (struct gdbarch *gdbarch, cb (".reg2", MIPSNBSD_NUM_FPREGS * regsize, MIPSNBSD_NUM_FPREGS * regsize, &mipsnbsd_fpregset, NULL, cb_data); } - /* Conveniently, GDB uses the same register numbering as the ptrace register structure used by NetBSD/mips. */ @@ -146,8 +137,7 @@ mipsnbsd_supply_reg (struct regcache *regcache, const char *regs, int regno) if (gdbarch_cannot_fetch_register (gdbarch, i)) regcache->raw_supply (i, NULL); else - regcache->raw_supply - (i, regs + (i * mips_isa_regsize (gdbarch))); + regcache->raw_supply (i, regs + (i * mips_isa_regsize (gdbarch))); } } } @@ -160,30 +150,28 @@ mipsnbsd_fill_reg (const struct regcache *regcache, char *regs, int regno) for (i = 0; i <= gdbarch_pc_regnum (gdbarch); i++) if ((regno == i || regno == -1) - && ! gdbarch_cannot_store_register (gdbarch, i)) + && !gdbarch_cannot_store_register (gdbarch, i)) regcache->raw_collect (i, regs + (i * mips_isa_regsize (gdbarch))); } void -mipsnbsd_supply_fpreg (struct regcache *regcache, - const char *fpregs, int regno) +mipsnbsd_supply_fpreg (struct regcache *regcache, const char *fpregs, + int regno) { struct gdbarch *gdbarch = regcache->arch (); int i; for (i = gdbarch_fp0_regnum (gdbarch); - i <= mips_regnum (gdbarch)->fp_implementation_revision; - i++) + i <= mips_regnum (gdbarch)->fp_implementation_revision; i++) { if (regno == i || regno == -1) { if (gdbarch_cannot_fetch_register (gdbarch, i)) regcache->raw_supply (i, NULL); else - regcache->raw_supply (i, - fpregs - + ((i - gdbarch_fp0_regnum (gdbarch)) - * mips_isa_regsize (gdbarch))); + regcache->raw_supply (i, fpregs + + ((i - gdbarch_fp0_regnum (gdbarch)) + * mips_isa_regsize (gdbarch))); } } } @@ -195,13 +183,12 @@ mipsnbsd_fill_fpreg (const struct regcache *regcache, char *fpregs, int regno) int i; for (i = gdbarch_fp0_regnum (gdbarch); - i <= mips_regnum (gdbarch)->fp_control_status; - i++) - if ((regno == i || regno == -1) - && ! gdbarch_cannot_store_register (gdbarch, i)) - regcache->raw_collect - (i, (fpregs + ((i - gdbarch_fp0_regnum (gdbarch)) - * mips_isa_regsize (gdbarch)))); + i <= mips_regnum (gdbarch)->fp_control_status; i++) + if ((regno == i || regno == -1) + && !gdbarch_cannot_store_register (gdbarch, i)) + regcache->raw_collect (i, (fpregs + + ((i - gdbarch_fp0_regnum (gdbarch)) + * mips_isa_regsize (gdbarch)))); } #if 0 @@ -222,8 +209,8 @@ mipsnbsd_fill_fpreg (const struct regcache *regcache, char *fpregs, int regno) signal trampoline. If not, -1 is returned, otherwise the offset from the start of the return sequence is returned. */ -#define RETCODE_NWORDS 3 -#define RETCODE_SIZE (RETCODE_NWORDS * 4) +#define RETCODE_NWORDS 3 +#define RETCODE_SIZE (RETCODE_NWORDS * 4) static const unsigned char sigtramp_retcode_mipsel[RETCODE_SIZE] = { @@ -248,10 +235,10 @@ static const unsigned char sigtramp_retcode_mipseb[RETCODE_SIZE] = at. The PC is copied into *pc. This routine returns true on success. */ -#define NBSD_MIPS_JB_PC (2 * 4) -#define NBSD_MIPS_JB_ELEMENT_SIZE(gdbarch) mips_isa_regsize (gdbarch) -#define NBSD_MIPS_JB_OFFSET(gdbarch) (NBSD_MIPS_JB_PC * \ - NBSD_MIPS_JB_ELEMENT_SIZE (gdbarch)) +#define NBSD_MIPS_JB_PC (2 * 4) +#define NBSD_MIPS_JB_ELEMENT_SIZE(gdbarch) mips_isa_regsize (gdbarch) +#define NBSD_MIPS_JB_OFFSET(gdbarch) \ + (NBSD_MIPS_JB_PC * NBSD_MIPS_JB_ELEMENT_SIZE (gdbarch)) static int mipsnbsd_get_longjmp_target (frame_info_ptr frame, CORE_ADDR *pc) @@ -299,7 +286,7 @@ mipsnbsd_ilp32_fetch_link_map_offsets (void) static struct link_map_offsets lmo; static struct link_map_offsets *lmp = NULL; - if (lmp == NULL) + if (lmp == NULL) { lmp = &lmo; @@ -342,7 +329,7 @@ mipsnbsd_lp64_fetch_link_map_offsets (void) /* Everything we need is in the first 40 bytes. */ lmo.link_map_size = 48; lmo.l_addr_offset = 0; - lmo.l_name_offset = 16; + lmo.l_name_offset = 16; lmo.l_ld_offset = 24; lmo.l_next_offset = 32; lmo.l_prev_offset = 40; @@ -350,16 +337,14 @@ mipsnbsd_lp64_fetch_link_map_offsets (void) return lmp; } - static void -mipsnbsd_init_abi (struct gdbarch_info info, - struct gdbarch *gdbarch) +mipsnbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) { nbsd_init_abi (info, gdbarch); - set_gdbarch_iterate_over_regset_sections - (gdbarch, mipsnbsd_iterate_over_regset_sections); + set_gdbarch_iterate_over_regset_sections ( + gdbarch, mipsnbsd_iterate_over_regset_sections); set_gdbarch_get_longjmp_target (gdbarch, mipsnbsd_get_longjmp_target); @@ -369,13 +354,14 @@ mipsnbsd_init_abi (struct gdbarch_info info, set_gdbarch_software_single_step (gdbarch, mips_software_single_step); /* NetBSD/mips has SVR4-style shared libraries. */ - set_solib_svr4_fetch_link_map_offsets - (gdbarch, (gdbarch_ptr_bit (gdbarch) == 32 ? - mipsnbsd_ilp32_fetch_link_map_offsets : - mipsnbsd_lp64_fetch_link_map_offsets)); + set_solib_svr4_fetch_link_map_offsets ( + gdbarch, + (gdbarch_ptr_bit (gdbarch) == 32 ? mipsnbsd_ilp32_fetch_link_map_offsets + : mipsnbsd_lp64_fetch_link_map_offsets)); } void _initialize_mipsnbsd_tdep (); + void _initialize_mipsnbsd_tdep () { |