public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* [PATCH 04/10] aarch64: Add support for Armv8.8-A
@ 2021-11-30 13:18 Richard Sandiford
  2021-12-02 12:41 ` Nick Clifton
  0 siblings, 1 reply; 2+ messages in thread
From: Richard Sandiford @ 2021-11-30 13:18 UTC (permalink / raw)
  To: binutils; +Cc: rearnsha

This patch adds skeleton support for -march=armv8.8-a, testing only
that it correctly inherits from armv8.7-a.

Tested on aarch64-linux-gnu.  OK to install?

Richard


include/
	* opcode/aarch64.h (AARCH64_FEATURE_V8_8): New macro.
	(AARCH64_ARCH_V8_8): Likewise.

gas/
	* doc/c-aarch64.texi: Document armv8.8-a.
	* config/tc-aarch64.c (aarch64_archs): Add armv8-8-a
	* testsuite/gas/aarch64/v8-8-a.s,
	* testsuite/gas/aarch64/v8-8-a.d: New test.
---
 gas/config/tc-aarch64.c            | 1 +
 gas/doc/c-aarch64.texi             | 4 ++--
 gas/testsuite/gas/aarch64/v8-8-a.d | 2 ++
 gas/testsuite/gas/aarch64/v8-8-a.s | 5 +++++
 include/opcode/aarch64.h           | 3 +++
 5 files changed, 13 insertions(+), 2 deletions(-)
 create mode 100644 gas/testsuite/gas/aarch64/v8-8-a.d
 create mode 100644 gas/testsuite/gas/aarch64/v8-8-a.s

diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
index 497c126ea83..2181fa12bfd 100644
--- a/gas/config/tc-aarch64.c
+++ b/gas/config/tc-aarch64.c
@@ -9820,6 +9820,7 @@ static const struct aarch64_arch_option_table aarch64_archs[] = {
   {"armv8.5-a", AARCH64_ARCH_V8_5},
   {"armv8.6-a", AARCH64_ARCH_V8_6},
   {"armv8.7-a", AARCH64_ARCH_V8_7},
+  {"armv8.8-a", AARCH64_ARCH_V8_8},
   {"armv8-r",	AARCH64_ARCH_V8_R},
   {"armv9-a",	AARCH64_ARCH_V9},
   {NULL, AARCH64_ARCH_NONE}
diff --git a/gas/doc/c-aarch64.texi b/gas/doc/c-aarch64.texi
index 6c399636266..3051b6f6d76 100644
--- a/gas/doc/c-aarch64.texi
+++ b/gas/doc/c-aarch64.texi
@@ -110,8 +110,8 @@ issue an error message if an attempt is made to assemble an
 instruction which will not execute on the target architecture.  The
 following architecture names are recognized: @code{armv8-a},
 @code{armv8.1-a}, @code{armv8.2-a}, @code{armv8.3-a}, @code{armv8.4-a}
-@code{armv8.5-a}, @code{armv8.6-a}, @code{armv8.7-a}, @code{armv8-r}, and
-@code{armv9-a}.
+@code{armv8.5-a}, @code{armv8.6-a}, @code{armv8.7-a}, @code{armv8.8-a},
+@code{armv8-r}, and @code{armv9-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/gas/testsuite/gas/aarch64/v8-8-a.d b/gas/testsuite/gas/aarch64/v8-8-a.d
new file mode 100644
index 00000000000..50fb822e5a6
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/v8-8-a.d
@@ -0,0 +1,2 @@
+# objdump: -dr
+#...
diff --git a/gas/testsuite/gas/aarch64/v8-8-a.s b/gas/testsuite/gas/aarch64/v8-8-a.s
new file mode 100644
index 00000000000..f2568ef922b
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/v8-8-a.s
@@ -0,0 +1,5 @@
+	.arch armv8.8-a
+
+	ld64b x0, [x1]
+	dsb oshnxs
+	msr hcrx_el2, x0
diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h
index fa79aa9c25a..493b7973f1c 100644
--- a/include/opcode/aarch64.h
+++ b/include/opcode/aarch64.h
@@ -94,6 +94,7 @@ typedef uint32_t aarch64_insn;
 #define AARCH64_FEATURE_V9	     (1ULL << 56) /* Armv9.0-A processors.  */
 #define AARCH64_FEATURE_SME_F64	     (1ULL << 57) /* SME F64.  */
 #define AARCH64_FEATURE_SME_I64	     (1ULL << 58) /* SME I64.  */
+#define AARCH64_FEATURE_V8_8	     (1ULL << 59) /* Armv8.8 processors.  */
 
 /* Crypto instructions are the combination of AES and SHA2.  */
 #define AARCH64_FEATURE_CRYPTO	(AARCH64_FEATURE_SHA2 | AARCH64_FEATURE_AES)
@@ -141,6 +142,8 @@ typedef uint32_t aarch64_insn;
 #define AARCH64_ARCH_V8_7	AARCH64_FEATURE (AARCH64_ARCH_V8_6,	\
 						 AARCH64_FEATURE_V8_7	\
 						 | AARCH64_FEATURE_LS64)
+#define AARCH64_ARCH_V8_8	AARCH64_FEATURE (AARCH64_ARCH_V8_7,	\
+						 AARCH64_FEATURE_V8_8)
 #define AARCH64_ARCH_V8_R	(AARCH64_FEATURE (AARCH64_ARCH_V8_4,	\
 						 AARCH64_FEATURE_V8_R)	\
 			      & ~(AARCH64_FEATURE_V8_A | AARCH64_FEATURE_LOR))
-- 
2.25.1


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH 04/10] aarch64: Add support for Armv8.8-A
  2021-11-30 13:18 [PATCH 04/10] aarch64: Add support for Armv8.8-A Richard Sandiford
@ 2021-12-02 12:41 ` Nick Clifton
  0 siblings, 0 replies; 2+ messages in thread
From: Nick Clifton @ 2021-12-02 12:41 UTC (permalink / raw)
  To: binutils, rearnsha, richard.sandiford

Hi Richard,

> This patch adds skeleton support for -march=armv8.8-a, testing only
> that it correctly inherits from armv8.7-a.

> include/
> 	* opcode/aarch64.h (AARCH64_FEATURE_V8_8): New macro.
> 	(AARCH64_ARCH_V8_8): Likewise.
> 
> gas/
> 	* doc/c-aarch64.texi: Document armv8.8-a.

[I am going through these patches in order, so this comment may be addressed by a later patch...]

I think that an entry in gas/NEWS is also warranted here.

> 	* config/tc-aarch64.c (aarch64_archs): Add armv8-8-a
> 	* testsuite/gas/aarch64/v8-8-a.s,
> 	* testsuite/gas/aarch64/v8-8-a.d: New test.

Approved - please apply.

Cheers
   Nick


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-12-02 12:41 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-30 13:18 [PATCH 04/10] aarch64: Add support for Armv8.8-A Richard Sandiford
2021-12-02 12:41 ` Nick Clifton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).