diff options
author | John Baldwin <jhb@FreeBSD.org> | 2022-05-03 16:05:10 -0700 |
---|---|---|
committer | John Baldwin <jhb@FreeBSD.org> | 2022-05-03 16:05:10 -0700 |
commit | 92d48a1e4eac54db11f1a110328672394fce2853 (patch) | |
tree | a2ba5c23c3adda275329a6760f731006c9d8da32 /gdb/arch | |
parent | 40c23d880386d6e8202567eaa2a6b041feb1a652 (diff) | |
download | binutils-92d48a1e4eac54db11f1a110328672394fce2853.zip binutils-92d48a1e4eac54db11f1a110328672394fce2853.tar.gz binutils-92d48a1e4eac54db11f1a110328672394fce2853.tar.bz2 |
Add an arm-tls feature which includes the tpidruro register from CP15.
Diffstat (limited to 'gdb/arch')
-rw-r--r-- | gdb/arch/aarch32.c | 2 | ||||
-rw-r--r-- | gdb/arch/arm.c | 6 | ||||
-rw-r--r-- | gdb/arch/arm.h | 2 |
3 files changed, 8 insertions, 2 deletions
diff --git a/gdb/arch/aarch32.c b/gdb/arch/aarch32.c index 0c544d3..4d6ffb4 100644 --- a/gdb/arch/aarch32.c +++ b/gdb/arch/aarch32.c @@ -19,6 +19,7 @@ #include "aarch32.h" #include "../features/arm/arm-core.c" +#include "../features/arm/arm-tls.c" #include "../features/arm/arm-vfpv3.c" /* See aarch32.h. */ @@ -38,6 +39,7 @@ aarch32_create_target_description () /* Create a vfpv3 feature, then a blank NEON feature. */ regnum = create_feature_arm_arm_vfpv3 (tdesc.get (), regnum); tdesc_create_feature (tdesc.get (), "org.gnu.gdb.arm.neon"); + regnum = create_feature_arm_arm_tls (tdesc.get (), regnum); return tdesc.release (); } diff --git a/gdb/arch/arm.c b/gdb/arch/arm.c index bc6e5ce..14f0a7a 100644 --- a/gdb/arch/arm.c +++ b/gdb/arch/arm.c @@ -22,6 +22,7 @@ #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" @@ -374,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 (); @@ -410,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 (); } diff --git a/gdb/arch/arm.h b/gdb/arch/arm.h index 0728bea..4ad329f 100644 --- a/gdb/arch/arm.h +++ b/gdb/arch/arm.h @@ -207,7 +207,7 @@ unsigned long shifted_reg_val (struct regcache *regcache, /* Create an Arm target description with the given FP hardware type. */ -target_desc *arm_create_target_description (arm_fp_type fp_type); +target_desc *arm_create_target_description (arm_fp_type fp_type, bool tls); /* Create an Arm M-profile target description with the given hardware type. */ |