Module Name: src Committed By: rin Date: Thu Aug 17 07:16:42 UTC 2023
Modified Files: src/external/gpl3/gdb/dist/gdb: sh-netbsd-nat.c sh-netbsd-tdep.c Log Message: gdb/sh: Fix register definitions, lost during merge To generate a diff of this commit: cvs rdiff -u -r1.1.1.1 -r1.2 src/external/gpl3/gdb/dist/gdb/sh-netbsd-nat.c cvs rdiff -u -r1.3 -r1.4 src/external/gpl3/gdb/dist/gdb/sh-netbsd-tdep.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/external/gpl3/gdb/dist/gdb/sh-netbsd-nat.c diff -u src/external/gpl3/gdb/dist/gdb/sh-netbsd-nat.c:1.1.1.1 src/external/gpl3/gdb/dist/gdb/sh-netbsd-nat.c:1.2 --- src/external/gpl3/gdb/dist/gdb/sh-netbsd-nat.c:1.1.1.1 Sun Jul 30 22:44:54 2023 +++ src/external/gpl3/gdb/dist/gdb/sh-netbsd-nat.c Thu Aug 17 07:16:42 2023 @@ -44,10 +44,10 @@ static sh_nbsd_nat_target the_sh_nbsd_na (((regno) >= R0_REGNUM && (regno) <= (R0_REGNUM + 15)) \ || (regno) == gdbarch_pc_regnum (gdbarch) || (regno) == PR_REGNUM \ || (regno) == MACH_REGNUM || (regno) == MACL_REGNUM \ -|| (regno) == SR_REGNUM) +|| (regno) == SR_REGNUM || (regno) == GBR_REGNUM) /* Sizeof `struct reg' in <machine/reg.h>. */ -#define SHNBSD_SIZEOF_GREGS (21 * 4) +#define SHNBSD_SIZEOF_GREGS (22 * 4) void sh_nbsd_nat_target::fetch_registers (struct regcache *regcache, int regno) Index: src/external/gpl3/gdb/dist/gdb/sh-netbsd-tdep.c diff -u src/external/gpl3/gdb/dist/gdb/sh-netbsd-tdep.c:1.3 src/external/gpl3/gdb/dist/gdb/sh-netbsd-tdep.c:1.4 --- src/external/gpl3/gdb/dist/gdb/sh-netbsd-tdep.c:1.3 Thu Aug 17 07:09:09 2023 +++ src/external/gpl3/gdb/dist/gdb/sh-netbsd-tdep.c Thu Aug 17 07:16:42 2023 @@ -58,9 +58,42 @@ static const struct sh_corefile_regmap r {PR_REGNUM, 2 * 4}, {MACH_REGNUM, 3 * 4}, {MACL_REGNUM, 4 * 4}, + {GBR_REGNUM, 21 * 4}, {-1 /* Terminator. */, 0} }; + + +#define REGSx16(base) \ + {(base), 0}, \ + {(base) + 1, 4}, \ + {(base) + 2, 8}, \ + {(base) + 3, 12}, \ + {(base) + 4, 16}, \ + {(base) + 5, 20}, \ + {(base) + 6, 24}, \ + {(base) + 7, 28}, \ + {(base) + 8, 32}, \ + {(base) + 9, 36}, \ + {(base) + 10, 40}, \ + {(base) + 11, 44}, \ + {(base) + 12, 48}, \ + {(base) + 13, 52}, \ + {(base) + 14, 56}, \ + {(base) + 15, 60} + +/* Convert an FPU register number into an offset into a ptrace + register structure. */ +static const struct sh_corefile_regmap fpregmap[] = +{ + REGSx16 (FR0_REGNUM), + /* XXX: REGSx16(XF0_REGNUM) omitted. */ + {FPSCR_REGNUM, 128}, + {FPUL_REGNUM, 132}, + {-1 /* Terminator. */, 0} +}; + + /* From <machine/mcontext.h>. */ static const int shnbsd_mc_reg_offset[] = { @@ -91,7 +124,7 @@ static const int shnbsd_mc_reg_offset[] /* SH register sets. */ - + static void shnbsd_sigtramp_cache_init (const struct tramp_frame *, frame_info_ptr, @@ -165,7 +198,10 @@ shnbsd_init_abi (struct gdbarch_info inf nbsd_init_abi (info, gdbarch); tdep->core_gregmap = (struct sh_corefile_regmap *)regmap; - tdep->sizeof_gregset = 84; + tdep->sizeof_gregset = 88; + + tdep->core_fpregmap = (struct sh_corefile_regmap *)fpregmap; + tdep->sizeof_fpregset = 0; /* XXX */ set_solib_svr4_fetch_link_map_offsets (gdbarch, svr4_ilp32_fetch_link_map_offsets);