[AArch64][Patch 1/5] Support the ARMv8.2 Statistical Profiling Extension.
authorMatthew Wahab <matthew.wahab@arm.com>
Fri, 11 Dec 2015 09:30:26 +0000 (09:30 +0000)
committerMatthew Wahab <matthew.wahab@arm.com>
Fri, 11 Dec 2015 09:30:26 +0000 (09:30 +0000)
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

gas/ChangeLog
gas/config/tc-aarch64.c
gas/doc/c-aarch64.texi
include/opcode/ChangeLog
include/opcode/aarch64.h

index aa6454e..2fcad8e 100644 (file)
@@ -1,3 +1,8 @@
+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".
+
 2015-12-10  Matthew Wahab  <matthew.wahab@arm.com>
 
        * config/tc-aarch64.c (parse_sys_ins_reg): Add check of
index bb2f228..2f115ec 100644 (file)
@@ -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}
 };
 
index 363366a..cba768d 100644 (file)
@@ -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
index 0a186e8..c4c4784 100644 (file)
@@ -1,3 +1,7 @@
+2015-12-11  Matthew Wahab  <matthew.wahab@arm.com>
+
+       * aarch64.h (AARCH64_FEATURE_PROFILE): New.
+
 2015-12-10  Matthew Wahab  <matthew.wahab@arm.com>
 
        * aarch64.h (aarch64_sys_ins_reg_supported_p): Declare.
index 7477066..27509da 100644 (file)
@@ -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, \