This is the mail archive of the
binutils-cvs@sourceware.org
mailing list for the binutils project.
[binutils-gdb/binutils-2_26-branch] [AArch64][Patch 1/5] Support the ARMv8.2 Statistical Profiling Extension.
- From: Matthew Wahab <mwahab at sourceware dot org>
- To: bfd-cvs at sourceware dot org
- Date: 14 Dec 2015 14:28:45 -0000
- Subject: [binutils-gdb/binutils-2_26-branch] [AArch64][Patch 1/5] Support the ARMv8.2 Statistical Profiling Extension.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=5c25b2b4dc3d799c2ced2a2c017105eee35f57d7
commit 5c25b2b4dc3d799c2ced2a2c017105eee35f57d7
Author: Matthew Wahab <matthew.wahab@arm.com>
Date: Fri Dec 11 09:30:26 2015 +0000
[AArch64][Patch 1/5] Support the ARMv8.2 Statistical Profiling Extension.
The Statistical Profile extension included in the ARMv8.2 architecture
adds a number of system registers and a new instruction. This patch set
adds support for the extension to binutils, enabled when
-march=armv8.2-a+profile is given.
The patches in this series:
- Add the new command line option and feature flags.
- Add the new system registers.
- Adjust the maximum number of aliases permitted for an instruction.
- Add support for HINT aliases which take operands.
- Add the new instruction, an alias of the HINT instruction.
This patch adds the option "profile" to the permitted architecture
extensions, disabling it by default.
gas/
2015-12-11 Matthew Wahab <matthew.wahab@arm.com>
* config/tc-aarch64.c (aarch64_features): Add "profile".
* doc/c-aarch64.texi (AArch64 Extensions): Add "profile".
include/opcode/
2015-12-11 Matthew Wahab <matthew.wahab@arm.com>
* aarch64.h (AARCH64_FEATURE_PROFILE): New.
Change-Id: If9bb4a9b69a264180f96f8ffaf10b15ced273699
Diff:
---
gas/ChangeLog | 5 +++++
gas/config/tc-aarch64.c | 1 +
gas/doc/c-aarch64.texi | 2 ++
include/opcode/ChangeLog | 4 ++++
include/opcode/aarch64.h | 1 +
5 files changed, 13 insertions(+)
diff --git a/gas/ChangeLog b/gas/ChangeLog
index f8c33e9..1058a4f 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,10 @@
2015-12-14 Matthew Wahab <matthew.wahab@arm.com>
+ * config/tc-aarch64.c (aarch64_features): Add "profile".
+ * doc/c-aarch64.texi (AArch64 Extensions): Add "profile".
+
+2015-12-14 Matthew Wahab <matthew.wahab@arm.com>
+
* config/tc-aarch64.c (parse_sys_ins_reg): Add check of
architectural support for system register.
diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
index bb2f228..2f115ec 100644
--- a/gas/config/tc-aarch64.c
+++ b/gas/config/tc-aarch64.c
@@ -7744,6 +7744,7 @@ static const struct aarch64_option_cpu_value_table aarch64_features[] = {
| AARCH64_FEATURE_RDMA, 0)},
{"fp16", AARCH64_FEATURE (AARCH64_FEATURE_F16
| AARCH64_FEATURE_FP, 0)},
+ {"profile", AARCH64_FEATURE (AARCH64_FEATURE_PROFILE, 0)},
{NULL, AARCH64_ARCH_NONE}
};
diff --git a/gas/doc/c-aarch64.texi b/gas/doc/c-aarch64.texi
index 363366a..cba768d 100644
--- a/gas/doc/c-aarch64.texi
+++ b/gas/doc/c-aarch64.texi
@@ -145,6 +145,8 @@ automatically cause those extensions to be disabled.
@item @code{fp16} @tab ARMv8.2-A @tab ARMv8.2-A or later
@tab Enable ARMv8.2 16-bit floating-point support. This implies
@code{fp}.
+@item @code{profile} @tab ARMv8.2-A @tab No
+ @tab Enable statistical profiling extensions.
@end multitable
@node AArch64 Syntax
diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog
index eff25ed..bdea5ab 100644
--- a/include/opcode/ChangeLog
+++ b/include/opcode/ChangeLog
@@ -1,5 +1,9 @@
2015-12-14 Matthew Wahab <matthew.wahab@arm.com>
+ * aarch64.h (AARCH64_FEATURE_PROFILE): New.
+
+2015-12-14 Matthew Wahab <matthew.wahab@arm.com>
+
* aarch64.h (aarch64_sys_ins_reg_supported_p): Declare.
2015-12-14 Matthew Wahab <matthew.wahab@arm.com>
diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h
index 7477066..27509dad 100644
--- a/include/opcode/aarch64.h
+++ b/include/opcode/aarch64.h
@@ -50,6 +50,7 @@ typedef uint32_t aarch64_insn;
#define AARCH64_FEATURE_V8_1 0x01000000 /* v8.1 features. */
#define AARCH64_FEATURE_F16 0x02000000 /* v8.2 FP16 instructions. */
#define AARCH64_FEATURE_RAS 0x04000000 /* RAS Extensions. */
+#define AARCH64_FEATURE_PROFILE 0x08000000 /* Statistical Profiling. */
/* Architectures are the sum of the base and extensions. */
#define AARCH64_ARCH_V8 AARCH64_FEATURE (AARCH64_FEATURE_V8, \