diff options
author | Yao Qi <yao@codesourcery.com> | 2010-12-20 06:19:05 +0000 |
---|---|---|
committer | Yao Qi <yao@codesourcery.com> | 2010-12-20 06:19:05 +0000 |
commit | 544838827cd5c8da5c67c1617a50ae08ec7661ff (patch) | |
tree | fc9e0536cfbe604d712506e89e3c8f369775db5d /gdb/arm-tdep.c | |
parent | 7d8cb6628195812390787f33162a677f13272dec (diff) | |
download | gdb-544838827cd5c8da5c67c1617a50ae08ec7661ff.zip gdb-544838827cd5c8da5c67c1617a50ae08ec7661ff.tar.gz gdb-544838827cd5c8da5c67c1617a50ae08ec7661ff.tar.bz2 |
2010-12-20 Yao Qi <yao@codesourcery.com>
* arm-tdep.c (arm_register_reggroup_p): New.
(arm_gdbarch_init): Set arm_register_reggroup_p for hook
register_reggroup_p.
Diffstat (limited to 'gdb/arm-tdep.c')
-rw-r--r-- | gdb/arm-tdep.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c index 636c1de..0f38b6b 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" @@ -6998,6 +6999,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 @@ -7462,6 +7474,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. */ |