diff options
author | Luis Machado <luis.machado@linaro.org> | 2020-06-15 13:52:27 -0300 |
---|---|---|
committer | Luis Machado <luis.machado@linaro.org> | 2021-03-24 14:52:08 -0300 |
commit | c1bd443b4d86e12f2a97856270e40df24c7f3df7 (patch) | |
tree | 9aae2ce3110607d8710532a75ff12c529f1cd78d /gdb/features | |
parent | 0424512519142571509c67e83cd9dc2ed51d2dec (diff) | |
download | gdb-c1bd443b4d86e12f2a97856270e40df24c7f3df7.zip gdb-c1bd443b4d86e12f2a97856270e40df24c7f3df7.tar.gz gdb-c1bd443b4d86e12f2a97856270e40df24c7f3df7.tar.bz2 |
AArch64: Add target description/feature for MTE registers
This patch adds a target description and feature "mte" for aarch64.
It includes one new register, tag_ctl, that can be used to configure the
tag generation rules and sync/async modes. It is 64-bit in size.
The patch also adjusts the code that creates the target descriptions at
runtime based on CPU feature checks.
gdb/ChangeLog:
2021-03-24 Luis Machado <luis.machado@linaro.org>
* aarch64-linux-nat.c
(aarch64_linux_nat_target::read_description): Take MTE flag into
account.
Slight refactor to hwcap flag checking.
* aarch64-linux-tdep.c
(aarch64_linux_core_read_description): Likewise.
* aarch64-tdep.c (tdesc_aarch64_list): Add one more dimension for
MTE.
(aarch64_read_description): Add mte_p parameter and update to use it.
Update the documentation.
(aarch64_gdbarch_init): Update call to aarch64_read_description.
* aarch64-tdep.h (aarch64_read_description): Add mte_p parameter.
* arch/aarch64.c: Include ../features/aarch64-mte.c.
(aarch64_create_target_description): Add mte_p parameter and update
the code to use it.
* arch/aarch64.h (aarch64_create_target_description): Add mte_p
parameter.
* features/Makefile (FEATURE_XMLFILES): Add aarch64-mte.xml.
* features/aarch64-mte.c: New file, generated.
* features/aarch64-mte.xml: New file.
gdbserver/ChangeLog:
2021-03-24 Luis Machado <luis.machado@linaro.org>
* linux-aarch64-ipa.cc (get_ipa_tdesc): Update call to
aarch64_linux_read_description.
(initialize_low_tracepoint): Likewise.
* linux-aarch64-low.cc (aarch64_target::low_arch_setup): Take MTE flag
into account.
* linux-aarch64-tdesc.cc (tdesc_aarch64_list): Add one more dimension
for MTE.
(aarch64_linux_read_description): Add mte_p parameter and update to
use it.
* linux-aarch64-tdesc.h (aarch64_linux_read_description): Add mte_p
parameter.
Diffstat (limited to 'gdb/features')
-rw-r--r-- | gdb/features/Makefile | 1 | ||||
-rw-r--r-- | gdb/features/aarch64-mte.c | 14 | ||||
-rw-r--r-- | gdb/features/aarch64-mte.xml | 11 |
3 files changed, 26 insertions, 0 deletions
diff --git a/gdb/features/Makefile b/gdb/features/Makefile index 5049b88..522ad58 100644 --- a/gdb/features/Makefile +++ b/gdb/features/Makefile @@ -202,6 +202,7 @@ $(outdir)/%.dat: %.xml number-regs.xsl sort-regs.xsl gdbserver-regs.xsl FEATURE_XMLFILES = aarch64-core.xml \ aarch64-fpu.xml \ aarch64-pauth.xml \ + aarch64-mte.xml \ arc/v1-core.xml \ arc/v1-aux.xml \ arc/v2-core.xml \ diff --git a/gdb/features/aarch64-mte.c b/gdb/features/aarch64-mte.c new file mode 100644 index 0000000..883b19c --- /dev/null +++ b/gdb/features/aarch64-mte.c @@ -0,0 +1,14 @@ +/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: + Original: aarch64-mte.xml */ + +#include "gdbsupport/tdesc.h" + +static int +create_feature_aarch64_mte (struct target_desc *result, long regnum) +{ + struct tdesc_feature *feature; + + feature = tdesc_create_feature (result, "org.gnu.gdb.aarch64.mte"); + tdesc_create_reg (feature, "tag_ctl", regnum++, 0, "system", 64, "uint64"); + return regnum; +} diff --git a/gdb/features/aarch64-mte.xml b/gdb/features/aarch64-mte.xml new file mode 100644 index 0000000..da6c7bf --- /dev/null +++ b/gdb/features/aarch64-mte.xml @@ -0,0 +1,11 @@ +<?xml version="1.0"?> +<!-- Copyright (C) 2021 Free Software Foundation, Inc. + + Copying and distribution of this file, with or without modification, + are permitted in any medium without royalty provided the copyright + notice and this notice are preserved. --> + +<!DOCTYPE feature SYSTEM "gdb-target.dtd"> +<feature name="org.gnu.gdb.aarch64.mte"> + <reg name="tag_ctl" bitsize="64" type="uint64" group="system" save-restore="no"/> +</feature> |