From 73af8ed6b107040eb7488f6ec122cd05d5e2e903 Mon Sep 17 00:00:00 2001 From: Matthew Wahab Date: Fri, 11 Dec 2015 09:30:26 +0000 Subject: [PATCH] [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 * config/tc-aarch64.c (aarch64_features): Add "profile". * doc/c-aarch64.texi (AArch64 Extensions): Add "profile". include/opcode/ 2015-12-11 Matthew Wahab * aarch64.h (AARCH64_FEATURE_PROFILE): New. Change-Id: If9bb4a9b69a264180f96f8ffaf10b15ced273699 --- 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 aa6454e348..2fcad8e667 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2015-12-11 Matthew Wahab + + * config/tc-aarch64.c (aarch64_features): Add "profile". + * doc/c-aarch64.texi (AArch64 Extensions): Add "profile". + 2015-12-10 Matthew Wahab * config/tc-aarch64.c (parse_sys_ins_reg): Add check of diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c index bb2f228553..2f115ec023 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 363366a5b6..cba768df8e 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 0a186e881b..c4c478408f 100644 --- a/include/opcode/ChangeLog +++ b/include/opcode/ChangeLog @@ -1,3 +1,7 @@ +2015-12-11 Matthew Wahab + + * aarch64.h (AARCH64_FEATURE_PROFILE): New. + 2015-12-10 Matthew Wahab * aarch64.h (aarch64_sys_ins_reg_supported_p): Declare. diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h index 7477066fec..27509dadfd 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, \ -- 2.34.1