/* 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.
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"
enum arm_float_model fp_model; /* Floating point calling conventions. */
- int have_fpa_registers; /* Does the target report the FPA registers? */
- int have_wmmx_registers; /* Does the target report the WMMX registers? */
+ bool have_fpa_registers; /* Does the target report the FPA registers? */
+ bool have_wmmx_registers; /* Does the target report the WMMX registers? */
/* The number of VFP registers reported by the target. It is zero
if VFP registers are not supported. */
int vfp_register_count;
- int have_vfp_pseudos; /* Are we synthesizing the single precision
+ bool have_vfp_pseudos; /* Are we synthesizing the single precision
VFP registers? */
- int have_neon_pseudos; /* Are we synthesizing the quad precision
+ bool have_neon_pseudos; /* Are we synthesizing the quad precision
NEON registers? Requires
have_vfp_pseudos. */
- int have_neon; /* Do we have a NEON unit? */
+ bool have_neon; /* Do we have a NEON unit? */
- int is_m; /* Does the target follow the "M" profile. */
+ bool is_m; /* Does the target follow the "M" profile. */
CORE_ADDR lowest_pc; /* Lowest address at which instructions
will appear. */
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 */