This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[AArch64][Patch 1/5] Support the ARMv8.2 Statistical Profiling Extension.


Hello,

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.

Tested the series for aarch64-none-linux-gnu with cross-compiled
check-binutils and check-gas.

Ok for trunk?
Matthew

gas/
2015-12-09  Matthew Wahab  <matthew.wahab@arm.com>

	* config/tc-aarch64.c (aarch64_features): Add "profile".
	* doc/c-aarch64.texi (AArch64 Extensions): Add "profile".

include/opcodes/
2015-12-09  Matthew Wahab  <matthew.wahab@arm.com>

	* aarch64.h (AARCH64_FEATURE_PROFILE): New.

>From 7b56ee202e58cc13e1ae73c13de9fb6bb54b2222 Mon Sep 17 00:00:00 2001
From: Matthew Wahab <matthew.wahab@arm.com>
Date: Thu, 12 Nov 2015 14:03:40 +0000
Subject: [PATCH 1/5] [AArch64][Patch 1/5] Support the ARMv8.2 Statistical
 Profiling Extension.

---
 gas/config/tc-aarch64.c  | 1 +
 gas/doc/c-aarch64.texi   | 2 ++
 include/opcode/aarch64.h | 1 +
 3 files changed, 4 insertions(+)

diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
index d306710..fb4dee1 100644
--- a/gas/config/tc-aarch64.c
+++ b/gas/config/tc-aarch64.c
@@ -7740,6 +7740,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 2717af2..b412009 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/aarch64.h b/include/opcode/aarch64.h
index 68136f8..0b5b592 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.1.4


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]