This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[Aarch64] Add support for ARMv8.1 command line option
- From: Matthew Wahab <matthew dot wahab at arm dot com>
- To: "binutils at sourceware dot org" <binutils at sourceware dot org>
- Date: Thu, 21 May 2015 11:33:49 +0100
- Subject: [Aarch64] Add support for ARMv8.1 command line option
- Authentication-results: sourceware.org; auth=none
ARMv8.1 is a set of optional architectural extensions to ARMv8. Support for the
individual extensions, added by other patches, is enabled by adding the
extension name to the "armv8-a" architecture name. This patch supports using
"armv8.1-a" as an architecture name in its own right, making it the same as
"armv8-a" with all ARMv8.1 extensions enabled.
This patch depends on the ARMv8.1 patches submitted earlier:
- PAN extension: https://sourceware.org/ml/binutils/2015-05/msg00182.html
- Limited ordering regions:
https://sourceware.org/ml/binutils/2015-05/msg00187.html
- ARMv8.1 Adv.SIMD: https://sourceware.org/ml/binutils/2015-05/msg00189.html
Tested with check-gcc and check-binutils for aarch64-none-linux-gnu.
Ok for trunk?
Matthew
include/opcode/
2015-15-21 Matthew Wahab <matthew.wahab@arm.com>
* aarch64.h (AARCH64_V8_1): New.
gas/
2015-15-21 Matthew Wahab <matthew.wahab@arm.com>
* config/tc-aarch64.c (aarch64_arch_option_table): Add
"armv8.1-a".
* doc/c-aarch64.texi (-march): Add "armv8.1-a".
diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
index 5f2dd83..73a3de2 100644
--- a/gas/config/tc-aarch64.c
+++ b/gas/config/tc-aarch64.c
@@ -7361,6 +7361,7 @@ struct aarch64_arch_option_table
static const struct aarch64_arch_option_table aarch64_archs[] = {
{"all", AARCH64_ANY},
{"armv8-a", AARCH64_ARCH_V8},
+ {"armv8.1-a", AARCH64_ARCH_V8_1},
{NULL, AARCH64_ARCH_NONE}
};
diff --git a/gas/doc/c-aarch64.texi b/gas/doc/c-aarch64.texi
index 83bbee5..282f107 100644
--- a/gas/doc/c-aarch64.texi
+++ b/gas/doc/c-aarch64.texi
@@ -81,7 +81,8 @@ extensions.
This option specifies the target architecture. The assembler will
issue an error message if an attempt is made to assemble an
instruction which will not execute on the target architecture. The
-only value for @var{architecture} is @code{armv8-a}.
+following architecture names are recognized: @code{armv8-a} and
+@code{armv8.1-a}.
If both @option{-mcpu} and @option{-march} are specified, the
assembler will use the setting for @option{-mcpu}. If neither are
diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h
index c47f9dd..dcf0fef 100644
--- a/include/opcode/aarch64.h
+++ b/include/opcode/aarch64.h
@@ -47,6 +47,15 @@ typedef uint32_t aarch64_insn;
#define AARCH64_ARCH_V8 AARCH64_FEATURE (AARCH64_FEATURE_V8, \
AARCH64_FEATURE_FP \
| AARCH64_FEATURE_SIMD)
+#define AARCH64_ARCH_V8_1 AARCH64_FEATURE (AARCH64_FEATURE_V8, \
+ AARCH64_FEATURE_FP \
+ | AARCH64_FEATURE_SIMD \
+ | AARCH64_FEATURE_LSE \
+ | AARCH64_FEATURE_PAN \
+ | AARCH64_FEATURE_LOR \
+ | AARCH64_FEATURE_RDMA)
+
+
#define AARCH64_ARCH_NONE AARCH64_FEATURE (0, 0)
#define AARCH64_ANY AARCH64_FEATURE (-1, 0) /* Any basic core. */