]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
AArch64: Add MTE CPU feature check support
authorLuis Machado <luis.machado@linaro.org>
Mon, 15 Jun 2020 16:39:30 +0000 (13:39 -0300)
committerLuis Machado <luis.machado@linaro.org>
Thu, 25 Jun 2020 16:23:38 +0000 (13:23 -0300)
This patch is a preparation for the next patches implementing MTE. It just adds
a HWCAP2 constant for MTE, creates a new generic arch/aarch64-mte-linux.h file
and includes that file in the source files that will use it.

gdb/ChangeLog:

YYYY-MM-DD  Luis Machado  <luis.machado@linaro.org>

* Makefile.in (HFILES_NO_SRCDIR): Add arch/aarch64-mte-linux.h.
* aarch64-linux-nat.c: Include arch/aarch64-mte-linux.h.
* aarch64-linux-tdep.c: Likewise
* arch/aarch64-mte-linux.h: New file.

gdbserver/ChangeLog:

YYYY-MM-DD  Luis Machado  <luis.machado@linaro.org>

* linux-aarch64-low.cc: Include arch/aarch64-mte-linux.h.

gdb/Makefile.in
gdb/aarch64-linux-nat.c
gdb/aarch64-linux-tdep.c
gdb/arch/aarch64-mte-linux.h [new file with mode: 0644]
gdbserver/linux-aarch64-low.cc

index 32d0eee7c6376d0f82aa671560a8cc9ed55c2a3e..ae789bb38288ea60d26bd659c616a55d560e4200 100644 (file)
@@ -1444,6 +1444,7 @@ HFILES_NO_SRCDIR = \
        arch/aarch32.h \
        arch/aarch64.h \
        arch/aarch64-insn.h \
+       arch/aarch64-mte-linux.h \
        arch/arc.h \
        arch/arm.h \
        arch/i386.h \
index 77d5863a56aa2bd78779827fe58a1d4ba28fb577..260f47558b9ca9e0ba8c34ee2f20fb3e0649e986 100644 (file)
@@ -50,6 +50,8 @@
 #include "gdb_proc_service.h"
 #include "arch-utils.h"
 
+#include "arch/aarch64-mte-linux.h"
+
 #ifndef TRAP_HWBKPT
 #define TRAP_HWBKPT 0x0004
 #endif
index 34ba0d87baaff12f1f9711e777ab15a0a394f59b..bfb4fc51e1b0ff6ae35f132b776f192aeb1dcac9 100644 (file)
@@ -44,6 +44,8 @@
 #include "record-full.h"
 #include "linux-record.h"
 
+#include "arch/aarch64-mte-linux.h"
+
 /* Signal frame handling.
 
       +------------+  ^
diff --git a/gdb/arch/aarch64-mte-linux.h b/gdb/arch/aarch64-mte-linux.h
new file mode 100644 (file)
index 0000000..c6a91c2
--- /dev/null
@@ -0,0 +1,28 @@
+/* Common Linux target-dependent definitions for AArch64 MTE
+
+   Copyright (C) 2020 Free Software Foundation, Inc.
+
+   This file is part of GDB.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef ARCH_AARCH64_LINUX_H
+#define ARCH_AARCH64_LINUX_H
+
+/* Feature check for Memory Tagging Extension.  */
+#ifndef HWCAP2_MTE
+#define HWCAP2_MTE  (1 << 18)
+#endif
+
+#endif /* ARCH_AARCH64_LINUX_H */
index 08208ae4f4524a579b5f1bd7ea5afd2c103c9e24..7512aac54bbb690268d3033c38c506cbb5313b6f 100644 (file)
@@ -40,6 +40,7 @@
 
 #include "gdb_proc_service.h"
 #include "arch/aarch64.h"
+#include "arch/aarch64-mte-linux.h"
 #include "linux-aarch32-tdesc.h"
 #include "linux-aarch64-tdesc.h"
 #include "nat/aarch64-sve-linux-ptrace.h"