gdb/ * arm-tdep.c (arm_register_reggroup_p): New. (arm_gdbarch_init): Set arm_register_reggroup_p for hook register_reggroup_p. diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c index 678d44c..21ad876 100644 --- a/gdb/arm-tdep.c +++ b/gdb/arm-tdep.c @@ -29,6 +29,7 @@ #include "gdb_string.h" #include "dis-asm.h" /* For register styles. */ #include "regcache.h" +#include "reggroups.h" #include "doublest.h" #include "value.h" #include "arch-utils.h" @@ -7191,6 +7192,17 @@ arm_elf_osabi_sniffer (bfd *abfd) return osabi; } +static int +arm_register_reggroup_p (struct gdbarch *gdbarch, int regnum, + struct reggroup *group) +{ + /* FPS register's type is INT, but belongs to float_group. */ + if (regnum == ARM_FPS_REGNUM) + return (group == float_reggroup); + else + return default_register_reggroup_p (gdbarch, regnum, group); +} + /* Initialize the current architecture based on INFO. If possible, re-use an architecture from ARCHES, which is a list of @@ -7655,6 +7667,7 @@ arm_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_pc_regnum (gdbarch, ARM_PC_REGNUM); set_gdbarch_num_regs (gdbarch, ARM_NUM_REGS); set_gdbarch_register_type (gdbarch, arm_register_type); + set_gdbarch_register_reggroup_p (gdbarch, arm_register_reggroup_p); /* This "info float" is FPA-specific. Use the generic version if we do not have FPA. */