Module Name: src Committed By: rin Date: Thu Aug 17 04:54:59 UTC 2023
Modified Files: src/external/gpl3/gdb/dist/gdb: arm-netbsd-nat.c Log Message: gdb/arm: Handle discontinous range of GPR number, lost during merge Add comment for future references. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/external/gpl3/gdb/dist/gdb/arm-netbsd-nat.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/arm-netbsd-nat.c diff -u src/external/gpl3/gdb/dist/gdb/arm-netbsd-nat.c:1.4 src/external/gpl3/gdb/dist/gdb/arm-netbsd-nat.c:1.5 --- src/external/gpl3/gdb/dist/gdb/arm-netbsd-nat.c:1.4 Thu Aug 17 04:52:38 2023 +++ src/external/gpl3/gdb/dist/gdb/arm-netbsd-nat.c Thu Aug 17 04:54:58 2023 @@ -38,6 +38,24 @@ #include "netbsd-nat.h" #include "bsd-kvm.h" +/* Determine if PT_GETREGS fetches REGNUM. */ + +static bool +getregs_supplies (int regnum) +{ + return ((regnum >= ARM_A1_REGNUM && regnum <= ARM_PC_REGNUM) + || regnum == ARM_PS_REGNUM); +} + +/* Determine if PT_GETFPREGS fetches REGNUM. */ + +static bool +getfpregs_supplies (int regnum) +{ + return ((regnum >= ARM_D0_REGNUM && regnum <= ARM_D31_REGNUM) + || regnum == ARM_FPSCR_REGNUM); +} + class arm_netbsd_nat_target final : public nbsd_nat_target { public: @@ -183,10 +201,15 @@ arm_netbsd_nat_target::fetch_registers ( { if (regno >= 0) { - if (regno < ARM_F0_REGNUM || regno > ARM_FPS_REGNUM) + /* Handle discontinuous range for general purpose registers. + For floating-point registers, it happens to be continuous, + but use specific static function for clarity. */ + if (getregs_supplies (regno)) fetch_register (regcache, regno); - else + else if (getfpregs_supplies (regno)) fetch_fp_register (regcache, regno); + else + warning (_("unable to fetch register %d"), regno); } else {