ports/devel/gdb/patches/patch-gdb_arm-bsd-tdep_c

39 lines
1.2 KiB
Text

Index: gdb/arm-bsd-tdep.c
--- gdb/arm-bsd-tdep.c.orig
+++ gdb/arm-bsd-tdep.c
@@ -30,15 +30,12 @@
#define ARMBSD_SIZEOF_GREGS (17 * 4)
/* Sizeof `struct fpreg' in <machine/reg.h. */
-#define ARMBSD_SIZEOF_FPREGS ((1 + (8 * 3)) * 4)
+#define ARMBSD_SIZEOF_FPREGS (32 * 8 + 4 + 4)
static int
armbsd_fpreg_offset (int regnum)
{
- if (regnum == ARM_FPS_REGNUM)
- return 0;
-
- return 4 + (regnum - ARM_F0_REGNUM) * 12;
+ return (regnum - ARM_D0_REGNUM) * 8;
}
/* Supply register REGNUM from the buffer specified by FPREGS and LEN
@@ -55,7 +52,7 @@ armbsd_supply_fpregset (const struct regset *regset,
gdb_assert (len >= ARMBSD_SIZEOF_FPREGS);
- for (i = ARM_F0_REGNUM; i <= ARM_FPS_REGNUM; i++)
+ for (i = ARM_D0_REGNUM; i <= ARM_FPSCR_REGNUM; i++)
{
if (regnum == i || regnum == -1)
regcache->raw_supply (i, regs + armbsd_fpreg_offset (i));
@@ -83,7 +80,7 @@ armbsd_supply_gregset (const struct regset *regset,
}
if (regnum == ARM_PS_REGNUM || regnum == -1)
- regcache->raw_supply (i, regs + 16 * 4);
+ regcache->raw_supply (ARM_PS_REGNUM, regs + 16 * 4);
if (len >= ARMBSD_SIZEOF_GREGS + ARMBSD_SIZEOF_FPREGS)
{