aboutsummaryrefslogtreecommitdiff
path: root/gdb/arm-fbsd-tdep.c
diff options
context:
space:
mode:
authorAlan Hayward <alan.hayward@arm.com>2019-07-19 14:59:10 +0100
committerAlan Hayward <alan.hayward@arm.com>2019-07-19 14:59:10 +0100
commitd105cce5dd8d6a5218b044fc161ce89c6b245432 (patch)
tree1562d65f665cc3e2dc5023d48e24de0a428eb79c /gdb/arm-fbsd-tdep.c
parent231097b03afffd0c5a2b520cd999dbcbe8d64eda (diff)
downloadgdb-d105cce5dd8d6a5218b044fc161ce89c6b245432.zip
gdb-d105cce5dd8d6a5218b044fc161ce89c6b245432.tar.gz
gdb-d105cce5dd8d6a5218b044fc161ce89c6b245432.tar.bz2
Arm: Add read_description read funcs and use in GDB
Switch the Arm target to get target descriptions via arm_read_description and aarch32_read_description, in the same style as other feature targets. Add an enum to specify the different types - this will also be of use to gdbserver in a later patch. Under the hood return the same existing pre-feature target descriptions. gdb/ChangeLog: * Makefile.in: Add new files. * aarch32-tdep.c: New file. * aarch32-tdep.h: New file. * aarch64-linux-nat.c (aarch64_linux_nat_target::read_description): Call aarch32_read_description. * arch/aarch32.c: New file. * arch/aarch32.h: New file. * arch/arm.c (arm_create_target_description) (arm_create_mprofile_target_description): New function. * arch/arm.h (arm_fp_type, arm_m_profile_type): New enum. (arm_create_target_description) (arm_create_mprofile_target_description): New declaration. * arm-fbsd-tdep.c (arm_fbsd_read_description_auxv): Call read_description functions. * arm-linux-nat.c (arm_linux_nat_target::read_description): Likewise. * arm-linux-tdep.c (arm_linux_core_read_description): Likewise. * arm-tdep.c (tdesc_arm_list): New variable. (arm_register_g_packet_guesses): Call create description functions. (arm_read_description) (arm_read_mprofile_description): New function. * arm-tdep.h (arm_read_description) (arm_read_mprofile_description): Add declaration. * configure.tgt: Add new files.
Diffstat (limited to 'gdb/arm-fbsd-tdep.c')
-rw-r--r--gdb/arm-fbsd-tdep.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/gdb/arm-fbsd-tdep.c b/gdb/arm-fbsd-tdep.c
index dea3abb..6e1af9c 100644
--- a/gdb/arm-fbsd-tdep.c
+++ b/gdb/arm-fbsd-tdep.c
@@ -20,6 +20,8 @@
#include "defs.h"
#include "elf/common.h"
+#include "target-descriptions.h"
+#include "aarch32-tdep.h"
#include "arm-tdep.h"
#include "arm-fbsd-tdep.h"
#include "auxv.h"
@@ -178,20 +180,20 @@ arm_fbsd_read_description_auxv (struct target_ops *target)
CORE_ADDR arm_hwcap = 0;
if (target_auxv_search (target, AT_FREEBSD_HWCAP, &arm_hwcap) != 1)
- return NULL;
+ return nullptr;
if (arm_hwcap & HWCAP_VFP)
{
if (arm_hwcap & HWCAP_NEON)
- return tdesc_arm_with_neon;
+ return aarch32_read_description ();
else if ((arm_hwcap & (HWCAP_VFPv3 | HWCAP_VFPD32))
== (HWCAP_VFPv3 | HWCAP_VFPD32))
- return tdesc_arm_with_vfpv3;
+ return arm_read_description (ARM_FP_TYPE_VFPV3);
else
- return tdesc_arm_with_vfpv2;
+ return arm_read_description (ARM_FP_TYPE_VFPV2);
}
- return NULL;
+ return nullptr;
}
/* Implement the "core_read_description" gdbarch method. */