/* Common target dependent code for GDB on ARM systems.
- Copyright (C) 2002-2019 Free Software Foundation, Inc.
+ Copyright (C) 2002-2020 Free Software Foundation, Inc.
This file is part of GDB.
#define ARM_TDEP_H
/* Forward declarations. */
-struct gdbarch;
struct regset;
struct address_space;
struct get_next_pcs;
struct arm_get_next_pcs;
struct gdb_get_next_pcs;
+/* Set to true if the 32-bit mode is in use. */
+
+extern bool arm_apcs_32;
+
+#include "gdbarch.h"
#include "arch/arm.h"
#include "infrun.h"
#include <vector>
-/* Say how long FP registers are. Used for documentation purposes and
- code readability in this header. IEEE extended doubles are 80
- bits. DWORD aligned they use 96 bits. */
-#define FP_REGISTER_SIZE 12
-
-/* Say how long VFP double precision registers are. Used for documentation
- purposes and code readability. These are fixed at 64 bits. */
-#define VFP_REGISTER_SIZE 8
-
/* Number of machine registers. The only define actually required
is gdbarch_num_regs. The other definitions are used for documentation
purposes and code readability. */
void *cb_data,
const struct regcache *regcache);
-/* Target descriptions. */
-extern struct target_desc *tdesc_arm_with_m;
-extern struct target_desc *tdesc_arm_with_iwmmxt;
-extern struct target_desc *tdesc_arm_with_vfpv2;
-extern struct target_desc *tdesc_arm_with_vfpv3;
-extern struct target_desc *tdesc_arm_with_neon;
+/* Get the correct Arm target description with given FP hardware type. */
+const target_desc *arm_read_description (arm_fp_type fp_type);
+
+/* Get the correct Arm M-Profile target description with given hardware
+ type. */
+const target_desc *arm_read_mprofile_description (arm_m_profile_type m_type);
#endif /* arm-tdep.h */