summaryrefslogtreecommitdiff
path: root/gdb/arch/arm.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/arch/arm.c')
-rw-r--r--gdb/arch/arm.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/gdb/arch/arm.c b/gdb/arch/arm.c
index 126e46a950a..14f0a7a7f6c 100644
--- a/gdb/arch/arm.c
+++ b/gdb/arch/arm.c
@@ -22,12 +22,14 @@
#include "arm.h"
#include "../features/arm/arm-core.c"
+#include "../features/arm/arm-tls.c"
#include "../features/arm/arm-vfpv2.c"
#include "../features/arm/arm-vfpv3.c"
#include "../features/arm/xscale-iwmmxt.c"
#include "../features/arm/arm-m-profile.c"
#include "../features/arm/arm-m-profile-with-fpa.c"
#include "../features/arm/arm-m-profile-mve.c"
+#include "../features/arm/arm-m-system.c"
/* See arm.h. */
@@ -373,7 +375,7 @@ shifted_reg_val (struct regcache *regcache, unsigned long inst,
/* See arch/arm.h. */
target_desc *
-arm_create_target_description (arm_fp_type fp_type)
+arm_create_target_description (arm_fp_type fp_type, bool tls)
{
target_desc_up tdesc = allocate_target_description ();
@@ -409,6 +411,9 @@ arm_create_target_description (arm_fp_type fp_type)
error (_("Invalid Arm FP type: %d"), fp_type);
}
+ if (tls)
+ regnum = create_feature_arm_arm_tls (tdesc.get (), regnum);
+
return tdesc.release ();
}
@@ -446,6 +451,11 @@ arm_create_mprofile_target_description (arm_m_profile_type m_type)
regnum = create_feature_arm_arm_m_profile_mve (tdesc, regnum);
break;
+ case ARM_M_TYPE_SYSTEM:
+ regnum = create_feature_arm_arm_m_profile (tdesc, regnum);
+ regnum = create_feature_arm_arm_m_system (tdesc, regnum);
+ break;
+
default:
error (_("Invalid Arm M type: %d"), m_type);
}