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] Add support for ARMv8.1 command line option


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.  */
 

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