public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* [PATCH][Binutils] aarch64: Add FEAT_THE RCWCAS instructions.
@ 2023-12-20  9:32 Srinath Parvathaneni
  2024-01-04 17:22 ` [PATCH v2][Binutils] " Srinath Parvathaneni
  0 siblings, 1 reply; 3+ messages in thread
From: Srinath Parvathaneni @ 2023-12-20  9:32 UTC (permalink / raw)
  To: binutils; +Cc: Richard Earnshaw, nickc

[-- Attachment #1: Type: text/plain, Size: 268 bytes --]

Hi,

This patch adds support for FEAT_THE Read Check Write Compare
and Swap (RCWCAS, RCWCASA, RCWCASAL and RCWCASL) instructions
under the +the flag.

Regression testing for aarch64-none-elf target and
found no regressions.

Ok for binutils-master?

Regards,
Srinath.

[-- Attachment #2: feat_the.txt --]
[-- Type: text/plain, Size: 13153 bytes --]

diff --git a/gas/testsuite/gas/aarch64/the-1.d b/gas/testsuite/gas/aarch64/the-1.d
new file mode 100644
index 0000000000000000000000000000000000000000..545e410dbee9270d0f7953df50cbc2cc5c06f992
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/the-1.d
@@ -0,0 +1,90 @@
+#name: Test of Read Check Write Compare and Swap Instructions.
+#as: -march=armv9.4-a+the
+#objdump: -dr
+
+[^:]+:     file format .*
+
+
+[^:]+:
+
+[^:]+:
+.*:	19200a21 	rcwcas	x0, x1, \[x17\]
+.*:	19200b61 	rcwcas	x0, x1, \[x27\]
+.*:	19200a35 	rcwcas	x0, x21, \[x17\]
+.*:	19200b75 	rcwcas	x0, x21, \[x27\]
+.*:	192a0a21 	rcwcas	x10, x1, \[x17\]
+.*:	192a0b61 	rcwcas	x10, x1, \[x27\]
+.*:	192a0a35 	rcwcas	x10, x21, \[x17\]
+.*:	192a0b75 	rcwcas	x10, x21, \[x27\]
+.*:	192f0a21 	rcwcas	x15, x1, \[x17\]
+.*:	192f0b61 	rcwcas	x15, x1, \[x27\]
+.*:	192f0a35 	rcwcas	x15, x21, \[x17\]
+.*:	192f0b75 	rcwcas	x15, x21, \[x27\]
+.*:	19340a21 	rcwcas	x20, x1, \[x17\]
+.*:	19340b61 	rcwcas	x20, x1, \[x27\]
+.*:	19340a35 	rcwcas	x20, x21, \[x17\]
+.*:	19340b75 	rcwcas	x20, x21, \[x27\]
+.*:	19390a21 	rcwcas	x25, x1, \[x17\]
+.*:	19390b61 	rcwcas	x25, x1, \[x27\]
+.*:	19390a35 	rcwcas	x25, x21, \[x17\]
+.*:	19390b75 	rcwcas	x25, x21, \[x27\]
+.*:	19a00a21 	rcwcasa	x0, x1, \[x17\]
+.*:	19a00b61 	rcwcasa	x0, x1, \[x27\]
+.*:	19a00a35 	rcwcasa	x0, x21, \[x17\]
+.*:	19a00b75 	rcwcasa	x0, x21, \[x27\]
+.*:	19aa0a21 	rcwcasa	x10, x1, \[x17\]
+.*:	19aa0b61 	rcwcasa	x10, x1, \[x27\]
+.*:	19aa0a35 	rcwcasa	x10, x21, \[x17\]
+.*:	19aa0b75 	rcwcasa	x10, x21, \[x27\]
+.*:	19af0a21 	rcwcasa	x15, x1, \[x17\]
+.*:	19af0b61 	rcwcasa	x15, x1, \[x27\]
+.*:	19af0a35 	rcwcasa	x15, x21, \[x17\]
+.*:	19af0b75 	rcwcasa	x15, x21, \[x27\]
+.*:	19b40a21 	rcwcasa	x20, x1, \[x17\]
+.*:	19b40b61 	rcwcasa	x20, x1, \[x27\]
+.*:	19b40a35 	rcwcasa	x20, x21, \[x17\]
+.*:	19b40b75 	rcwcasa	x20, x21, \[x27\]
+.*:	19b90a21 	rcwcasa	x25, x1, \[x17\]
+.*:	19b90b61 	rcwcasa	x25, x1, \[x27\]
+.*:	19b90a35 	rcwcasa	x25, x21, \[x17\]
+.*:	19b90b75 	rcwcasa	x25, x21, \[x27\]
+.*:	19e00a21 	rcwcasal	x0, x1, \[x17\]
+.*:	19e00b61 	rcwcasal	x0, x1, \[x27\]
+.*:	19e00a35 	rcwcasal	x0, x21, \[x17\]
+.*:	19e00b75 	rcwcasal	x0, x21, \[x27\]
+.*:	19ea0a21 	rcwcasal	x10, x1, \[x17\]
+.*:	19ea0b61 	rcwcasal	x10, x1, \[x27\]
+.*:	19ea0a35 	rcwcasal	x10, x21, \[x17\]
+.*:	19ea0b75 	rcwcasal	x10, x21, \[x27\]
+.*:	19ef0a21 	rcwcasal	x15, x1, \[x17\]
+.*:	19ef0b61 	rcwcasal	x15, x1, \[x27\]
+.*:	19ef0a35 	rcwcasal	x15, x21, \[x17\]
+.*:	19ef0b75 	rcwcasal	x15, x21, \[x27\]
+.*:	19f40a21 	rcwcasal	x20, x1, \[x17\]
+.*:	19f40b61 	rcwcasal	x20, x1, \[x27\]
+.*:	19f40a35 	rcwcasal	x20, x21, \[x17\]
+.*:	19f40b75 	rcwcasal	x20, x21, \[x27\]
+.*:	19f90a21 	rcwcasal	x25, x1, \[x17\]
+.*:	19f90b61 	rcwcasal	x25, x1, \[x27\]
+.*:	19f90a35 	rcwcasal	x25, x21, \[x17\]
+.*:	19f90b75 	rcwcasal	x25, x21, \[x27\]
+.*:	19600a21 	rcwcasl	x0, x1, \[x17\]
+.*:	19600b61 	rcwcasl	x0, x1, \[x27\]
+.*:	19600a35 	rcwcasl	x0, x21, \[x17\]
+.*:	19600b75 	rcwcasl	x0, x21, \[x27\]
+.*:	196a0a21 	rcwcasl	x10, x1, \[x17\]
+.*:	196a0b61 	rcwcasl	x10, x1, \[x27\]
+.*:	196a0a35 	rcwcasl	x10, x21, \[x17\]
+.*:	196a0b75 	rcwcasl	x10, x21, \[x27\]
+.*:	196f0a21 	rcwcasl	x15, x1, \[x17\]
+.*:	196f0b61 	rcwcasl	x15, x1, \[x27\]
+.*:	196f0a35 	rcwcasl	x15, x21, \[x17\]
+.*:	196f0b75 	rcwcasl	x15, x21, \[x27\]
+.*:	19740a21 	rcwcasl	x20, x1, \[x17\]
+.*:	19740b61 	rcwcasl	x20, x1, \[x27\]
+.*:	19740a35 	rcwcasl	x20, x21, \[x17\]
+.*:	19740b75 	rcwcasl	x20, x21, \[x27\]
+.*:	19790a21 	rcwcasl	x25, x1, \[x17\]
+.*:	19790b61 	rcwcasl	x25, x1, \[x27\]
+.*:	19790a35 	rcwcasl	x25, x21, \[x17\]
+.*:	19790b75 	rcwcasl	x25, x21, \[x27\]
diff --git a/gas/testsuite/gas/aarch64/the-1.s b/gas/testsuite/gas/aarch64/the-1.s
new file mode 100644
index 0000000000000000000000000000000000000000..ad032451e267b1d710333f72b1aade0faf692f61
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/the-1.s
@@ -0,0 +1,10 @@
+	.text
+	.irp op rcwcas, rcwcasa, rcwcasal, rcwcasl
+        .irp reg1 x0, x10, x15, x20, x25
+        .irp reg2 x1, x21
+        .irp reg3 x17, x27
+	\op \reg1, \reg2, [\reg3]
+	.endr
+	.endr
+	.endr
+	.endr
diff --git a/gas/testsuite/gas/aarch64/the-bad-1.d b/gas/testsuite/gas/aarch64/the-bad-1.d
new file mode 100644
index 0000000000000000000000000000000000000000..5e46f2d7a416827335947e1c03bf76801eed60fb
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/the-bad-1.d
@@ -0,0 +1,4 @@
+#name: Illegal test of RCWCAS instructions.
+#source: the-1.s
+#as: -march=armv9.4-a
+#error_output: the-bad-1.l
diff --git a/gas/testsuite/gas/aarch64/the-bad-1.l b/gas/testsuite/gas/aarch64/the-bad-1.l
new file mode 100644
index 0000000000000000000000000000000000000000..319459dcfb8d56ee5a89271c59fe265544c91f05
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/the-bad-1.l
@@ -0,0 +1,81 @@
+[^ :]+: Assembler messages:
+.*: Error: selected processor does not support `rcwcas x0,x1,\[x17\]'
+.*: Error: selected processor does not support `rcwcas x0,x1,\[x27\]'
+.*: Error: selected processor does not support `rcwcas x0,x21,\[x17\]'
+.*: Error: selected processor does not support `rcwcas x0,x21,\[x27\]'
+.*: Error: selected processor does not support `rcwcas x10,x1,\[x17\]'
+.*: Error: selected processor does not support `rcwcas x10,x1,\[x27\]'
+.*: Error: selected processor does not support `rcwcas x10,x21,\[x17\]'
+.*: Error: selected processor does not support `rcwcas x10,x21,\[x27\]'
+.*: Error: selected processor does not support `rcwcas x15,x1,\[x17\]'
+.*: Error: selected processor does not support `rcwcas x15,x1,\[x27\]'
+.*: Error: selected processor does not support `rcwcas x15,x21,\[x17\]'
+.*: Error: selected processor does not support `rcwcas x15,x21,\[x27\]'
+.*: Error: selected processor does not support `rcwcas x20,x1,\[x17\]'
+.*: Error: selected processor does not support `rcwcas x20,x1,\[x27\]'
+.*: Error: selected processor does not support `rcwcas x20,x21,\[x17\]'
+.*: Error: selected processor does not support `rcwcas x20,x21,\[x27\]'
+.*: Error: selected processor does not support `rcwcas x25,x1,\[x17\]'
+.*: Error: selected processor does not support `rcwcas x25,x1,\[x27\]'
+.*: Error: selected processor does not support `rcwcas x25,x21,\[x17\]'
+.*: Error: selected processor does not support `rcwcas x25,x21,\[x27\]'
+.*: Error: selected processor does not support `rcwcasa x0,x1,\[x17\]'
+.*: Error: selected processor does not support `rcwcasa x0,x1,\[x27\]'
+.*: Error: selected processor does not support `rcwcasa x0,x21,\[x17\]'
+.*: Error: selected processor does not support `rcwcasa x0,x21,\[x27\]'
+.*: Error: selected processor does not support `rcwcasa x10,x1,\[x17\]'
+.*: Error: selected processor does not support `rcwcasa x10,x1,\[x27\]'
+.*: Error: selected processor does not support `rcwcasa x10,x21,\[x17\]'
+.*: Error: selected processor does not support `rcwcasa x10,x21,\[x27\]'
+.*: Error: selected processor does not support `rcwcasa x15,x1,\[x17\]'
+.*: Error: selected processor does not support `rcwcasa x15,x1,\[x27\]'
+.*: Error: selected processor does not support `rcwcasa x15,x21,\[x17\]'
+.*: Error: selected processor does not support `rcwcasa x15,x21,\[x27\]'
+.*: Error: selected processor does not support `rcwcasa x20,x1,\[x17\]'
+.*: Error: selected processor does not support `rcwcasa x20,x1,\[x27\]'
+.*: Error: selected processor does not support `rcwcasa x20,x21,\[x17\]'
+.*: Error: selected processor does not support `rcwcasa x20,x21,\[x27\]'
+.*: Error: selected processor does not support `rcwcasa x25,x1,\[x17\]'
+.*: Error: selected processor does not support `rcwcasa x25,x1,\[x27\]'
+.*: Error: selected processor does not support `rcwcasa x25,x21,\[x17\]'
+.*: Error: selected processor does not support `rcwcasa x25,x21,\[x27\]'
+.*: Error: selected processor does not support `rcwcasal x0,x1,\[x17\]'
+.*: Error: selected processor does not support `rcwcasal x0,x1,\[x27\]'
+.*: Error: selected processor does not support `rcwcasal x0,x21,\[x17\]'
+.*: Error: selected processor does not support `rcwcasal x0,x21,\[x27\]'
+.*: Error: selected processor does not support `rcwcasal x10,x1,\[x17\]'
+.*: Error: selected processor does not support `rcwcasal x10,x1,\[x27\]'
+.*: Error: selected processor does not support `rcwcasal x10,x21,\[x17\]'
+.*: Error: selected processor does not support `rcwcasal x10,x21,\[x27\]'
+.*: Error: selected processor does not support `rcwcasal x15,x1,\[x17\]'
+.*: Error: selected processor does not support `rcwcasal x15,x1,\[x27\]'
+.*: Error: selected processor does not support `rcwcasal x15,x21,\[x17\]'
+.*: Error: selected processor does not support `rcwcasal x15,x21,\[x27\]'
+.*: Error: selected processor does not support `rcwcasal x20,x1,\[x17\]'
+.*: Error: selected processor does not support `rcwcasal x20,x1,\[x27\]'
+.*: Error: selected processor does not support `rcwcasal x20,x21,\[x17\]'
+.*: Error: selected processor does not support `rcwcasal x20,x21,\[x27\]'
+.*: Error: selected processor does not support `rcwcasal x25,x1,\[x17\]'
+.*: Error: selected processor does not support `rcwcasal x25,x1,\[x27\]'
+.*: Error: selected processor does not support `rcwcasal x25,x21,\[x17\]'
+.*: Error: selected processor does not support `rcwcasal x25,x21,\[x27\]'
+.*: Error: selected processor does not support `rcwcasl x0,x1,\[x17\]'
+.*: Error: selected processor does not support `rcwcasl x0,x1,\[x27\]'
+.*: Error: selected processor does not support `rcwcasl x0,x21,\[x17\]'
+.*: Error: selected processor does not support `rcwcasl x0,x21,\[x27\]'
+.*: Error: selected processor does not support `rcwcasl x10,x1,\[x17\]'
+.*: Error: selected processor does not support `rcwcasl x10,x1,\[x27\]'
+.*: Error: selected processor does not support `rcwcasl x10,x21,\[x17\]'
+.*: Error: selected processor does not support `rcwcasl x10,x21,\[x27\]'
+.*: Error: selected processor does not support `rcwcasl x15,x1,\[x17\]'
+.*: Error: selected processor does not support `rcwcasl x15,x1,\[x27\]'
+.*: Error: selected processor does not support `rcwcasl x15,x21,\[x17\]'
+.*: Error: selected processor does not support `rcwcasl x15,x21,\[x27\]'
+.*: Error: selected processor does not support `rcwcasl x20,x1,\[x17\]'
+.*: Error: selected processor does not support `rcwcasl x20,x1,\[x27\]'
+.*: Error: selected processor does not support `rcwcasl x20,x21,\[x17\]'
+.*: Error: selected processor does not support `rcwcasl x20,x21,\[x27\]'
+.*: Error: selected processor does not support `rcwcasl x25,x1,\[x17\]'
+.*: Error: selected processor does not support `rcwcasl x25,x1,\[x27\]'
+.*: Error: selected processor does not support `rcwcasl x25,x21,\[x17\]'
+.*: Error: selected processor does not support `rcwcasl x25,x21,\[x27\]'
diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h
index 632338318b6ca36088103ed107c62ef51bcdfe29..2e13a70f0455262887ea0947288b130fe01cdb7b 100644
--- a/include/opcode/aarch64.h
+++ b/include/opcode/aarch64.h
@@ -948,6 +948,7 @@ enum aarch64_insn_class
   bfloat16,
   cssc,
   gcs,
+  the,
 };
 
 /* Opcode enumerators.  */
diff --git a/opcodes/aarch64-tbl.h b/opcodes/aarch64-tbl.h
index 74fd6695d818790cf069be62deb9fe51936c409c..62781af9b34dbdb7bcc0a7627692e8e5e44992dc 100644
--- a/opcodes/aarch64-tbl.h
+++ b/opcodes/aarch64-tbl.h
@@ -2578,6 +2578,8 @@ static const aarch64_feature_set aarch64_feature_chk =
   AARCH64_FEATURE (CHK);
 static const aarch64_feature_set aarch64_feature_gcs =
   AARCH64_FEATURE (GCS);
+static const aarch64_feature_set aarch64_feature_the =
+  AARCH64_FEATURE (THE);
 
 #define CORE		&aarch64_feature_v8
 #define FP		&aarch64_feature_fp
@@ -2639,6 +2641,7 @@ static const aarch64_feature_set aarch64_feature_gcs =
 #define CSSC	  &aarch64_feature_cssc
 #define CHK	  &aarch64_feature_chk
 #define GCS	  &aarch64_feature_gcs
+#define THE	  &aarch64_feature_the
 
 #define CORE_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS) \
   { NAME, OPCODE, MASK, CLASS, OP, CORE, OPS, QUALS, FLAGS, 0, 0, NULL }
@@ -2792,6 +2795,8 @@ static const aarch64_feature_set aarch64_feature_gcs =
   { NAME, OPCODE, MASK, ic_system, 0, CHK, OPS, QUALS, FLAGS, 0, 0, NULL }
 #define GCS_INSN(NAME, OPCODE, MASK, OPS, QUALS, FLAGS) \
   { NAME, OPCODE, MASK, gcs, 0, GCS, OPS, QUALS, FLAGS, 0, 0, NULL }
+#define THE_INSN(NAME,OPCODE,MASK,OPS,QUALS,FLAGS) \
+  { NAME, OPCODE, MASK, the, 0, THE, OPS, QUALS, FLAGS, 0, 0, NULL }
 
 #define MOPS_CPY_OP1_OP2_PME_INSN(NAME, OPCODE, MASK, FLAGS, CONSTRAINTS) \
   MOPS_INSN (NAME, OPCODE, MASK, 0, \
@@ -6106,6 +6111,12 @@ const struct aarch64_opcode aarch64_opcode_table[] =
   CSSC_INSN ("smin", 0x1ac06800, 0x7fe0fc00, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF),
   CSSC_INSN ("umin", 0x1ac06c00, 0x7fe0fc00, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF),
 
+/* Read Check Write Compare and Swap Instructions.  */
+ THE_INSN("rcwcas", 0x19200800, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+ THE_INSN("rcwcasa", 0x19a00800, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+ THE_INSN("rcwcasal", 0x19e00800, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+ THE_INSN("rcwcasl", 0x19600800, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+
   {0, 0, 0, 0, 0, 0, {}, {}, 0, 0, 0, NULL},
 };
 

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

* Re: [PATCH v2][Binutils] aarch64: Add FEAT_THE RCWCAS instructions.
  2023-12-20  9:32 [PATCH][Binutils] aarch64: Add FEAT_THE RCWCAS instructions Srinath Parvathaneni
@ 2024-01-04 17:22 ` Srinath Parvathaneni
  2024-01-08 13:51   ` Nick Clifton
  0 siblings, 1 reply; 3+ messages in thread
From: Srinath Parvathaneni @ 2024-01-04 17:22 UTC (permalink / raw)
  To: binutils; +Cc: Richard Earnshaw, nickc


[-- Attachment #1.1: Type: text/plain, Size: 2132 bytes --]

Hi,

This patch adds support for FEAT_THE doubleword and quadword instructions.
doubleword insturctions are enabled by "+the" flag whereas quadword
instructions are enabled on passing both "+the and +d128" flags.

Support for following sets of instructions is added in this patch.
Read check write compare and swap doubleword:
(rcwcas, rcwcasa, rcwcasal, rcwcasl)
Read check write compare and swap quadword:
(rcwcasp,rcwcaspa, rcwcaspal, rcwcaspl)
Read check write software compare and swap doubleword:
(rcwscas, rcwscasa, rcwscasal, rcwscasl)
Read check write software compare and swap quadword:
(rcwscasp, rcwscaspa, rcwscaspal, rcwscaspl)
Read check write atomic bit clear on doubleword:
(rcwclr, rcwclra, rcwclral, rcwclrl)
Read check write atomic bit clear on quadword:
(rcwclrp, rcwclrpa, rcwclrpal, rcwclrpl)
Read check write software atomic bit clear on doubleword:
(rcwsclr, rcwsclra, rcwsclral, rcwsclrl)
Read check write software atomic bit clear on quadword:
(rcwsclrp,rcwsclrpa, rcwsclrpal,rcwsclrpl)
Read check write atomic bit set on doubleword:
(rcwset,rcwseta, rcwsetal,rcwsetl)
Read check write atomic bit set on quadword:
(rcwsetp,rcwsetpa,rcwsetpal,rcwsetpl)
Read check write software atomic bit set on doubleword:
(rcwsset,rcwsseta,rcwssetal,rcwssetl)
Read check write software atomic bit set on quadword:
(rcwssetp,rcwssetpa,rcwssetpal,rcwssetpl)
Read check write swap doubleword:
(rcwswp,rcwswpa,rcwswpal,rcwswpl)
Read check write swap quadword:
(rcwswpp,rcwswppa, rcwswppal,rcwswppl)
Read check write software swap doubleword:
(rcwsswp,rcwsswpa,rcwsswpal,rcwsswpl)
Read check write software swap quadword:
(rcwsswpp,rcwsswppa,rcwsswppal,rcwsswppl)

Regression testing for aarch64-none-elf target and
found no regressions.

Ok for binutils-master?

Regards,
Srinath.

On 12/20/2023 9:32 AM, Srinath Parvathaneni wrote:

> Hi,
>
> This patch adds support for FEAT_THE Read Check Write Compare
> and Swap (RCWCAS, RCWCASA, RCWCASAL and RCWCASL) instructions
> under the +the flag.
>
> Regression testing for aarch64-none-elf target and
> found no regressions.
>
> Ok for binutils-master?
>
> Regards,
> Srinath.

[-- Attachment #2: feat_the --]
[-- Type: text/plain, Size: 88802 bytes --]

diff --git a/gas/testsuite/gas/aarch64/d128_the-1.d b/gas/testsuite/gas/aarch64/d128_the-1.d
new file mode 100644
index 0000000000000000000000000000000000000000..1215f2339b269d6688dfb4549d233ec59435065c
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/d128_the-1.d
@@ -0,0 +1,42 @@
+#name: Test of FEAT_THE quadword Instructions.
+#as: -march=armv9.4-a+the+d128
+#objdump: -dr
+
+[^:]+:     file format .*
+
+
+[^:]+:
+
+[^:]+:
+.*:	19200e04 	rcwcasp	x0, x1, x4, x5, \[x16\]
+.*:	19a00e04 	rcwcaspa	x0, x1, x4, x5, \[x16\]
+.*:	19e00e04 	rcwcaspal	x0, x1, x4, x5, \[x16\]
+.*:	19600e04 	rcwcaspl	x0, x1, x4, x5, \[x16\]
+.*:	59200e04 	rcwscasp	x0, x1, x4, x5, \[x16\]
+.*:	59a00e04 	rcwscaspa	x0, x1, x4, x5, \[x16\]
+.*:	59e00e04 	rcwscaspal	x0, x1, x4, x5, \[x16\]
+.*:	59600e04 	rcwscaspl	x0, x1, x4, x5, \[x16\]
+.*:	19259200 	rcwclrp	x0, x5, \[x16\]
+.*:	19a59200 	rcwclrpa	x0, x5, \[x16\]
+.*:	19e59200 	rcwclrpal	x0, x5, \[x16\]
+.*:	19659200 	rcwclrpl	x0, x5, \[x16\]
+.*:	59259200 	rcwsclrp	x0, x5, \[x16\]
+.*:	59a59200 	rcwsclrpa	x0, x5, \[x16\]
+.*:	59e59200 	rcwsclrpal	x0, x5, \[x16\]
+.*:	59659200 	rcwsclrpl	x0, x5, \[x16\]
+.*:	1925a200 	rcwswpp	x0, x5, \[x16\]
+.*:	19a5a200 	rcwswppa	x0, x5, \[x16\]
+.*:	19e5a200 	rcwswppal	x0, x5, \[x16\]
+.*:	1965a200 	rcwswppl	x0, x5, \[x16\]
+.*:	5925a200 	rcwsswpp	x0, x5, \[x16\]
+.*:	59a5a200 	rcwsswppa	x0, x5, \[x16\]
+.*:	59e5a200 	rcwsswppal	x0, x5, \[x16\]
+.*:	5965a200 	rcwsswppl	x0, x5, \[x16\]
+.*:	1925b200 	rcwsetp	x0, x5, \[x16\]
+.*:	19a5b200 	rcwsetpa	x0, x5, \[x16\]
+.*:	19e5b200 	rcwsetpal	x0, x5, \[x16\]
+.*:	1965b200 	rcwsetpl	x0, x5, \[x16\]
+.*:	5925b200 	rcwssetp	x0, x5, \[x16\]
+.*:	59a5b200 	rcwssetpa	x0, x5, \[x16\]
+.*:	59e5b200 	rcwssetpal	x0, x5, \[x16\]
+.*:	5965b200 	rcwssetpl	x0, x5, \[x16\]
diff --git a/gas/testsuite/gas/aarch64/d128_the-1.s b/gas/testsuite/gas/aarch64/d128_the-1.s
new file mode 100644
index 0000000000000000000000000000000000000000..2835b00b36ebb94552e4d0484dc26e270fffa1c8
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/d128_the-1.s
@@ -0,0 +1,7 @@
+	.text
+	.irp op casp, caspa, caspal, caspl, scasp, scaspa, scaspal, scaspl
+	rcw\op x0, x1, x4, x5, [x16]
+	.endr
+	.irp op clrp, clrpa, clrpal, clrpl, sclrp, sclrpa, sclrpal, sclrpl, swpp, swppa, swppal, swppl, sswpp, sswppa, sswppal, sswppl, setp, setpa, setpal, setpl, ssetp, ssetpa, ssetpal, ssetpl
+	rcw\op x0, x5, [x16]
+	.endr
diff --git a/gas/testsuite/gas/aarch64/d128_the-bad-1.d b/gas/testsuite/gas/aarch64/d128_the-bad-1.d
new file mode 100644
index 0000000000000000000000000000000000000000..7906faddc2135c45ba2a11c1614767b5a5a51daa
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/d128_the-bad-1.d
@@ -0,0 +1,4 @@
+#name: Test of illegal FEAT_THE quadword Instructions.
+#as: -march=armv9.4-a+the
+#source: d128_the-1.s
+#error_output: d128_the-bad-1.l
diff --git a/gas/testsuite/gas/aarch64/d128_the-bad-1.l b/gas/testsuite/gas/aarch64/d128_the-bad-1.l
new file mode 100644
index 0000000000000000000000000000000000000000..9de97912aaa44da4e4bf566e899e54780a5138a4
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/d128_the-bad-1.l
@@ -0,0 +1,33 @@
+[^ :]+: Assembler messages:
+.*: Error: selected processor does not support `rcwcasp x0,x1,x4,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwcaspa x0,x1,x4,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwcaspal x0,x1,x4,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwcaspl x0,x1,x4,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwscasp x0,x1,x4,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwscaspa x0,x1,x4,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwscaspal x0,x1,x4,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwscaspl x0,x1,x4,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwclrp x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwclrpa x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwclrpal x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwclrpl x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsclrp x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsclrpa x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsclrpal x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsclrpl x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwswpp x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwswppa x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwswppal x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwswppl x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsswpp x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsswppa x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsswppal x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsswppl x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsetp x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsetpa x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsetpal x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsetpl x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwssetp x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwssetpa x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwssetpal x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwssetpl x0,x5,\[x16\]'
diff --git a/gas/testsuite/gas/aarch64/d128_the-bad-2.d b/gas/testsuite/gas/aarch64/d128_the-bad-2.d
new file mode 100644
index 0000000000000000000000000000000000000000..4f4e902c367a44c02aa895b65a3ed0f6a033f88b
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/d128_the-bad-2.d
@@ -0,0 +1,4 @@
+#name: Test of illegal FEAT_D128 quadword Instructions.
+#as: -march=armv9.4-a+d128
+#source: d128_the-1.s
+#error_output: d128_the-bad-2.l
diff --git a/gas/testsuite/gas/aarch64/d128_the-bad-2.l b/gas/testsuite/gas/aarch64/d128_the-bad-2.l
new file mode 100644
index 0000000000000000000000000000000000000000..9de97912aaa44da4e4bf566e899e54780a5138a4
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/d128_the-bad-2.l
@@ -0,0 +1,33 @@
+[^ :]+: Assembler messages:
+.*: Error: selected processor does not support `rcwcasp x0,x1,x4,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwcaspa x0,x1,x4,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwcaspal x0,x1,x4,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwcaspl x0,x1,x4,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwscasp x0,x1,x4,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwscaspa x0,x1,x4,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwscaspal x0,x1,x4,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwscaspl x0,x1,x4,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwclrp x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwclrpa x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwclrpal x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwclrpl x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsclrp x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsclrpa x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsclrpal x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsclrpl x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwswpp x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwswppa x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwswppal x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwswppl x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsswpp x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsswppa x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsswppal x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsswppl x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsetp x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsetpa x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsetpal x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsetpl x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwssetp x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwssetpa x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwssetpal x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwssetpl x0,x5,\[x16\]'
diff --git a/gas/testsuite/gas/aarch64/d128_the-bad-3.d b/gas/testsuite/gas/aarch64/d128_the-bad-3.d
new file mode 100644
index 0000000000000000000000000000000000000000..bcd70ea63df3c76c0ea88f3b1672be4eac43638f
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/d128_the-bad-3.d
@@ -0,0 +1,4 @@
+#name: Test of illegal quadword Instructions.
+#as: -march=armv9.4-a
+#source: d128_the-1.s
+#error_output: d128_the-bad-3.l
diff --git a/gas/testsuite/gas/aarch64/d128_the-bad-3.l b/gas/testsuite/gas/aarch64/d128_the-bad-3.l
new file mode 100644
index 0000000000000000000000000000000000000000..9de97912aaa44da4e4bf566e899e54780a5138a4
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/d128_the-bad-3.l
@@ -0,0 +1,33 @@
+[^ :]+: Assembler messages:
+.*: Error: selected processor does not support `rcwcasp x0,x1,x4,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwcaspa x0,x1,x4,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwcaspal x0,x1,x4,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwcaspl x0,x1,x4,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwscasp x0,x1,x4,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwscaspa x0,x1,x4,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwscaspal x0,x1,x4,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwscaspl x0,x1,x4,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwclrp x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwclrpa x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwclrpal x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwclrpl x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsclrp x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsclrpa x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsclrpal x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsclrpl x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwswpp x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwswppa x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwswppal x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwswppl x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsswpp x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsswppa x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsswppal x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsswppl x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsetp x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsetpa x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsetpal x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwsetpl x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwssetp x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwssetpa x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwssetpal x0,x5,\[x16\]'
+.*: Error: selected processor does not support `rcwssetpl x0,x5,\[x16\]'
diff --git a/gas/testsuite/gas/aarch64/d128_the-bad-4.d b/gas/testsuite/gas/aarch64/d128_the-bad-4.d
new file mode 100644
index 0000000000000000000000000000000000000000..5be8a81216c59772b7e5b267bf1d9f6d6f6ed1ea
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/d128_the-bad-4.d
@@ -0,0 +1,4 @@
+#name: Test of FEAT_THE Instructions wrong operands.
+#as: -march=armv9.4-a+d128+the
+#source: d128_the-bad.s
+#error_output: d128_the-bad-4.l
diff --git a/gas/testsuite/gas/aarch64/d128_the-bad-4.l b/gas/testsuite/gas/aarch64/d128_the-bad-4.l
new file mode 100644
index 0000000000000000000000000000000000000000..bbe609259171811ea2b212ae35ec5a59c2640722
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/d128_the-bad-4.l
@@ -0,0 +1,65 @@
+[^ :]+: Assembler messages:
+.*: Error: reg pair must start from even reg at operand 1 -- `rcwcasp x1,x2,x4,x5,\[x16\]'
+.*: Error: reg pair must start from even reg at operand 3 -- `rcwcasp x0,x1,x5,x6,\[x16\]'
+.*: Error: reg pair must start from even reg at operand 1 -- `rcwcaspa x1,x2,x4,x5,\[x16\]'
+.*: Error: reg pair must start from even reg at operand 3 -- `rcwcaspa x0,x1,x5,x6,\[x16\]'
+.*: Error: reg pair must start from even reg at operand 1 -- `rcwcaspal x1,x2,x4,x5,\[x16\]'
+.*: Error: reg pair must start from even reg at operand 3 -- `rcwcaspal x0,x1,x5,x6,\[x16\]'
+.*: Error: reg pair must start from even reg at operand 1 -- `rcwcaspl x1,x2,x4,x5,\[x16\]'
+.*: Error: reg pair must start from even reg at operand 3 -- `rcwcaspl x0,x1,x5,x6,\[x16\]'
+.*: Error: reg pair must start from even reg at operand 1 -- `rcwscasp x1,x2,x4,x5,\[x16\]'
+.*: Error: reg pair must start from even reg at operand 3 -- `rcwscasp x0,x1,x5,x6,\[x16\]'
+.*: Error: reg pair must start from even reg at operand 1 -- `rcwscaspa x1,x2,x4,x5,\[x16\]'
+.*: Error: reg pair must start from even reg at operand 3 -- `rcwscaspa x0,x1,x5,x6,\[x16\]'
+.*: Error: reg pair must start from even reg at operand 1 -- `rcwscaspal x1,x2,x4,x5,\[x16\]'
+.*: Error: reg pair must start from even reg at operand 3 -- `rcwscaspal x0,x1,x5,x6,\[x16\]'
+.*: Error: reg pair must start from even reg at operand 1 -- `rcwscaspl x1,x2,x4,x5,\[x16\]'
+.*: Error: reg pair must start from even reg at operand 3 -- `rcwscaspl x0,x1,x5,x6,\[x16\]'
+.*: Error: expected an integer or zero register at operand 2 -- `rcwclrp x0,x31,\[x16\]'
+.*: Error: expected an integer or zero register at operand 2 -- `rcwclrpa x0,x31,\[x16\]'
+.*: Error: expected an integer or zero register at operand 2 -- `rcwclrpal x0,x31,\[x16\]'
+.*: Error: expected an integer or zero register at operand 2 -- `rcwclrpl x0,x31,\[x16\]'
+.*: Error: expected an integer or zero register at operand 2 -- `rcwsclrp x0,x31,\[x16\]'
+.*: Error: expected an integer or zero register at operand 2 -- `rcwsclrpa x0,x31,\[x16\]'
+.*: Error: expected an integer or zero register at operand 2 -- `rcwsclrpal x0,x31,\[x16\]'
+.*: Error: expected an integer or zero register at operand 2 -- `rcwsclrpl x0,x31,\[x16\]'
+.*: Error: expected an integer or zero register at operand 2 -- `rcwswpp x0,x31,\[x16\]'
+.*: Error: expected an integer or zero register at operand 2 -- `rcwswppa x0,x31,\[x16\]'
+.*: Error: expected an integer or zero register at operand 2 -- `rcwswppal x0,x31,\[x16\]'
+.*: Error: expected an integer or zero register at operand 2 -- `rcwswppl x0,x31,\[x16\]'
+.*: Error: expected an integer or zero register at operand 2 -- `rcwsswpp x0,x31,\[x16\]'
+.*: Error: expected an integer or zero register at operand 2 -- `rcwsswppa x0,x31,\[x16\]'
+.*: Error: expected an integer or zero register at operand 2 -- `rcwsswppal x0,x31,\[x16\]'
+.*: Error: expected an integer or zero register at operand 2 -- `rcwsswppl x0,x31,\[x16\]'
+.*: Error: expected an integer or zero register at operand 2 -- `rcwsetp x0,x31,\[x16\]'
+.*: Error: expected an integer or zero register at operand 2 -- `rcwsetpa x0,x31,\[x16\]'
+.*: Error: expected an integer or zero register at operand 2 -- `rcwsetpal x0,x31,\[x16\]'
+.*: Error: expected an integer or zero register at operand 2 -- `rcwsetpl x0,x31,\[x16\]'
+.*: Error: expected an integer or zero register at operand 2 -- `rcwssetp x0,x31,\[x16\]'
+.*: Error: expected an integer or zero register at operand 2 -- `rcwssetpa x0,x31,\[x16\]'
+.*: Error: expected an integer or zero register at operand 2 -- `rcwssetpal x0,x31,\[x16\]'
+.*: Error: expected an integer or zero register at operand 2 -- `rcwssetpl x0,x31,\[x16\]'
+.*: Error: expected an integer or zero register at operand 1 -- `rcwclrp x31,x0,\[x16\]'
+.*: Error: expected an integer or zero register at operand 1 -- `rcwclrpa x31,x0,\[x16\]'
+.*: Error: expected an integer or zero register at operand 1 -- `rcwclrpal x31,x0,\[x16\]'
+.*: Error: expected an integer or zero register at operand 1 -- `rcwclrpl x31,x0,\[x16\]'
+.*: Error: expected an integer or zero register at operand 1 -- `rcwsclrp x31,x0,\[x16\]'
+.*: Error: expected an integer or zero register at operand 1 -- `rcwsclrpa x31,x0,\[x16\]'
+.*: Error: expected an integer or zero register at operand 1 -- `rcwsclrpal x31,x0,\[x16\]'
+.*: Error: expected an integer or zero register at operand 1 -- `rcwsclrpl x31,x0,\[x16\]'
+.*: Error: expected an integer or zero register at operand 1 -- `rcwswpp x31,x0,\[x16\]'
+.*: Error: expected an integer or zero register at operand 1 -- `rcwswppa x31,x0,\[x16\]'
+.*: Error: expected an integer or zero register at operand 1 -- `rcwswppal x31,x0,\[x16\]'
+.*: Error: expected an integer or zero register at operand 1 -- `rcwswppl x31,x0,\[x16\]'
+.*: Error: expected an integer or zero register at operand 1 -- `rcwsswpp x31,x0,\[x16\]'
+.*: Error: expected an integer or zero register at operand 1 -- `rcwsswppa x31,x0,\[x16\]'
+.*: Error: expected an integer or zero register at operand 1 -- `rcwsswppal x31,x0,\[x16\]'
+.*: Error: expected an integer or zero register at operand 1 -- `rcwsswppl x31,x0,\[x16\]'
+.*: Error: expected an integer or zero register at operand 1 -- `rcwsetp x31,x0,\[x16\]'
+.*: Error: expected an integer or zero register at operand 1 -- `rcwsetpa x31,x0,\[x16\]'
+.*: Error: expected an integer or zero register at operand 1 -- `rcwsetpal x31,x0,\[x16\]'
+.*: Error: expected an integer or zero register at operand 1 -- `rcwsetpl x31,x0,\[x16\]'
+.*: Error: expected an integer or zero register at operand 1 -- `rcwssetp x31,x0,\[x16\]'
+.*: Error: expected an integer or zero register at operand 1 -- `rcwssetpa x31,x0,\[x16\]'
+.*: Error: expected an integer or zero register at operand 1 -- `rcwssetpal x31,x0,\[x16\]'
+.*: Error: expected an integer or zero register at operand 1 -- `rcwssetpl x31,x0,\[x16\]'
diff --git a/gas/testsuite/gas/aarch64/d128_the-bad.s b/gas/testsuite/gas/aarch64/d128_the-bad.s
new file mode 100644
index 0000000000000000000000000000000000000000..d88e189641f2b877d46bb1d2c2e6dddf09990719
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/d128_the-bad.s
@@ -0,0 +1,11 @@
+	.text
+	.irp op casp, caspa, caspal, caspl, scasp, scaspa, scaspal, scaspl
+	rcw\op x1, x2, x4, x5, [x16]
+	rcw\op x0, x1, x5, x6, [x16]
+	.endr
+	.irp op clrp, clrpa, clrpal, clrpl, sclrp, sclrpa, sclrpal, sclrpl, swpp, swppa, swppal, swppl, sswpp, sswppa, sswppal, sswppl, setp, setpa, setpal, setpl, ssetp, ssetpa, ssetpal, ssetpl
+	rcw\op x0, x31, [x16]
+	.endr
+	.irp op clrp, clrpa, clrpal, clrpl, sclrp, sclrpa, sclrpal, sclrpl, swpp, swppa, swppal, swppl, sswpp, sswppa, sswppal, sswppl, setp, setpa, setpal, setpl, ssetp, ssetpa, ssetpal, ssetpl
+	rcw\op x31, x0, [x16]
+	.endr
diff --git a/gas/testsuite/gas/aarch64/the-1.d b/gas/testsuite/gas/aarch64/the-1.d
new file mode 100644
index 0000000000000000000000000000000000000000..4d2e0ae33697a2b2a0bfefc49a3ea6158367cb30
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/the-1.d
@@ -0,0 +1,522 @@
+#name: Test of FEAT_THE Instructions.
+#as: -march=armv9.4-a+the
+#objdump: -dr
+
+[^:]+:     file format .*
+
+
+[^:]+:
+
+[^:]+:
+.*:	19200822 	rcwcas	x0, x2, \[x1\]
+.*:	19200832 	rcwcas	x0, x18, \[x1\]
+.*:	19200902 	rcwcas	x0, x2, \[x8\]
+.*:	19200912 	rcwcas	x0, x18, \[x8\]
+.*:	19200a22 	rcwcas	x0, x2, \[x17\]
+.*:	19200a32 	rcwcas	x0, x18, \[x17\]
+.*:	19200b22 	rcwcas	x0, x2, \[x25\]
+.*:	19200b32 	rcwcas	x0, x18, \[x25\]
+.*:	19300822 	rcwcas	x16, x2, \[x1\]
+.*:	19300832 	rcwcas	x16, x18, \[x1\]
+.*:	19300902 	rcwcas	x16, x2, \[x8\]
+.*:	19300912 	rcwcas	x16, x18, \[x8\]
+.*:	19300a22 	rcwcas	x16, x2, \[x17\]
+.*:	19300a32 	rcwcas	x16, x18, \[x17\]
+.*:	19300b22 	rcwcas	x16, x2, \[x25\]
+.*:	19300b32 	rcwcas	x16, x18, \[x25\]
+.*:	19a00822 	rcwcasa	x0, x2, \[x1\]
+.*:	19a00832 	rcwcasa	x0, x18, \[x1\]
+.*:	19a00902 	rcwcasa	x0, x2, \[x8\]
+.*:	19a00912 	rcwcasa	x0, x18, \[x8\]
+.*:	19a00a22 	rcwcasa	x0, x2, \[x17\]
+.*:	19a00a32 	rcwcasa	x0, x18, \[x17\]
+.*:	19a00b22 	rcwcasa	x0, x2, \[x25\]
+.*:	19a00b32 	rcwcasa	x0, x18, \[x25\]
+.*:	19b00822 	rcwcasa	x16, x2, \[x1\]
+.*:	19b00832 	rcwcasa	x16, x18, \[x1\]
+.*:	19b00902 	rcwcasa	x16, x2, \[x8\]
+.*:	19b00912 	rcwcasa	x16, x18, \[x8\]
+.*:	19b00a22 	rcwcasa	x16, x2, \[x17\]
+.*:	19b00a32 	rcwcasa	x16, x18, \[x17\]
+.*:	19b00b22 	rcwcasa	x16, x2, \[x25\]
+.*:	19b00b32 	rcwcasa	x16, x18, \[x25\]
+.*:	19e00822 	rcwcasal	x0, x2, \[x1\]
+.*:	19e00832 	rcwcasal	x0, x18, \[x1\]
+.*:	19e00902 	rcwcasal	x0, x2, \[x8\]
+.*:	19e00912 	rcwcasal	x0, x18, \[x8\]
+.*:	19e00a22 	rcwcasal	x0, x2, \[x17\]
+.*:	19e00a32 	rcwcasal	x0, x18, \[x17\]
+.*:	19e00b22 	rcwcasal	x0, x2, \[x25\]
+.*:	19e00b32 	rcwcasal	x0, x18, \[x25\]
+.*:	19f00822 	rcwcasal	x16, x2, \[x1\]
+.*:	19f00832 	rcwcasal	x16, x18, \[x1\]
+.*:	19f00902 	rcwcasal	x16, x2, \[x8\]
+.*:	19f00912 	rcwcasal	x16, x18, \[x8\]
+.*:	19f00a22 	rcwcasal	x16, x2, \[x17\]
+.*:	19f00a32 	rcwcasal	x16, x18, \[x17\]
+.*:	19f00b22 	rcwcasal	x16, x2, \[x25\]
+.*:	19f00b32 	rcwcasal	x16, x18, \[x25\]
+.*:	19600822 	rcwcasl	x0, x2, \[x1\]
+.*:	19600832 	rcwcasl	x0, x18, \[x1\]
+.*:	19600902 	rcwcasl	x0, x2, \[x8\]
+.*:	19600912 	rcwcasl	x0, x18, \[x8\]
+.*:	19600a22 	rcwcasl	x0, x2, \[x17\]
+.*:	19600a32 	rcwcasl	x0, x18, \[x17\]
+.*:	19600b22 	rcwcasl	x0, x2, \[x25\]
+.*:	19600b32 	rcwcasl	x0, x18, \[x25\]
+.*:	19700822 	rcwcasl	x16, x2, \[x1\]
+.*:	19700832 	rcwcasl	x16, x18, \[x1\]
+.*:	19700902 	rcwcasl	x16, x2, \[x8\]
+.*:	19700912 	rcwcasl	x16, x18, \[x8\]
+.*:	19700a22 	rcwcasl	x16, x2, \[x17\]
+.*:	19700a32 	rcwcasl	x16, x18, \[x17\]
+.*:	19700b22 	rcwcasl	x16, x2, \[x25\]
+.*:	19700b32 	rcwcasl	x16, x18, \[x25\]
+.*:	59200822 	rcwscas	x0, x2, \[x1\]
+.*:	59200832 	rcwscas	x0, x18, \[x1\]
+.*:	59200902 	rcwscas	x0, x2, \[x8\]
+.*:	59200912 	rcwscas	x0, x18, \[x8\]
+.*:	59200a22 	rcwscas	x0, x2, \[x17\]
+.*:	59200a32 	rcwscas	x0, x18, \[x17\]
+.*:	59200b22 	rcwscas	x0, x2, \[x25\]
+.*:	59200b32 	rcwscas	x0, x18, \[x25\]
+.*:	59300822 	rcwscas	x16, x2, \[x1\]
+.*:	59300832 	rcwscas	x16, x18, \[x1\]
+.*:	59300902 	rcwscas	x16, x2, \[x8\]
+.*:	59300912 	rcwscas	x16, x18, \[x8\]
+.*:	59300a22 	rcwscas	x16, x2, \[x17\]
+.*:	59300a32 	rcwscas	x16, x18, \[x17\]
+.*:	59300b22 	rcwscas	x16, x2, \[x25\]
+.*:	59300b32 	rcwscas	x16, x18, \[x25\]
+.*:	59a00822 	rcwscasa	x0, x2, \[x1\]
+.*:	59a00832 	rcwscasa	x0, x18, \[x1\]
+.*:	59a00902 	rcwscasa	x0, x2, \[x8\]
+.*:	59a00912 	rcwscasa	x0, x18, \[x8\]
+.*:	59a00a22 	rcwscasa	x0, x2, \[x17\]
+.*:	59a00a32 	rcwscasa	x0, x18, \[x17\]
+.*:	59a00b22 	rcwscasa	x0, x2, \[x25\]
+.*:	59a00b32 	rcwscasa	x0, x18, \[x25\]
+.*:	59b00822 	rcwscasa	x16, x2, \[x1\]
+.*:	59b00832 	rcwscasa	x16, x18, \[x1\]
+.*:	59b00902 	rcwscasa	x16, x2, \[x8\]
+.*:	59b00912 	rcwscasa	x16, x18, \[x8\]
+.*:	59b00a22 	rcwscasa	x16, x2, \[x17\]
+.*:	59b00a32 	rcwscasa	x16, x18, \[x17\]
+.*:	59b00b22 	rcwscasa	x16, x2, \[x25\]
+.*:	59b00b32 	rcwscasa	x16, x18, \[x25\]
+.*:	59e00822 	rcwscasal	x0, x2, \[x1\]
+.*:	59e00832 	rcwscasal	x0, x18, \[x1\]
+.*:	59e00902 	rcwscasal	x0, x2, \[x8\]
+.*:	59e00912 	rcwscasal	x0, x18, \[x8\]
+.*:	59e00a22 	rcwscasal	x0, x2, \[x17\]
+.*:	59e00a32 	rcwscasal	x0, x18, \[x17\]
+.*:	59e00b22 	rcwscasal	x0, x2, \[x25\]
+.*:	59e00b32 	rcwscasal	x0, x18, \[x25\]
+.*:	59f00822 	rcwscasal	x16, x2, \[x1\]
+.*:	59f00832 	rcwscasal	x16, x18, \[x1\]
+.*:	59f00902 	rcwscasal	x16, x2, \[x8\]
+.*:	59f00912 	rcwscasal	x16, x18, \[x8\]
+.*:	59f00a22 	rcwscasal	x16, x2, \[x17\]
+.*:	59f00a32 	rcwscasal	x16, x18, \[x17\]
+.*:	59f00b22 	rcwscasal	x16, x2, \[x25\]
+.*:	59f00b32 	rcwscasal	x16, x18, \[x25\]
+.*:	59600822 	rcwscasl	x0, x2, \[x1\]
+.*:	59600832 	rcwscasl	x0, x18, \[x1\]
+.*:	59600902 	rcwscasl	x0, x2, \[x8\]
+.*:	59600912 	rcwscasl	x0, x18, \[x8\]
+.*:	59600a22 	rcwscasl	x0, x2, \[x17\]
+.*:	59600a32 	rcwscasl	x0, x18, \[x17\]
+.*:	59600b22 	rcwscasl	x0, x2, \[x25\]
+.*:	59600b32 	rcwscasl	x0, x18, \[x25\]
+.*:	59700822 	rcwscasl	x16, x2, \[x1\]
+.*:	59700832 	rcwscasl	x16, x18, \[x1\]
+.*:	59700902 	rcwscasl	x16, x2, \[x8\]
+.*:	59700912 	rcwscasl	x16, x18, \[x8\]
+.*:	59700a22 	rcwscasl	x16, x2, \[x17\]
+.*:	59700a32 	rcwscasl	x16, x18, \[x17\]
+.*:	59700b22 	rcwscasl	x16, x2, \[x25\]
+.*:	59700b32 	rcwscasl	x16, x18, \[x25\]
+.*:	38209022 	rcwclr	x0, x2, \[x1\]
+.*:	38209032 	rcwclr	x0, x18, \[x1\]
+.*:	38209102 	rcwclr	x0, x2, \[x8\]
+.*:	38209112 	rcwclr	x0, x18, \[x8\]
+.*:	38209222 	rcwclr	x0, x2, \[x17\]
+.*:	38209232 	rcwclr	x0, x18, \[x17\]
+.*:	38209322 	rcwclr	x0, x2, \[x25\]
+.*:	38209332 	rcwclr	x0, x18, \[x25\]
+.*:	38309022 	rcwclr	x16, x2, \[x1\]
+.*:	38309032 	rcwclr	x16, x18, \[x1\]
+.*:	38309102 	rcwclr	x16, x2, \[x8\]
+.*:	38309112 	rcwclr	x16, x18, \[x8\]
+.*:	38309222 	rcwclr	x16, x2, \[x17\]
+.*:	38309232 	rcwclr	x16, x18, \[x17\]
+.*:	38309322 	rcwclr	x16, x2, \[x25\]
+.*:	38309332 	rcwclr	x16, x18, \[x25\]
+.*:	38a09022 	rcwclra	x0, x2, \[x1\]
+.*:	38a09032 	rcwclra	x0, x18, \[x1\]
+.*:	38a09102 	rcwclra	x0, x2, \[x8\]
+.*:	38a09112 	rcwclra	x0, x18, \[x8\]
+.*:	38a09222 	rcwclra	x0, x2, \[x17\]
+.*:	38a09232 	rcwclra	x0, x18, \[x17\]
+.*:	38a09322 	rcwclra	x0, x2, \[x25\]
+.*:	38a09332 	rcwclra	x0, x18, \[x25\]
+.*:	38b09022 	rcwclra	x16, x2, \[x1\]
+.*:	38b09032 	rcwclra	x16, x18, \[x1\]
+.*:	38b09102 	rcwclra	x16, x2, \[x8\]
+.*:	38b09112 	rcwclra	x16, x18, \[x8\]
+.*:	38b09222 	rcwclra	x16, x2, \[x17\]
+.*:	38b09232 	rcwclra	x16, x18, \[x17\]
+.*:	38b09322 	rcwclra	x16, x2, \[x25\]
+.*:	38b09332 	rcwclra	x16, x18, \[x25\]
+.*:	38e09022 	rcwclral	x0, x2, \[x1\]
+.*:	38e09032 	rcwclral	x0, x18, \[x1\]
+.*:	38e09102 	rcwclral	x0, x2, \[x8\]
+.*:	38e09112 	rcwclral	x0, x18, \[x8\]
+.*:	38e09222 	rcwclral	x0, x2, \[x17\]
+.*:	38e09232 	rcwclral	x0, x18, \[x17\]
+.*:	38e09322 	rcwclral	x0, x2, \[x25\]
+.*:	38e09332 	rcwclral	x0, x18, \[x25\]
+.*:	38f09022 	rcwclral	x16, x2, \[x1\]
+.*:	38f09032 	rcwclral	x16, x18, \[x1\]
+.*:	38f09102 	rcwclral	x16, x2, \[x8\]
+.*:	38f09112 	rcwclral	x16, x18, \[x8\]
+.*:	38f09222 	rcwclral	x16, x2, \[x17\]
+.*:	38f09232 	rcwclral	x16, x18, \[x17\]
+.*:	38f09322 	rcwclral	x16, x2, \[x25\]
+.*:	38f09332 	rcwclral	x16, x18, \[x25\]
+.*:	38609022 	rcwclrl	x0, x2, \[x1\]
+.*:	38609032 	rcwclrl	x0, x18, \[x1\]
+.*:	38609102 	rcwclrl	x0, x2, \[x8\]
+.*:	38609112 	rcwclrl	x0, x18, \[x8\]
+.*:	38609222 	rcwclrl	x0, x2, \[x17\]
+.*:	38609232 	rcwclrl	x0, x18, \[x17\]
+.*:	38609322 	rcwclrl	x0, x2, \[x25\]
+.*:	38609332 	rcwclrl	x0, x18, \[x25\]
+.*:	38709022 	rcwclrl	x16, x2, \[x1\]
+.*:	38709032 	rcwclrl	x16, x18, \[x1\]
+.*:	38709102 	rcwclrl	x16, x2, \[x8\]
+.*:	38709112 	rcwclrl	x16, x18, \[x8\]
+.*:	38709222 	rcwclrl	x16, x2, \[x17\]
+.*:	38709232 	rcwclrl	x16, x18, \[x17\]
+.*:	38709322 	rcwclrl	x16, x2, \[x25\]
+.*:	38709332 	rcwclrl	x16, x18, \[x25\]
+.*:	78209022 	rcwsclr	x0, x2, \[x1\]
+.*:	78209032 	rcwsclr	x0, x18, \[x1\]
+.*:	78209102 	rcwsclr	x0, x2, \[x8\]
+.*:	78209112 	rcwsclr	x0, x18, \[x8\]
+.*:	78209222 	rcwsclr	x0, x2, \[x17\]
+.*:	78209232 	rcwsclr	x0, x18, \[x17\]
+.*:	78209322 	rcwsclr	x0, x2, \[x25\]
+.*:	78209332 	rcwsclr	x0, x18, \[x25\]
+.*:	78309022 	rcwsclr	x16, x2, \[x1\]
+.*:	78309032 	rcwsclr	x16, x18, \[x1\]
+.*:	78309102 	rcwsclr	x16, x2, \[x8\]
+.*:	78309112 	rcwsclr	x16, x18, \[x8\]
+.*:	78309222 	rcwsclr	x16, x2, \[x17\]
+.*:	78309232 	rcwsclr	x16, x18, \[x17\]
+.*:	78309322 	rcwsclr	x16, x2, \[x25\]
+.*:	78309332 	rcwsclr	x16, x18, \[x25\]
+.*:	78a09022 	rcwsclra	x0, x2, \[x1\]
+.*:	78a09032 	rcwsclra	x0, x18, \[x1\]
+.*:	78a09102 	rcwsclra	x0, x2, \[x8\]
+.*:	78a09112 	rcwsclra	x0, x18, \[x8\]
+.*:	78a09222 	rcwsclra	x0, x2, \[x17\]
+.*:	78a09232 	rcwsclra	x0, x18, \[x17\]
+.*:	78a09322 	rcwsclra	x0, x2, \[x25\]
+.*:	78a09332 	rcwsclra	x0, x18, \[x25\]
+.*:	78b09022 	rcwsclra	x16, x2, \[x1\]
+.*:	78b09032 	rcwsclra	x16, x18, \[x1\]
+.*:	78b09102 	rcwsclra	x16, x2, \[x8\]
+.*:	78b09112 	rcwsclra	x16, x18, \[x8\]
+.*:	78b09222 	rcwsclra	x16, x2, \[x17\]
+.*:	78b09232 	rcwsclra	x16, x18, \[x17\]
+.*:	78b09322 	rcwsclra	x16, x2, \[x25\]
+.*:	78b09332 	rcwsclra	x16, x18, \[x25\]
+.*:	78e09022 	rcwsclral	x0, x2, \[x1\]
+.*:	78e09032 	rcwsclral	x0, x18, \[x1\]
+.*:	78e09102 	rcwsclral	x0, x2, \[x8\]
+.*:	78e09112 	rcwsclral	x0, x18, \[x8\]
+.*:	78e09222 	rcwsclral	x0, x2, \[x17\]
+.*:	78e09232 	rcwsclral	x0, x18, \[x17\]
+.*:	78e09322 	rcwsclral	x0, x2, \[x25\]
+.*:	78e09332 	rcwsclral	x0, x18, \[x25\]
+.*:	78f09022 	rcwsclral	x16, x2, \[x1\]
+.*:	78f09032 	rcwsclral	x16, x18, \[x1\]
+.*:	78f09102 	rcwsclral	x16, x2, \[x8\]
+.*:	78f09112 	rcwsclral	x16, x18, \[x8\]
+.*:	78f09222 	rcwsclral	x16, x2, \[x17\]
+.*:	78f09232 	rcwsclral	x16, x18, \[x17\]
+.*:	78f09322 	rcwsclral	x16, x2, \[x25\]
+.*:	78f09332 	rcwsclral	x16, x18, \[x25\]
+.*:	78609022 	rcwsclrl	x0, x2, \[x1\]
+.*:	78609032 	rcwsclrl	x0, x18, \[x1\]
+.*:	78609102 	rcwsclrl	x0, x2, \[x8\]
+.*:	78609112 	rcwsclrl	x0, x18, \[x8\]
+.*:	78609222 	rcwsclrl	x0, x2, \[x17\]
+.*:	78609232 	rcwsclrl	x0, x18, \[x17\]
+.*:	78609322 	rcwsclrl	x0, x2, \[x25\]
+.*:	78609332 	rcwsclrl	x0, x18, \[x25\]
+.*:	78709022 	rcwsclrl	x16, x2, \[x1\]
+.*:	78709032 	rcwsclrl	x16, x18, \[x1\]
+.*:	78709102 	rcwsclrl	x16, x2, \[x8\]
+.*:	78709112 	rcwsclrl	x16, x18, \[x8\]
+.*:	78709222 	rcwsclrl	x16, x2, \[x17\]
+.*:	78709232 	rcwsclrl	x16, x18, \[x17\]
+.*:	78709322 	rcwsclrl	x16, x2, \[x25\]
+.*:	78709332 	rcwsclrl	x16, x18, \[x25\]
+.*:	3820a022 	rcwswp	x0, x2, \[x1\]
+.*:	3820a032 	rcwswp	x0, x18, \[x1\]
+.*:	3820a102 	rcwswp	x0, x2, \[x8\]
+.*:	3820a112 	rcwswp	x0, x18, \[x8\]
+.*:	3820a222 	rcwswp	x0, x2, \[x17\]
+.*:	3820a232 	rcwswp	x0, x18, \[x17\]
+.*:	3820a322 	rcwswp	x0, x2, \[x25\]
+.*:	3820a332 	rcwswp	x0, x18, \[x25\]
+.*:	3830a022 	rcwswp	x16, x2, \[x1\]
+.*:	3830a032 	rcwswp	x16, x18, \[x1\]
+.*:	3830a102 	rcwswp	x16, x2, \[x8\]
+.*:	3830a112 	rcwswp	x16, x18, \[x8\]
+.*:	3830a222 	rcwswp	x16, x2, \[x17\]
+.*:	3830a232 	rcwswp	x16, x18, \[x17\]
+.*:	3830a322 	rcwswp	x16, x2, \[x25\]
+.*:	3830a332 	rcwswp	x16, x18, \[x25\]
+.*:	38a0a022 	rcwswpa	x0, x2, \[x1\]
+.*:	38a0a032 	rcwswpa	x0, x18, \[x1\]
+.*:	38a0a102 	rcwswpa	x0, x2, \[x8\]
+.*:	38a0a112 	rcwswpa	x0, x18, \[x8\]
+.*:	38a0a222 	rcwswpa	x0, x2, \[x17\]
+.*:	38a0a232 	rcwswpa	x0, x18, \[x17\]
+.*:	38a0a322 	rcwswpa	x0, x2, \[x25\]
+.*:	38a0a332 	rcwswpa	x0, x18, \[x25\]
+.*:	38b0a022 	rcwswpa	x16, x2, \[x1\]
+.*:	38b0a032 	rcwswpa	x16, x18, \[x1\]
+.*:	38b0a102 	rcwswpa	x16, x2, \[x8\]
+.*:	38b0a112 	rcwswpa	x16, x18, \[x8\]
+.*:	38b0a222 	rcwswpa	x16, x2, \[x17\]
+.*:	38b0a232 	rcwswpa	x16, x18, \[x17\]
+.*:	38b0a322 	rcwswpa	x16, x2, \[x25\]
+.*:	38b0a332 	rcwswpa	x16, x18, \[x25\]
+.*:	38e0a022 	rcwswpal	x0, x2, \[x1\]
+.*:	38e0a032 	rcwswpal	x0, x18, \[x1\]
+.*:	38e0a102 	rcwswpal	x0, x2, \[x8\]
+.*:	38e0a112 	rcwswpal	x0, x18, \[x8\]
+.*:	38e0a222 	rcwswpal	x0, x2, \[x17\]
+.*:	38e0a232 	rcwswpal	x0, x18, \[x17\]
+.*:	38e0a322 	rcwswpal	x0, x2, \[x25\]
+.*:	38e0a332 	rcwswpal	x0, x18, \[x25\]
+.*:	38f0a022 	rcwswpal	x16, x2, \[x1\]
+.*:	38f0a032 	rcwswpal	x16, x18, \[x1\]
+.*:	38f0a102 	rcwswpal	x16, x2, \[x8\]
+.*:	38f0a112 	rcwswpal	x16, x18, \[x8\]
+.*:	38f0a222 	rcwswpal	x16, x2, \[x17\]
+.*:	38f0a232 	rcwswpal	x16, x18, \[x17\]
+.*:	38f0a322 	rcwswpal	x16, x2, \[x25\]
+.*:	38f0a332 	rcwswpal	x16, x18, \[x25\]
+.*:	3860a022 	rcwswpl	x0, x2, \[x1\]
+.*:	3860a032 	rcwswpl	x0, x18, \[x1\]
+.*:	3860a102 	rcwswpl	x0, x2, \[x8\]
+.*:	3860a112 	rcwswpl	x0, x18, \[x8\]
+.*:	3860a222 	rcwswpl	x0, x2, \[x17\]
+.*:	3860a232 	rcwswpl	x0, x18, \[x17\]
+.*:	3860a322 	rcwswpl	x0, x2, \[x25\]
+.*:	3860a332 	rcwswpl	x0, x18, \[x25\]
+.*:	3870a022 	rcwswpl	x16, x2, \[x1\]
+.*:	3870a032 	rcwswpl	x16, x18, \[x1\]
+.*:	3870a102 	rcwswpl	x16, x2, \[x8\]
+.*:	3870a112 	rcwswpl	x16, x18, \[x8\]
+.*:	3870a222 	rcwswpl	x16, x2, \[x17\]
+.*:	3870a232 	rcwswpl	x16, x18, \[x17\]
+.*:	3870a322 	rcwswpl	x16, x2, \[x25\]
+.*:	3870a332 	rcwswpl	x16, x18, \[x25\]
+.*:	7820a022 	rcwsswp	x0, x2, \[x1\]
+.*:	7820a032 	rcwsswp	x0, x18, \[x1\]
+.*:	7820a102 	rcwsswp	x0, x2, \[x8\]
+.*:	7820a112 	rcwsswp	x0, x18, \[x8\]
+.*:	7820a222 	rcwsswp	x0, x2, \[x17\]
+.*:	7820a232 	rcwsswp	x0, x18, \[x17\]
+.*:	7820a322 	rcwsswp	x0, x2, \[x25\]
+.*:	7820a332 	rcwsswp	x0, x18, \[x25\]
+.*:	7830a022 	rcwsswp	x16, x2, \[x1\]
+.*:	7830a032 	rcwsswp	x16, x18, \[x1\]
+.*:	7830a102 	rcwsswp	x16, x2, \[x8\]
+.*:	7830a112 	rcwsswp	x16, x18, \[x8\]
+.*:	7830a222 	rcwsswp	x16, x2, \[x17\]
+.*:	7830a232 	rcwsswp	x16, x18, \[x17\]
+.*:	7830a322 	rcwsswp	x16, x2, \[x25\]
+.*:	7830a332 	rcwsswp	x16, x18, \[x25\]
+.*:	78a0a022 	rcwsswpa	x0, x2, \[x1\]
+.*:	78a0a032 	rcwsswpa	x0, x18, \[x1\]
+.*:	78a0a102 	rcwsswpa	x0, x2, \[x8\]
+.*:	78a0a112 	rcwsswpa	x0, x18, \[x8\]
+.*:	78a0a222 	rcwsswpa	x0, x2, \[x17\]
+.*:	78a0a232 	rcwsswpa	x0, x18, \[x17\]
+.*:	78a0a322 	rcwsswpa	x0, x2, \[x25\]
+.*:	78a0a332 	rcwsswpa	x0, x18, \[x25\]
+.*:	78b0a022 	rcwsswpa	x16, x2, \[x1\]
+.*:	78b0a032 	rcwsswpa	x16, x18, \[x1\]
+.*:	78b0a102 	rcwsswpa	x16, x2, \[x8\]
+.*:	78b0a112 	rcwsswpa	x16, x18, \[x8\]
+.*:	78b0a222 	rcwsswpa	x16, x2, \[x17\]
+.*:	78b0a232 	rcwsswpa	x16, x18, \[x17\]
+.*:	78b0a322 	rcwsswpa	x16, x2, \[x25\]
+.*:	78b0a332 	rcwsswpa	x16, x18, \[x25\]
+.*:	78e0a022 	rcwsswpal	x0, x2, \[x1\]
+.*:	78e0a032 	rcwsswpal	x0, x18, \[x1\]
+.*:	78e0a102 	rcwsswpal	x0, x2, \[x8\]
+.*:	78e0a112 	rcwsswpal	x0, x18, \[x8\]
+.*:	78e0a222 	rcwsswpal	x0, x2, \[x17\]
+.*:	78e0a232 	rcwsswpal	x0, x18, \[x17\]
+.*:	78e0a322 	rcwsswpal	x0, x2, \[x25\]
+.*:	78e0a332 	rcwsswpal	x0, x18, \[x25\]
+.*:	78f0a022 	rcwsswpal	x16, x2, \[x1\]
+.*:	78f0a032 	rcwsswpal	x16, x18, \[x1\]
+.*:	78f0a102 	rcwsswpal	x16, x2, \[x8\]
+.*:	78f0a112 	rcwsswpal	x16, x18, \[x8\]
+.*:	78f0a222 	rcwsswpal	x16, x2, \[x17\]
+.*:	78f0a232 	rcwsswpal	x16, x18, \[x17\]
+.*:	78f0a322 	rcwsswpal	x16, x2, \[x25\]
+.*:	78f0a332 	rcwsswpal	x16, x18, \[x25\]
+.*:	7860a022 	rcwsswpl	x0, x2, \[x1\]
+.*:	7860a032 	rcwsswpl	x0, x18, \[x1\]
+.*:	7860a102 	rcwsswpl	x0, x2, \[x8\]
+.*:	7860a112 	rcwsswpl	x0, x18, \[x8\]
+.*:	7860a222 	rcwsswpl	x0, x2, \[x17\]
+.*:	7860a232 	rcwsswpl	x0, x18, \[x17\]
+.*:	7860a322 	rcwsswpl	x0, x2, \[x25\]
+.*:	7860a332 	rcwsswpl	x0, x18, \[x25\]
+.*:	7870a022 	rcwsswpl	x16, x2, \[x1\]
+.*:	7870a032 	rcwsswpl	x16, x18, \[x1\]
+.*:	7870a102 	rcwsswpl	x16, x2, \[x8\]
+.*:	7870a112 	rcwsswpl	x16, x18, \[x8\]
+.*:	7870a222 	rcwsswpl	x16, x2, \[x17\]
+.*:	7870a232 	rcwsswpl	x16, x18, \[x17\]
+.*:	7870a322 	rcwsswpl	x16, x2, \[x25\]
+.*:	7870a332 	rcwsswpl	x16, x18, \[x25\]
+.*:	3820b022 	rcwset	x0, x2, \[x1\]
+.*:	3820b032 	rcwset	x0, x18, \[x1\]
+.*:	3820b102 	rcwset	x0, x2, \[x8\]
+.*:	3820b112 	rcwset	x0, x18, \[x8\]
+.*:	3820b222 	rcwset	x0, x2, \[x17\]
+.*:	3820b232 	rcwset	x0, x18, \[x17\]
+.*:	3820b322 	rcwset	x0, x2, \[x25\]
+.*:	3820b332 	rcwset	x0, x18, \[x25\]
+.*:	3830b022 	rcwset	x16, x2, \[x1\]
+.*:	3830b032 	rcwset	x16, x18, \[x1\]
+.*:	3830b102 	rcwset	x16, x2, \[x8\]
+.*:	3830b112 	rcwset	x16, x18, \[x8\]
+.*:	3830b222 	rcwset	x16, x2, \[x17\]
+.*:	3830b232 	rcwset	x16, x18, \[x17\]
+.*:	3830b322 	rcwset	x16, x2, \[x25\]
+.*:	3830b332 	rcwset	x16, x18, \[x25\]
+.*:	38a0b022 	rcwseta	x0, x2, \[x1\]
+.*:	38a0b032 	rcwseta	x0, x18, \[x1\]
+.*:	38a0b102 	rcwseta	x0, x2, \[x8\]
+.*:	38a0b112 	rcwseta	x0, x18, \[x8\]
+.*:	38a0b222 	rcwseta	x0, x2, \[x17\]
+.*:	38a0b232 	rcwseta	x0, x18, \[x17\]
+.*:	38a0b322 	rcwseta	x0, x2, \[x25\]
+.*:	38a0b332 	rcwseta	x0, x18, \[x25\]
+.*:	38b0b022 	rcwseta	x16, x2, \[x1\]
+.*:	38b0b032 	rcwseta	x16, x18, \[x1\]
+.*:	38b0b102 	rcwseta	x16, x2, \[x8\]
+.*:	38b0b112 	rcwseta	x16, x18, \[x8\]
+.*:	38b0b222 	rcwseta	x16, x2, \[x17\]
+.*:	38b0b232 	rcwseta	x16, x18, \[x17\]
+.*:	38b0b322 	rcwseta	x16, x2, \[x25\]
+.*:	38b0b332 	rcwseta	x16, x18, \[x25\]
+.*:	38e0b022 	rcwsetal	x0, x2, \[x1\]
+.*:	38e0b032 	rcwsetal	x0, x18, \[x1\]
+.*:	38e0b102 	rcwsetal	x0, x2, \[x8\]
+.*:	38e0b112 	rcwsetal	x0, x18, \[x8\]
+.*:	38e0b222 	rcwsetal	x0, x2, \[x17\]
+.*:	38e0b232 	rcwsetal	x0, x18, \[x17\]
+.*:	38e0b322 	rcwsetal	x0, x2, \[x25\]
+.*:	38e0b332 	rcwsetal	x0, x18, \[x25\]
+.*:	38f0b022 	rcwsetal	x16, x2, \[x1\]
+.*:	38f0b032 	rcwsetal	x16, x18, \[x1\]
+.*:	38f0b102 	rcwsetal	x16, x2, \[x8\]
+.*:	38f0b112 	rcwsetal	x16, x18, \[x8\]
+.*:	38f0b222 	rcwsetal	x16, x2, \[x17\]
+.*:	38f0b232 	rcwsetal	x16, x18, \[x17\]
+.*:	38f0b322 	rcwsetal	x16, x2, \[x25\]
+.*:	38f0b332 	rcwsetal	x16, x18, \[x25\]
+.*:	3860b022 	rcwsetl	x0, x2, \[x1\]
+.*:	3860b032 	rcwsetl	x0, x18, \[x1\]
+.*:	3860b102 	rcwsetl	x0, x2, \[x8\]
+.*:	3860b112 	rcwsetl	x0, x18, \[x8\]
+.*:	3860b222 	rcwsetl	x0, x2, \[x17\]
+.*:	3860b232 	rcwsetl	x0, x18, \[x17\]
+.*:	3860b322 	rcwsetl	x0, x2, \[x25\]
+.*:	3860b332 	rcwsetl	x0, x18, \[x25\]
+.*:	3870b022 	rcwsetl	x16, x2, \[x1\]
+.*:	3870b032 	rcwsetl	x16, x18, \[x1\]
+.*:	3870b102 	rcwsetl	x16, x2, \[x8\]
+.*:	3870b112 	rcwsetl	x16, x18, \[x8\]
+.*:	3870b222 	rcwsetl	x16, x2, \[x17\]
+.*:	3870b232 	rcwsetl	x16, x18, \[x17\]
+.*:	3870b322 	rcwsetl	x16, x2, \[x25\]
+.*:	3870b332 	rcwsetl	x16, x18, \[x25\]
+.*:	7820b022 	rcwsset	x0, x2, \[x1\]
+.*:	7820b032 	rcwsset	x0, x18, \[x1\]
+.*:	7820b102 	rcwsset	x0, x2, \[x8\]
+.*:	7820b112 	rcwsset	x0, x18, \[x8\]
+.*:	7820b222 	rcwsset	x0, x2, \[x17\]
+.*:	7820b232 	rcwsset	x0, x18, \[x17\]
+.*:	7820b322 	rcwsset	x0, x2, \[x25\]
+.*:	7820b332 	rcwsset	x0, x18, \[x25\]
+.*:	7830b022 	rcwsset	x16, x2, \[x1\]
+.*:	7830b032 	rcwsset	x16, x18, \[x1\]
+.*:	7830b102 	rcwsset	x16, x2, \[x8\]
+.*:	7830b112 	rcwsset	x16, x18, \[x8\]
+.*:	7830b222 	rcwsset	x16, x2, \[x17\]
+.*:	7830b232 	rcwsset	x16, x18, \[x17\]
+.*:	7830b322 	rcwsset	x16, x2, \[x25\]
+.*:	7830b332 	rcwsset	x16, x18, \[x25\]
+.*:	78a0b022 	rcwsseta	x0, x2, \[x1\]
+.*:	78a0b032 	rcwsseta	x0, x18, \[x1\]
+.*:	78a0b102 	rcwsseta	x0, x2, \[x8\]
+.*:	78a0b112 	rcwsseta	x0, x18, \[x8\]
+.*:	78a0b222 	rcwsseta	x0, x2, \[x17\]
+.*:	78a0b232 	rcwsseta	x0, x18, \[x17\]
+.*:	78a0b322 	rcwsseta	x0, x2, \[x25\]
+.*:	78a0b332 	rcwsseta	x0, x18, \[x25\]
+.*:	78b0b022 	rcwsseta	x16, x2, \[x1\]
+.*:	78b0b032 	rcwsseta	x16, x18, \[x1\]
+.*:	78b0b102 	rcwsseta	x16, x2, \[x8\]
+.*:	78b0b112 	rcwsseta	x16, x18, \[x8\]
+.*:	78b0b222 	rcwsseta	x16, x2, \[x17\]
+.*:	78b0b232 	rcwsseta	x16, x18, \[x17\]
+.*:	78b0b322 	rcwsseta	x16, x2, \[x25\]
+.*:	78b0b332 	rcwsseta	x16, x18, \[x25\]
+.*:	78e0b022 	rcwssetal	x0, x2, \[x1\]
+.*:	78e0b032 	rcwssetal	x0, x18, \[x1\]
+.*:	78e0b102 	rcwssetal	x0, x2, \[x8\]
+.*:	78e0b112 	rcwssetal	x0, x18, \[x8\]
+.*:	78e0b222 	rcwssetal	x0, x2, \[x17\]
+.*:	78e0b232 	rcwssetal	x0, x18, \[x17\]
+.*:	78e0b322 	rcwssetal	x0, x2, \[x25\]
+.*:	78e0b332 	rcwssetal	x0, x18, \[x25\]
+.*:	78f0b022 	rcwssetal	x16, x2, \[x1\]
+.*:	78f0b032 	rcwssetal	x16, x18, \[x1\]
+.*:	78f0b102 	rcwssetal	x16, x2, \[x8\]
+.*:	78f0b112 	rcwssetal	x16, x18, \[x8\]
+.*:	78f0b222 	rcwssetal	x16, x2, \[x17\]
+.*:	78f0b232 	rcwssetal	x16, x18, \[x17\]
+.*:	78f0b322 	rcwssetal	x16, x2, \[x25\]
+.*:	78f0b332 	rcwssetal	x16, x18, \[x25\]
+.*:	7860b022 	rcwssetl	x0, x2, \[x1\]
+.*:	7860b032 	rcwssetl	x0, x18, \[x1\]
+.*:	7860b102 	rcwssetl	x0, x2, \[x8\]
+.*:	7860b112 	rcwssetl	x0, x18, \[x8\]
+.*:	7860b222 	rcwssetl	x0, x2, \[x17\]
+.*:	7860b232 	rcwssetl	x0, x18, \[x17\]
+.*:	7860b322 	rcwssetl	x0, x2, \[x25\]
+.*:	7860b332 	rcwssetl	x0, x18, \[x25\]
+.*:	7870b022 	rcwssetl	x16, x2, \[x1\]
+.*:	7870b032 	rcwssetl	x16, x18, \[x1\]
+.*:	7870b102 	rcwssetl	x16, x2, \[x8\]
+.*:	7870b112 	rcwssetl	x16, x18, \[x8\]
+.*:	7870b222 	rcwssetl	x16, x2, \[x17\]
+.*:	7870b232 	rcwssetl	x16, x18, \[x17\]
+.*:	7870b322 	rcwssetl	x16, x2, \[x25\]
+.*:	7870b332 	rcwssetl	x16, x18, \[x25\]
diff --git a/gas/testsuite/gas/aarch64/the-1.s b/gas/testsuite/gas/aarch64/the-1.s
new file mode 100644
index 0000000000000000000000000000000000000000..74323738ea87c26f411300f86093ac48f8a32a07
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/the-1.s
@@ -0,0 +1,10 @@
+	.text
+	.irp op cas, casa, casal, casl, scas, scasa, scasal, scasl, clr, clra, clral, clrl, sclr, sclra, sclral, sclrl, swp, swpa, swpal, swpl, sswp, sswpa, sswpal, sswpl, set, seta, setal, setl, sset, sseta, ssetal, ssetl
+        .irp reg1 x0, x16
+        .irp reg2 x1, x8, x17, x25
+        .irp reg3 x2, x18
+	rcw\op \reg1, \reg3, [\reg2]
+	.endr
+	.endr
+	.endr
+	.endr
diff --git a/gas/testsuite/gas/aarch64/the-bad-1.d b/gas/testsuite/gas/aarch64/the-bad-1.d
new file mode 100644
index 0000000000000000000000000000000000000000..238ce5991f0ef515eec71034cbd3e3f6b1f2b14d
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/the-bad-1.d
@@ -0,0 +1,4 @@
+#name: Illegal test of FEAT_THE instructions.
+#source: the-1.s
+#as: -march=armv9.4-a
+#error_output: the-bad-1.l
diff --git a/gas/testsuite/gas/aarch64/the-bad-1.l b/gas/testsuite/gas/aarch64/the-bad-1.l
new file mode 100644
index 0000000000000000000000000000000000000000..99e49f35f9f7969f0783291fe3f79878b48032bc
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/the-bad-1.l
@@ -0,0 +1,513 @@
+[^ :]+: Assembler messages:
+.*: Error: selected processor does not support `rcwcas x0,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwcas x0,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwcas x0,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwcas x0,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwcas x0,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwcas x0,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwcas x0,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwcas x0,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwcas x16,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwcas x16,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwcas x16,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwcas x16,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwcas x16,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwcas x16,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwcas x16,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwcas x16,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwcasa x0,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwcasa x0,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwcasa x0,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwcasa x0,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwcasa x0,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwcasa x0,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwcasa x0,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwcasa x0,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwcasa x16,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwcasa x16,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwcasa x16,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwcasa x16,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwcasa x16,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwcasa x16,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwcasa x16,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwcasa x16,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwcasal x0,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwcasal x0,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwcasal x0,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwcasal x0,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwcasal x0,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwcasal x0,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwcasal x0,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwcasal x0,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwcasal x16,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwcasal x16,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwcasal x16,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwcasal x16,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwcasal x16,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwcasal x16,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwcasal x16,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwcasal x16,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwcasl x0,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwcasl x0,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwcasl x0,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwcasl x0,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwcasl x0,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwcasl x0,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwcasl x0,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwcasl x0,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwcasl x16,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwcasl x16,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwcasl x16,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwcasl x16,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwcasl x16,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwcasl x16,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwcasl x16,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwcasl x16,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwscas x0,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwscas x0,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwscas x0,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwscas x0,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwscas x0,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwscas x0,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwscas x0,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwscas x0,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwscas x16,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwscas x16,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwscas x16,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwscas x16,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwscas x16,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwscas x16,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwscas x16,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwscas x16,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwscasa x0,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwscasa x0,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwscasa x0,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwscasa x0,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwscasa x0,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwscasa x0,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwscasa x0,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwscasa x0,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwscasa x16,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwscasa x16,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwscasa x16,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwscasa x16,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwscasa x16,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwscasa x16,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwscasa x16,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwscasa x16,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwscasal x0,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwscasal x0,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwscasal x0,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwscasal x0,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwscasal x0,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwscasal x0,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwscasal x0,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwscasal x0,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwscasal x16,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwscasal x16,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwscasal x16,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwscasal x16,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwscasal x16,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwscasal x16,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwscasal x16,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwscasal x16,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwscasl x0,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwscasl x0,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwscasl x0,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwscasl x0,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwscasl x0,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwscasl x0,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwscasl x0,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwscasl x0,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwscasl x16,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwscasl x16,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwscasl x16,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwscasl x16,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwscasl x16,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwscasl x16,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwscasl x16,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwscasl x16,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwclr x0,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwclr x0,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwclr x0,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwclr x0,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwclr x0,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwclr x0,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwclr x0,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwclr x0,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwclr x16,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwclr x16,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwclr x16,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwclr x16,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwclr x16,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwclr x16,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwclr x16,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwclr x16,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwclra x0,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwclra x0,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwclra x0,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwclra x0,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwclra x0,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwclra x0,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwclra x0,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwclra x0,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwclra x16,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwclra x16,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwclra x16,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwclra x16,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwclra x16,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwclra x16,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwclra x16,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwclra x16,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwclral x0,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwclral x0,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwclral x0,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwclral x0,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwclral x0,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwclral x0,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwclral x0,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwclral x0,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwclral x16,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwclral x16,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwclral x16,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwclral x16,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwclral x16,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwclral x16,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwclral x16,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwclral x16,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwclrl x0,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwclrl x0,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwclrl x0,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwclrl x0,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwclrl x0,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwclrl x0,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwclrl x0,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwclrl x0,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwclrl x16,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwclrl x16,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwclrl x16,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwclrl x16,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwclrl x16,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwclrl x16,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwclrl x16,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwclrl x16,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwsclr x0,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwsclr x0,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwsclr x0,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwsclr x0,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwsclr x0,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwsclr x0,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwsclr x0,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwsclr x0,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwsclr x16,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwsclr x16,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwsclr x16,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwsclr x16,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwsclr x16,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwsclr x16,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwsclr x16,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwsclr x16,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwsclra x0,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwsclra x0,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwsclra x0,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwsclra x0,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwsclra x0,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwsclra x0,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwsclra x0,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwsclra x0,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwsclra x16,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwsclra x16,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwsclra x16,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwsclra x16,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwsclra x16,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwsclra x16,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwsclra x16,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwsclra x16,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwsclral x0,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwsclral x0,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwsclral x0,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwsclral x0,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwsclral x0,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwsclral x0,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwsclral x0,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwsclral x0,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwsclral x16,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwsclral x16,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwsclral x16,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwsclral x16,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwsclral x16,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwsclral x16,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwsclral x16,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwsclral x16,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwsclrl x0,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwsclrl x0,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwsclrl x0,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwsclrl x0,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwsclrl x0,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwsclrl x0,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwsclrl x0,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwsclrl x0,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwsclrl x16,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwsclrl x16,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwsclrl x16,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwsclrl x16,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwsclrl x16,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwsclrl x16,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwsclrl x16,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwsclrl x16,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwswp x0,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwswp x0,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwswp x0,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwswp x0,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwswp x0,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwswp x0,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwswp x0,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwswp x0,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwswp x16,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwswp x16,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwswp x16,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwswp x16,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwswp x16,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwswp x16,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwswp x16,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwswp x16,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwswpa x0,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwswpa x0,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwswpa x0,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwswpa x0,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwswpa x0,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwswpa x0,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwswpa x0,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwswpa x0,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwswpa x16,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwswpa x16,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwswpa x16,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwswpa x16,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwswpa x16,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwswpa x16,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwswpa x16,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwswpa x16,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwswpal x0,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwswpal x0,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwswpal x0,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwswpal x0,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwswpal x0,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwswpal x0,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwswpal x0,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwswpal x0,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwswpal x16,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwswpal x16,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwswpal x16,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwswpal x16,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwswpal x16,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwswpal x16,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwswpal x16,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwswpal x16,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwswpl x0,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwswpl x0,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwswpl x0,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwswpl x0,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwswpl x0,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwswpl x0,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwswpl x0,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwswpl x0,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwswpl x16,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwswpl x16,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwswpl x16,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwswpl x16,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwswpl x16,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwswpl x16,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwswpl x16,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwswpl x16,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwsswp x0,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwsswp x0,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwsswp x0,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwsswp x0,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwsswp x0,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwsswp x0,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwsswp x0,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwsswp x0,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwsswp x16,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwsswp x16,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwsswp x16,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwsswp x16,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwsswp x16,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwsswp x16,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwsswp x16,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwsswp x16,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwsswpa x0,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwsswpa x0,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwsswpa x0,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwsswpa x0,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwsswpa x0,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwsswpa x0,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwsswpa x0,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwsswpa x0,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwsswpa x16,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwsswpa x16,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwsswpa x16,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwsswpa x16,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwsswpa x16,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwsswpa x16,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwsswpa x16,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwsswpa x16,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwsswpal x0,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwsswpal x0,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwsswpal x0,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwsswpal x0,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwsswpal x0,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwsswpal x0,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwsswpal x0,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwsswpal x0,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwsswpal x16,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwsswpal x16,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwsswpal x16,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwsswpal x16,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwsswpal x16,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwsswpal x16,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwsswpal x16,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwsswpal x16,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwsswpl x0,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwsswpl x0,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwsswpl x0,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwsswpl x0,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwsswpl x0,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwsswpl x0,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwsswpl x0,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwsswpl x0,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwsswpl x16,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwsswpl x16,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwsswpl x16,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwsswpl x16,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwsswpl x16,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwsswpl x16,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwsswpl x16,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwsswpl x16,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwset x0,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwset x0,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwset x0,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwset x0,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwset x0,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwset x0,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwset x0,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwset x0,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwset x16,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwset x16,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwset x16,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwset x16,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwset x16,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwset x16,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwset x16,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwset x16,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwseta x0,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwseta x0,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwseta x0,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwseta x0,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwseta x0,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwseta x0,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwseta x0,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwseta x0,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwseta x16,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwseta x16,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwseta x16,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwseta x16,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwseta x16,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwseta x16,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwseta x16,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwseta x16,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwsetal x0,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwsetal x0,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwsetal x0,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwsetal x0,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwsetal x0,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwsetal x0,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwsetal x0,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwsetal x0,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwsetal x16,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwsetal x16,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwsetal x16,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwsetal x16,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwsetal x16,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwsetal x16,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwsetal x16,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwsetal x16,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwsetl x0,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwsetl x0,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwsetl x0,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwsetl x0,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwsetl x0,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwsetl x0,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwsetl x0,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwsetl x0,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwsetl x16,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwsetl x16,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwsetl x16,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwsetl x16,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwsetl x16,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwsetl x16,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwsetl x16,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwsetl x16,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwsset x0,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwsset x0,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwsset x0,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwsset x0,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwsset x0,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwsset x0,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwsset x0,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwsset x0,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwsset x16,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwsset x16,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwsset x16,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwsset x16,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwsset x16,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwsset x16,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwsset x16,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwsset x16,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwsseta x0,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwsseta x0,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwsseta x0,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwsseta x0,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwsseta x0,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwsseta x0,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwsseta x0,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwsseta x0,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwsseta x16,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwsseta x16,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwsseta x16,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwsseta x16,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwsseta x16,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwsseta x16,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwsseta x16,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwsseta x16,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwssetal x0,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwssetal x0,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwssetal x0,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwssetal x0,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwssetal x0,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwssetal x0,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwssetal x0,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwssetal x0,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwssetal x16,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwssetal x16,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwssetal x16,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwssetal x16,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwssetal x16,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwssetal x16,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwssetal x16,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwssetal x16,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwssetl x0,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwssetl x0,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwssetl x0,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwssetl x0,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwssetl x0,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwssetl x0,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwssetl x0,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwssetl x0,x18,\[x25\]'
+.*: Error: selected processor does not support `rcwssetl x16,x2,\[x1\]'
+.*: Error: selected processor does not support `rcwssetl x16,x18,\[x1\]'
+.*: Error: selected processor does not support `rcwssetl x16,x2,\[x8\]'
+.*: Error: selected processor does not support `rcwssetl x16,x18,\[x8\]'
+.*: Error: selected processor does not support `rcwssetl x16,x2,\[x17\]'
+.*: Error: selected processor does not support `rcwssetl x16,x18,\[x17\]'
+.*: Error: selected processor does not support `rcwssetl x16,x2,\[x25\]'
+.*: Error: selected processor does not support `rcwssetl x16,x18,\[x25\]'
diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h
index 351477870b6e4a13ea29f1e3438c0b157168c90f..b717f46691ec98e5f89b0f3b207fac85353a0a43 100644
--- a/include/opcode/aarch64.h
+++ b/include/opcode/aarch64.h
@@ -959,6 +959,7 @@ enum aarch64_insn_class
   bfloat16,
   cssc,
   gcs,
+  the,
 };
 
 /* Opcode enumerators.  */
diff --git a/opcodes/aarch64-tbl.h b/opcodes/aarch64-tbl.h
index a4a5ec5e1bb2f7c012471a4f6932bacb152973eb..cf1f31c7d468b90ffc03c9a6f4df9fecac0a987a 100644
--- a/opcodes/aarch64-tbl.h
+++ b/opcodes/aarch64-tbl.h
@@ -1189,6 +1189,12 @@
   QLF5(X, X, X, X, NIL),	\
 }
 
+/* e.g. RCWCASP <Xt1>, <Xt1+1>, <Xt2>, <Xt2+1>, [<Xn|SP>{,#0}].  */
+#define QL_X4NIL		\
+{				\
+  QLF5(X, X, X, X, NIL),	\
+}
+
 /* e.g. STXP <Ws>, <Xt1>, <Xt2>, [<Xn|SP>{,#0}].  */
 #define QL_R3_LDST_EXC		\
 {				\
@@ -2604,6 +2610,10 @@ static const aarch64_feature_set aarch64_feature_ite =
   AARCH64_FEATURE (ITE);
 static const aarch64_feature_set aarch64_feature_d128 =
   AARCH64_FEATURE (D128);
+static const aarch64_feature_set aarch64_feature_the =
+  AARCH64_FEATURE (THE);
+static const aarch64_feature_set aarch64_feature_d128_the =
+  AARCH64_FEATURES (2, D128, THE);
 
 #define CORE		&aarch64_feature_v8
 #define FP		&aarch64_feature_fp
@@ -2668,6 +2678,8 @@ static const aarch64_feature_set aarch64_feature_d128 =
 #define GCS	  &aarch64_feature_gcs
 #define ITE	  &aarch64_feature_ite
 #define D128	  &aarch64_feature_d128
+#define THE	  &aarch64_feature_the
+#define D128_THE  &aarch64_feature_d128_the
 
 #define CORE_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS) \
   { NAME, OPCODE, MASK, CLASS, OP, CORE, OPS, QUALS, FLAGS, 0, 0, NULL }
@@ -2823,6 +2835,10 @@ static const aarch64_feature_set aarch64_feature_d128 =
   { NAME, OPCODE, MASK, gcs, 0, GCS, OPS, QUALS, FLAGS, 0, 0, NULL }
 #define D128_INSN(NAME,OPCODE,MASK,OPS,QUALS,FLAGS) \
   { NAME, OPCODE, MASK, ic_system, 0, D128, OPS, QUALS, FLAGS, 0, 0, NULL }
+#define THE_INSN(NAME,OPCODE,MASK,OPS,QUALS,FLAGS) \
+  { NAME, OPCODE, MASK, the, 0, THE, OPS, QUALS, FLAGS, 0, 0, NULL }
+#define D128_THE_INSN(NAME,OPCODE,MASK,OPS,QUALS,FLAGS) \
+  { NAME, OPCODE, MASK, the, 0, D128_THE, OPS, QUALS, FLAGS, 0, 0, NULL }
 
 #define MOPS_CPY_OP1_OP2_PME_INSN(NAME, OPCODE, MASK, FLAGS, CONSTRAINTS) \
   MOPS_INSN (NAME, OPCODE, MASK, 0, \
@@ -6154,6 +6170,108 @@ const struct aarch64_opcode aarch64_opcode_table[] =
 
   ITE_INSN ("trcit", 0xd50b72e0, 0xffffffe0, ic_system, OP1 (Rt), QL_I1X, F_ALIAS),
 
+/* Read check write compare and swap doubleword in memory instructions.  */
+  THE_INSN("rcwcas", 0x19200800, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+  THE_INSN("rcwcasa", 0x19a00800, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+  THE_INSN("rcwcasal", 0x19e00800, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+  THE_INSN("rcwcasl", 0x19600800, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+
+/* Read check write compare and swap quadword in memory instructions.  */
+  D128_THE_INSN("rcwcasp", 0x19200c00, 0xffe0fc00, OP5 (Rs, PAIRREG, Rt, PAIRREG, ADDR_SIMPLE), QL_X4NIL, 0),
+  D128_THE_INSN("rcwcaspa", 0x19a00c00, 0xffe0fc00, OP5 (Rs, PAIRREG, Rt, PAIRREG, ADDR_SIMPLE), QL_X4NIL, 0),
+  D128_THE_INSN("rcwcaspal", 0x19e00c00, 0xffe0fc00, OP5 (Rs, PAIRREG, Rt, PAIRREG, ADDR_SIMPLE), QL_X4NIL, 0),
+  D128_THE_INSN("rcwcaspl", 0x19600c00, 0xffe0fc00, OP5 (Rs, PAIRREG, Rt, PAIRREG, ADDR_SIMPLE), QL_X4NIL, 0),
+
+/* Read check write software compare and swap doubleword in memory
+   instructions.  */
+  THE_INSN("rcwscas", 0x59200800, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+  THE_INSN("rcwscasa", 0x59a00800, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+  THE_INSN("rcwscasal", 0x59e00800, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+  THE_INSN("rcwscasl", 0x59600800, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+
+/* Read check write software compare and swap quadword in memory
+   instructions.  */
+  D128_THE_INSN("rcwscasp", 0x59200c00, 0xffe0fc00, OP5 (Rs, PAIRREG, Rt, PAIRREG, ADDR_SIMPLE), QL_X4NIL, 0),
+  D128_THE_INSN("rcwscaspa", 0x59a00c00, 0xffe0fc00, OP5 (Rs, PAIRREG, Rt, PAIRREG, ADDR_SIMPLE), QL_X4NIL, 0),
+  D128_THE_INSN("rcwscaspal", 0x59e00c00, 0xffe0fc00, OP5 (Rs, PAIRREG, Rt, PAIRREG, ADDR_SIMPLE), QL_X4NIL, 0),
+  D128_THE_INSN("rcwscaspl", 0x59600c00, 0xffe0fc00, OP5 (Rs, PAIRREG, Rt, PAIRREG, ADDR_SIMPLE), QL_X4NIL, 0),
+
+/* Read check write atomic bit clear on doubleword in memory instructions.  */
+  THE_INSN("rcwclr", 0x38209000, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+  THE_INSN("rcwclra", 0x38a09000, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+  THE_INSN("rcwclral", 0x38e09000, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+  THE_INSN("rcwclrl", 0x38609000, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+
+/* Read check write atomic bit clear on quadword in memory instructions.  */
+  D128_THE_INSN("rcwclrp", 0x19209000, 0xffe0fc00, OP3 (Rt, Rs, ADDR_SIMPLE), QL_X2NIL, 0),
+  D128_THE_INSN("rcwclrpa", 0x19a09000, 0xffe0fc00, OP3 (Rt, Rs, ADDR_SIMPLE), QL_X2NIL, 0),
+  D128_THE_INSN("rcwclrpal", 0x19e09000, 0xffe0fc00, OP3 (Rt, Rs, ADDR_SIMPLE), QL_X2NIL, 0),
+  D128_THE_INSN("rcwclrpl", 0x19609000, 0xffe0fc00, OP3 (Rt, Rs, ADDR_SIMPLE), QL_X2NIL, 0),
+
+/* Read check write software atomic bit clear on doubleword in memory
+   instructions.  */
+  THE_INSN("rcwsclr", 0x78209000, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+  THE_INSN("rcwsclra", 0x78a09000, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+  THE_INSN("rcwsclral", 0x78e09000, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+  THE_INSN("rcwsclrl", 0x78609000, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+
+/* Read check write software atomic bit clear on quadword in memory
+   instructions.  */
+  D128_THE_INSN("rcwsclrp", 0x59209000, 0xffe0fc00, OP3 (Rt, Rs, ADDR_SIMPLE), QL_X2NIL, 0),
+  D128_THE_INSN("rcwsclrpa", 0x59a09000, 0xffe0fc00, OP3 (Rt, Rs, ADDR_SIMPLE), QL_X2NIL, 0),
+  D128_THE_INSN("rcwsclrpal", 0x59e09000, 0xffe0fc00, OP3 (Rt, Rs, ADDR_SIMPLE), QL_X2NIL, 0),
+  D128_THE_INSN("rcwsclrpl", 0x59609000, 0xffe0fc00, OP3 (Rt, Rs, ADDR_SIMPLE), QL_X2NIL, 0),
+
+/* Read check write atomic bit set on doubleword in memory instructions.  */
+  THE_INSN("rcwset", 0x3820b000, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+  THE_INSN("rcwseta", 0x38a0b000, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+  THE_INSN("rcwsetal", 0x38e0b000, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+  THE_INSN("rcwsetl", 0x3860b000, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+
+/* Read check write atomic bit set on quadword in memory instructions.  */
+  D128_THE_INSN("rcwsetp", 0x1920b000, 0xffe0fc00, OP3 (Rt, Rs, ADDR_SIMPLE), QL_X2NIL, 0),
+  D128_THE_INSN("rcwsetpa", 0x19a0b000, 0xffe0fc00, OP3 (Rt, Rs, ADDR_SIMPLE), QL_X2NIL, 0),
+  D128_THE_INSN("rcwsetpal", 0x19e0b000, 0xffe0fc00, OP3 (Rt, Rs, ADDR_SIMPLE), QL_X2NIL, 0),
+  D128_THE_INSN("rcwsetpl", 0x1960b000, 0xffe0fc00, OP3 (Rt, Rs, ADDR_SIMPLE), QL_X2NIL, 0),
+
+/* Read check write software atomic bit set on doubleword in memory
+   instructions.  */
+  THE_INSN("rcwsset", 0x7820b000, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+  THE_INSN("rcwsseta", 0x78a0b000, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+  THE_INSN("rcwssetal", 0x78e0b000, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+  THE_INSN("rcwssetl", 0x7860b000, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+
+/* Read check write software atomic bit set on quadword in memory
+   instructions.  */
+  D128_THE_INSN("rcwssetp", 0x5920b000, 0xffe0fc00, OP3 (Rt, Rs, ADDR_SIMPLE), QL_X2NIL, 0),
+  D128_THE_INSN("rcwssetpa", 0x59a0b000, 0xffe0fc00, OP3 (Rt, Rs, ADDR_SIMPLE), QL_X2NIL, 0),
+  D128_THE_INSN("rcwssetpal", 0x59e0b000, 0xffe0fc00, OP3 (Rt, Rs, ADDR_SIMPLE), QL_X2NIL, 0),
+  D128_THE_INSN("rcwssetpl", 0x5960b000, 0xffe0fc00, OP3 (Rt, Rs, ADDR_SIMPLE), QL_X2NIL, 0),
+
+/* Read check write swap doubleword in memory instructions.  */
+  THE_INSN("rcwswp", 0x3820a000, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+  THE_INSN("rcwswpa", 0x38a0a000, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+  THE_INSN("rcwswpal", 0x38e0a000, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+  THE_INSN("rcwswpl", 0x3860a000, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+
+/* Read check write swap quadword in memory instructions.  */
+  D128_THE_INSN("rcwswpp", 0x1920a000, 0xffe0fc00, OP3 (Rt, Rs, ADDR_SIMPLE), QL_X2NIL, 0),
+  D128_THE_INSN("rcwswppa", 0x19a0a000, 0xffe0fc00, OP3 (Rt, Rs, ADDR_SIMPLE), QL_X2NIL, 0),
+  D128_THE_INSN("rcwswppal", 0x19e0a000, 0xffe0fc00, OP3 (Rt, Rs, ADDR_SIMPLE), QL_X2NIL, 0),
+  D128_THE_INSN("rcwswppl", 0x1960a000, 0xffe0fc00, OP3 (Rt, Rs, ADDR_SIMPLE), QL_X2NIL, 0),
+
+/* Read check write software swap doubleword in memory instructions.  */
+  THE_INSN("rcwsswp", 0x7820a000, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+  THE_INSN("rcwsswpa", 0x78a0a000, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+  THE_INSN("rcwsswpal", 0x78e0a000, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+  THE_INSN("rcwsswpl", 0x7860a000, 0xffe0fc00, OP3 (Rs, Rt, ADDR_SIMPLE), QL_X2NIL, 0),
+
+/* Read check write software swap quadword in memory instructions.  */
+  D128_THE_INSN("rcwsswpp", 0x5920a000, 0xffe0fc00, OP3 (Rt, Rs, ADDR_SIMPLE), QL_X2NIL, 0),
+  D128_THE_INSN("rcwsswppa", 0x59a0a000, 0xffe0fc00, OP3 (Rt, Rs, ADDR_SIMPLE), QL_X2NIL, 0),
+  D128_THE_INSN("rcwsswppal", 0x59e0a000, 0xffe0fc00, OP3 (Rt, Rs, ADDR_SIMPLE), QL_X2NIL, 0),
+  D128_THE_INSN("rcwsswppl", 0x5960a000, 0xffe0fc00, OP3 (Rt, Rs, ADDR_SIMPLE), QL_X2NIL, 0),
+
   {0, 0, 0, 0, 0, 0, {}, {}, 0, 0, 0, NULL},
 };
 

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

* Re: [PATCH v2][Binutils] aarch64: Add FEAT_THE RCWCAS instructions.
  2024-01-04 17:22 ` [PATCH v2][Binutils] " Srinath Parvathaneni
@ 2024-01-08 13:51   ` Nick Clifton
  0 siblings, 0 replies; 3+ messages in thread
From: Nick Clifton @ 2024-01-08 13:51 UTC (permalink / raw)
  To: Srinath Parvathaneni, binutils; +Cc: Richard Earnshaw

Hi Srinath,

> This patch adds support for FEAT_THE doubleword and quadword instructions.
> doubleword insturctions are enabled by "+the" flag whereas quadword
> instructions are enabled on passing both "+the and +d128" flags.

> Ok for binutils-master?

Approved - please apply.

Cheers
   Nick


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

end of thread, other threads:[~2024-01-08 13:51 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-12-20  9:32 [PATCH][Binutils] aarch64: Add FEAT_THE RCWCAS instructions Srinath Parvathaneni
2024-01-04 17:22 ` [PATCH v2][Binutils] " Srinath Parvathaneni
2024-01-08 13:51   ` 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).