aarch64: ADD FEAT_THE RCWCAS instructions.
authorSrinath Parvathaneni <srinath.parvathaneni@arm.com>
Tue, 9 Jan 2024 10:30:20 +0000 (10:30 +0000)
committersrinath <srinath.parvathaneni@arm.com>
Tue, 9 Jan 2024 10:39:37 +0000 (10:39 +0000)
commite318eb09309c641b2029c828fe37ecd1fbbeb92f
treee7c76d6f05581459fd39778680b1b6af9931e7be
parente244fa1a6be53ba8025005ae0fee2e420075db9f
aarch64: ADD FEAT_THE RCWCAS instructions.

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)
18 files changed:
gas/testsuite/gas/aarch64/d128_the-1.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/d128_the-1.s [new file with mode: 0644]
gas/testsuite/gas/aarch64/d128_the-bad-1.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/d128_the-bad-1.l [new file with mode: 0644]
gas/testsuite/gas/aarch64/d128_the-bad-2.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/d128_the-bad-2.l [new file with mode: 0644]
gas/testsuite/gas/aarch64/d128_the-bad-3.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/d128_the-bad-3.l [new file with mode: 0644]
gas/testsuite/gas/aarch64/d128_the-bad-4.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/d128_the-bad-4.l [new file with mode: 0644]
gas/testsuite/gas/aarch64/d128_the-bad.s [new file with mode: 0644]
gas/testsuite/gas/aarch64/the-1.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/the-1.s [new file with mode: 0644]
gas/testsuite/gas/aarch64/the-bad-1.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/the-bad-1.l [new file with mode: 0644]
include/opcode/aarch64.h
opcodes/aarch64-dis-2.c
opcodes/aarch64-tbl.h