RISC-V: PR27764, Add tests for A extension
authorChristoph Muellner <cmuellner@gcc.gnu.org>
Wed, 21 Apr 2021 22:28:27 +0000 (00:28 +0200)
committerJim Wilson <jimw@sifive.com>
Mon, 3 May 2021 22:33:58 +0000 (15:33 -0700)
gas/
    PR 27764
    * testsuite/gas/riscv/a-ext-64.d: New testcase.
    * testsuite/gas/riscv/a-ext-64.s: Likewise.
    * testsuite/gas/riscv/a-ext.d: Likewise.
    * testsuite/gas/riscv/a-ext.s: Likewise.

Signed-off-by: Christoph Muellner <cmuellner@gcc.gnu.org>
gas/testsuite/gas/riscv/a-ext-64.d [new file with mode: 0644]
gas/testsuite/gas/riscv/a-ext-64.s [new file with mode: 0644]
gas/testsuite/gas/riscv/a-ext.d [new file with mode: 0644]
gas/testsuite/gas/riscv/a-ext.s [new file with mode: 0644]

diff --git a/gas/testsuite/gas/riscv/a-ext-64.d b/gas/testsuite/gas/riscv/a-ext-64.d
new file mode 100644 (file)
index 0000000..86d2400
--- /dev/null
@@ -0,0 +1,186 @@
+#as: -march=rv64ia
+#source: a-ext-64.s
+#objdump: -d
+
+.*:[   ]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+[      ]+0:[   ]+1005252f[     ]+lr.w[         ]+a0,\(a0\)
+[      ]+4:[   ]+1005252f[     ]+lr.w[         ]+a0,\(a0\)
+[      ]+8:[   ]+1405252f[     ]+lr.w.aq[      ]+a0,\(a0\)
+[      ]+c:[   ]+1405252f[     ]+lr.w.aq[      ]+a0,\(a0\)
+[      ]+10:[  ]+1205252f[     ]+lr.w.rl[      ]+a0,\(a0\)
+[      ]+14:[  ]+1205252f[     ]+lr.w.rl[      ]+a0,\(a0\)
+[      ]+18:[  ]+1605252f[     ]+lr.w.aqrl[    ]+a0,\(a0\)
+[      ]+1c:[  ]+1605252f[     ]+lr.w.aqrl[    ]+a0,\(a0\)
+[      ]+20:[  ]+18a5252f[     ]+sc.w[         ]+a0,a0,\(a0\)
+[      ]+24:[  ]+18a5252f[     ]+sc.w[         ]+a0,a0,\(a0\)
+[      ]+28:[  ]+1ca5252f[     ]+sc.w.aq[      ]+a0,a0,\(a0\)
+[      ]+2c:[  ]+1ca5252f[     ]+sc.w.aq[      ]+a0,a0,\(a0\)
+[      ]+30:[  ]+1aa5252f[     ]+sc.w.rl[      ]+a0,a0,\(a0\)
+[      ]+34:[  ]+1aa5252f[     ]+sc.w.rl[      ]+a0,a0,\(a0\)
+[      ]+38:[  ]+1ea5252f[     ]+sc.w.aqrl[    ]+a0,a0,\(a0\)
+[      ]+3c:[  ]+1ea5252f[     ]+sc.w.aqrl[    ]+a0,a0,\(a0\)
+[      ]+40:[  ]+08a5252f[     ]+amoswap.w[    ]+a0,a0,\(a0\)
+[      ]+44:[  ]+08a5252f[     ]+amoswap.w[    ]+a0,a0,\(a0\)
+[      ]+48:[  ]+0ca5252f[     ]+amoswap.w.aq[         ]+a0,a0,\(a0\)
+[      ]+4c:[  ]+0ca5252f[     ]+amoswap.w.aq[         ]+a0,a0,\(a0\)
+[      ]+50:[  ]+0aa5252f[     ]+amoswap.w.rl[         ]+a0,a0,\(a0\)
+[      ]+54:[  ]+0aa5252f[     ]+amoswap.w.rl[         ]+a0,a0,\(a0\)
+[      ]+58:[  ]+0ea5252f[     ]+amoswap.w.aqrl[       ]+a0,a0,\(a0\)
+[      ]+5c:[  ]+0ea5252f[     ]+amoswap.w.aqrl[       ]+a0,a0,\(a0\)
+[      ]+60:[  ]+00a5252f[     ]+amoadd.w[     ]+a0,a0,\(a0\)
+[      ]+64:[  ]+00a5252f[     ]+amoadd.w[     ]+a0,a0,\(a0\)
+[      ]+68:[  ]+04a5252f[     ]+amoadd.w.aq[  ]+a0,a0,\(a0\)
+[      ]+6c:[  ]+04a5252f[     ]+amoadd.w.aq[  ]+a0,a0,\(a0\)
+[      ]+70:[  ]+02a5252f[     ]+amoadd.w.rl[  ]+a0,a0,\(a0\)
+[      ]+74:[  ]+02a5252f[     ]+amoadd.w.rl[  ]+a0,a0,\(a0\)
+[      ]+78:[  ]+06a5252f[     ]+amoadd.w.aqrl[        ]+a0,a0,\(a0\)
+[      ]+7c:[  ]+06a5252f[     ]+amoadd.w.aqrl[        ]+a0,a0,\(a0\)
+[      ]+80:[  ]+20a5252f[     ]+amoxor.w[     ]+a0,a0,\(a0\)
+[      ]+84:[  ]+20a5252f[     ]+amoxor.w[     ]+a0,a0,\(a0\)
+[      ]+88:[  ]+24a5252f[     ]+amoxor.w.aq[  ]+a0,a0,\(a0\)
+[      ]+8c:[  ]+24a5252f[     ]+amoxor.w.aq[  ]+a0,a0,\(a0\)
+[      ]+90:[  ]+22a5252f[     ]+amoxor.w.rl[  ]+a0,a0,\(a0\)
+[      ]+94:[  ]+22a5252f[     ]+amoxor.w.rl[  ]+a0,a0,\(a0\)
+[      ]+98:[  ]+26a5252f[     ]+amoxor.w.aqrl[        ]+a0,a0,\(a0\)
+[      ]+9c:[  ]+26a5252f[     ]+amoxor.w.aqrl[        ]+a0,a0,\(a0\)
+[      ]+a0:[  ]+60a5252f[     ]+amoand.w[     ]+a0,a0,\(a0\)
+[      ]+a4:[  ]+60a5252f[     ]+amoand.w[     ]+a0,a0,\(a0\)
+[      ]+a8:[  ]+64a5252f[     ]+amoand.w.aq[  ]+a0,a0,\(a0\)
+[      ]+ac:[  ]+64a5252f[     ]+amoand.w.aq[  ]+a0,a0,\(a0\)
+[      ]+b0:[  ]+62a5252f[     ]+amoand.w.rl[  ]+a0,a0,\(a0\)
+[      ]+b4:[  ]+62a5252f[     ]+amoand.w.rl[  ]+a0,a0,\(a0\)
+[      ]+b8:[  ]+66a5252f[     ]+amoand.w.aqrl[        ]+a0,a0,\(a0\)
+[      ]+bc:[  ]+66a5252f[     ]+amoand.w.aqrl[        ]+a0,a0,\(a0\)
+[      ]+c0:[  ]+40a5252f[     ]+amoor.w[      ]+a0,a0,\(a0\)
+[      ]+c4:[  ]+40a5252f[     ]+amoor.w[      ]+a0,a0,\(a0\)
+[      ]+c8:[  ]+44a5252f[     ]+amoor.w.aq[   ]+a0,a0,\(a0\)
+[      ]+cc:[  ]+44a5252f[     ]+amoor.w.aq[   ]+a0,a0,\(a0\)
+[      ]+d0:[  ]+42a5252f[     ]+amoor.w.rl[   ]+a0,a0,\(a0\)
+[      ]+d4:[  ]+42a5252f[     ]+amoor.w.rl[   ]+a0,a0,\(a0\)
+[      ]+d8:[  ]+46a5252f[     ]+amoor.w.aqrl[         ]+a0,a0,\(a0\)
+[      ]+dc:[  ]+46a5252f[     ]+amoor.w.aqrl[         ]+a0,a0,\(a0\)
+[      ]+e0:[  ]+80a5252f[     ]+amomin.w[     ]+a0,a0,\(a0\)
+[      ]+e4:[  ]+80a5252f[     ]+amomin.w[     ]+a0,a0,\(a0\)
+[      ]+e8:[  ]+84a5252f[     ]+amomin.w.aq[  ]+a0,a0,\(a0\)
+[      ]+ec:[  ]+84a5252f[     ]+amomin.w.aq[  ]+a0,a0,\(a0\)
+[      ]+f0:[  ]+82a5252f[     ]+amomin.w.rl[  ]+a0,a0,\(a0\)
+[      ]+f4:[  ]+82a5252f[     ]+amomin.w.rl[  ]+a0,a0,\(a0\)
+[      ]+f8:[  ]+86a5252f[     ]+amomin.w.aqrl[        ]+a0,a0,\(a0\)
+[      ]+fc:[  ]+86a5252f[     ]+amomin.w.aqrl[        ]+a0,a0,\(a0\)
+[      ]+100:[         ]+a0a5252f[     ]+amomax.w[     ]+a0,a0,\(a0\)
+[      ]+104:[         ]+a0a5252f[     ]+amomax.w[     ]+a0,a0,\(a0\)
+[      ]+108:[         ]+a4a5252f[     ]+amomax.w.aq[  ]+a0,a0,\(a0\)
+[      ]+10c:[         ]+a4a5252f[     ]+amomax.w.aq[  ]+a0,a0,\(a0\)
+[      ]+110:[         ]+a2a5252f[     ]+amomax.w.rl[  ]+a0,a0,\(a0\)
+[      ]+114:[         ]+a2a5252f[     ]+amomax.w.rl[  ]+a0,a0,\(a0\)
+[      ]+118:[         ]+a6a5252f[     ]+amomax.w.aqrl[        ]+a0,a0,\(a0\)
+[      ]+11c:[         ]+a6a5252f[     ]+amomax.w.aqrl[        ]+a0,a0,\(a0\)
+[      ]+120:[         ]+c0a5252f[     ]+amominu.w[    ]+a0,a0,\(a0\)
+[      ]+124:[         ]+c0a5252f[     ]+amominu.w[    ]+a0,a0,\(a0\)
+[      ]+128:[         ]+c4a5252f[     ]+amominu.w.aq[         ]+a0,a0,\(a0\)
+[      ]+12c:[         ]+c4a5252f[     ]+amominu.w.aq[         ]+a0,a0,\(a0\)
+[      ]+130:[         ]+c2a5252f[     ]+amominu.w.rl[         ]+a0,a0,\(a0\)
+[      ]+134:[         ]+c2a5252f[     ]+amominu.w.rl[         ]+a0,a0,\(a0\)
+[      ]+138:[         ]+c6a5252f[     ]+amominu.w.aqrl[       ]+a0,a0,\(a0\)
+[      ]+13c:[         ]+c6a5252f[     ]+amominu.w.aqrl[       ]+a0,a0,\(a0\)
+[      ]+140:[         ]+e0a5252f[     ]+amomaxu.w[    ]+a0,a0,\(a0\)
+[      ]+144:[         ]+e0a5252f[     ]+amomaxu.w[    ]+a0,a0,\(a0\)
+[      ]+148:[         ]+e4a5252f[     ]+amomaxu.w.aq[         ]+a0,a0,\(a0\)
+[      ]+14c:[         ]+e4a5252f[     ]+amomaxu.w.aq[         ]+a0,a0,\(a0\)
+[      ]+150:[         ]+e2a5252f[     ]+amomaxu.w.rl[         ]+a0,a0,\(a0\)
+[      ]+154:[         ]+e2a5252f[     ]+amomaxu.w.rl[         ]+a0,a0,\(a0\)
+[      ]+158:[         ]+e6a5252f[     ]+amomaxu.w.aqrl[       ]+a0,a0,\(a0\)
+[      ]+15c:[         ]+e6a5252f[     ]+amomaxu.w.aqrl[       ]+a0,a0,\(a0\)
+[      ]+160:[         ]+1005352f[     ]+lr.d[         ]+a0,\(a0\)
+[      ]+164:[         ]+1005352f[     ]+lr.d[         ]+a0,\(a0\)
+[      ]+168:[         ]+1405352f[     ]+lr.d.aq[      ]+a0,\(a0\)
+[      ]+16c:[         ]+1405352f[     ]+lr.d.aq[      ]+a0,\(a0\)
+[      ]+170:[         ]+1205352f[     ]+lr.d.rl[      ]+a0,\(a0\)
+[      ]+174:[         ]+1205352f[     ]+lr.d.rl[      ]+a0,\(a0\)
+[      ]+178:[         ]+1605352f[     ]+lr.d.aqrl[    ]+a0,\(a0\)
+[      ]+17c:[         ]+1605352f[     ]+lr.d.aqrl[    ]+a0,\(a0\)
+[      ]+180:[         ]+18a5352f[     ]+sc.d[         ]+a0,a0,\(a0\)
+[      ]+184:[         ]+18a5352f[     ]+sc.d[         ]+a0,a0,\(a0\)
+[      ]+188:[         ]+1ca5352f[     ]+sc.d.aq[      ]+a0,a0,\(a0\)
+[      ]+18c:[         ]+1ca5352f[     ]+sc.d.aq[      ]+a0,a0,\(a0\)
+[      ]+190:[         ]+1aa5352f[     ]+sc.d.rl[      ]+a0,a0,\(a0\)
+[      ]+194:[         ]+1aa5352f[     ]+sc.d.rl[      ]+a0,a0,\(a0\)
+[      ]+198:[         ]+1ea5352f[     ]+sc.d.aqrl[    ]+a0,a0,\(a0\)
+[      ]+19c:[         ]+1ea5352f[     ]+sc.d.aqrl[    ]+a0,a0,\(a0\)
+[      ]+1a0:[         ]+08a5352f[     ]+amoswap.d[    ]+a0,a0,\(a0\)
+[      ]+1a4:[         ]+08a5352f[     ]+amoswap.d[    ]+a0,a0,\(a0\)
+[      ]+1a8:[         ]+0ca5352f[     ]+amoswap.d.aq[         ]+a0,a0,\(a0\)
+[      ]+1ac:[         ]+0ca5352f[     ]+amoswap.d.aq[         ]+a0,a0,\(a0\)
+[      ]+1b0:[         ]+0aa5352f[     ]+amoswap.d.rl[         ]+a0,a0,\(a0\)
+[      ]+1b4:[         ]+0aa5352f[     ]+amoswap.d.rl[         ]+a0,a0,\(a0\)
+[      ]+1b8:[         ]+0ea5352f[     ]+amoswap.d.aqrl[       ]+a0,a0,\(a0\)
+[      ]+1bc:[         ]+0ea5352f[     ]+amoswap.d.aqrl[       ]+a0,a0,\(a0\)
+[      ]+1c0:[         ]+00a5352f[     ]+amoadd.d[     ]+a0,a0,\(a0\)
+[      ]+1c4:[         ]+00a5352f[     ]+amoadd.d[     ]+a0,a0,\(a0\)
+[      ]+1c8:[         ]+04a5352f[     ]+amoadd.d.aq[  ]+a0,a0,\(a0\)
+[      ]+1cc:[         ]+04a5352f[     ]+amoadd.d.aq[  ]+a0,a0,\(a0\)
+[      ]+1d0:[         ]+02a5352f[     ]+amoadd.d.rl[  ]+a0,a0,\(a0\)
+[      ]+1d4:[         ]+02a5352f[     ]+amoadd.d.rl[  ]+a0,a0,\(a0\)
+[      ]+1d8:[         ]+06a5352f[     ]+amoadd.d.aqrl[        ]+a0,a0,\(a0\)
+[      ]+1dc:[         ]+06a5352f[     ]+amoadd.d.aqrl[        ]+a0,a0,\(a0\)
+[      ]+1e0:[         ]+20a5352f[     ]+amoxor.d[     ]+a0,a0,\(a0\)
+[      ]+1e4:[         ]+20a5352f[     ]+amoxor.d[     ]+a0,a0,\(a0\)
+[      ]+1e8:[         ]+24a5352f[     ]+amoxor.d.aq[  ]+a0,a0,\(a0\)
+[      ]+1ec:[         ]+24a5352f[     ]+amoxor.d.aq[  ]+a0,a0,\(a0\)
+[      ]+1f0:[         ]+22a5352f[     ]+amoxor.d.rl[  ]+a0,a0,\(a0\)
+[      ]+1f4:[         ]+22a5352f[     ]+amoxor.d.rl[  ]+a0,a0,\(a0\)
+[      ]+1f8:[         ]+26a5352f[     ]+amoxor.d.aqrl[        ]+a0,a0,\(a0\)
+[      ]+1fc:[         ]+26a5352f[     ]+amoxor.d.aqrl[        ]+a0,a0,\(a0\)
+[      ]+200:[         ]+60a5352f[     ]+amoand.d[     ]+a0,a0,\(a0\)
+[      ]+204:[         ]+60a5352f[     ]+amoand.d[     ]+a0,a0,\(a0\)
+[      ]+208:[         ]+64a5352f[     ]+amoand.d.aq[  ]+a0,a0,\(a0\)
+[      ]+20c:[         ]+64a5352f[     ]+amoand.d.aq[  ]+a0,a0,\(a0\)
+[      ]+210:[         ]+62a5352f[     ]+amoand.d.rl[  ]+a0,a0,\(a0\)
+[      ]+214:[         ]+62a5352f[     ]+amoand.d.rl[  ]+a0,a0,\(a0\)
+[      ]+218:[         ]+66a5352f[     ]+amoand.d.aqrl[        ]+a0,a0,\(a0\)
+[      ]+21c:[         ]+66a5352f[     ]+amoand.d.aqrl[        ]+a0,a0,\(a0\)
+[      ]+220:[         ]+40a5352f[     ]+amoor.d[      ]+a0,a0,\(a0\)
+[      ]+224:[         ]+40a5352f[     ]+amoor.d[      ]+a0,a0,\(a0\)
+[      ]+228:[         ]+44a5352f[     ]+amoor.d.aq[   ]+a0,a0,\(a0\)
+[      ]+22c:[         ]+44a5352f[     ]+amoor.d.aq[   ]+a0,a0,\(a0\)
+[      ]+230:[         ]+42a5352f[     ]+amoor.d.rl[   ]+a0,a0,\(a0\)
+[      ]+234:[         ]+42a5352f[     ]+amoor.d.rl[   ]+a0,a0,\(a0\)
+[      ]+238:[         ]+46a5352f[     ]+amoor.d.aqrl[         ]+a0,a0,\(a0\)
+[      ]+23c:[         ]+46a5352f[     ]+amoor.d.aqrl[         ]+a0,a0,\(a0\)
+[      ]+240:[         ]+80a5352f[     ]+amomin.d[     ]+a0,a0,\(a0\)
+[      ]+244:[         ]+80a5352f[     ]+amomin.d[     ]+a0,a0,\(a0\)
+[      ]+248:[         ]+84a5352f[     ]+amomin.d.aq[  ]+a0,a0,\(a0\)
+[      ]+24c:[         ]+84a5352f[     ]+amomin.d.aq[  ]+a0,a0,\(a0\)
+[      ]+250:[         ]+82a5352f[     ]+amomin.d.rl[  ]+a0,a0,\(a0\)
+[      ]+254:[         ]+82a5352f[     ]+amomin.d.rl[  ]+a0,a0,\(a0\)
+[      ]+258:[         ]+86a5352f[     ]+amomin.d.aqrl[        ]+a0,a0,\(a0\)
+[      ]+25c:[         ]+86a5352f[     ]+amomin.d.aqrl[        ]+a0,a0,\(a0\)
+[      ]+260:[         ]+a0a5352f[     ]+amomax.d[     ]+a0,a0,\(a0\)
+[      ]+264:[         ]+a0a5352f[     ]+amomax.d[     ]+a0,a0,\(a0\)
+[      ]+268:[         ]+a4a5352f[     ]+amomax.d.aq[  ]+a0,a0,\(a0\)
+[      ]+26c:[         ]+a4a5352f[     ]+amomax.d.aq[  ]+a0,a0,\(a0\)
+[      ]+270:[         ]+a2a5352f[     ]+amomax.d.rl[  ]+a0,a0,\(a0\)
+[      ]+274:[         ]+a2a5352f[     ]+amomax.d.rl[  ]+a0,a0,\(a0\)
+[      ]+278:[         ]+a6a5352f[     ]+amomax.d.aqrl[        ]+a0,a0,\(a0\)
+[      ]+27c:[         ]+a6a5352f[     ]+amomax.d.aqrl[        ]+a0,a0,\(a0\)
+[      ]+280:[         ]+c0a5352f[     ]+amominu.d[    ]+a0,a0,\(a0\)
+[      ]+284:[         ]+c0a5352f[     ]+amominu.d[    ]+a0,a0,\(a0\)
+[      ]+288:[         ]+c4a5352f[     ]+amominu.d.aq[         ]+a0,a0,\(a0\)
+[      ]+28c:[         ]+c4a5352f[     ]+amominu.d.aq[         ]+a0,a0,\(a0\)
+[      ]+290:[         ]+c2a5352f[     ]+amominu.d.rl[         ]+a0,a0,\(a0\)
+[      ]+294:[         ]+c2a5352f[     ]+amominu.d.rl[         ]+a0,a0,\(a0\)
+[      ]+298:[         ]+c6a5352f[     ]+amominu.d.aqrl[       ]+a0,a0,\(a0\)
+[      ]+29c:[         ]+c6a5352f[     ]+amominu.d.aqrl[       ]+a0,a0,\(a0\)
+[      ]+2a0:[         ]+e0a5352f[     ]+amomaxu.d[    ]+a0,a0,\(a0\)
+[      ]+2a4:[         ]+e0a5352f[     ]+amomaxu.d[    ]+a0,a0,\(a0\)
+[      ]+2a8:[         ]+e4a5352f[     ]+amomaxu.d.aq[         ]+a0,a0,\(a0\)
+[      ]+2ac:[         ]+e4a5352f[     ]+amomaxu.d.aq[         ]+a0,a0,\(a0\)
+[      ]+2b0:[         ]+e2a5352f[     ]+amomaxu.d.rl[         ]+a0,a0,\(a0\)
+[      ]+2b4:[         ]+e2a5352f[     ]+amomaxu.d.rl[         ]+a0,a0,\(a0\)
+[      ]+2b8:[         ]+e6a5352f[     ]+amomaxu.d.aqrl[       ]+a0,a0,\(a0\)
+[      ]+2bc:[         ]+e6a5352f[     ]+amomaxu.d.aqrl[       ]+a0,a0,\(a0\)
diff --git a/gas/testsuite/gas/riscv/a-ext-64.s b/gas/testsuite/gas/riscv/a-ext-64.s
new file mode 100644 (file)
index 0000000..cc5b8d5
--- /dev/null
@@ -0,0 +1,177 @@
+target:
+       lr.w    a0, 0(a0)
+       lr.w    a0, (a0)
+       lr.w.aq a0, 0(a0)
+       lr.w.aq a0, (a0)
+       lr.w.rl a0, 0(a0)
+       lr.w.rl a0, (a0)
+       lr.w.aqrl       a0, 0(a0)
+       lr.w.aqrl       a0, (a0)
+       sc.w    a0, a0, 0(a0)
+       sc.w    a0, a0, (a0)
+       sc.w.aq a0, a0, 0(a0)
+       sc.w.aq a0, a0, (a0)
+       sc.w.rl a0, a0, 0(a0)
+       sc.w.rl a0, a0, (a0)
+       sc.w.aqrl       a0, a0, 0(a0)
+       sc.w.aqrl       a0, a0, (a0)
+       amoswap.w       a0, a0, 0(a0)
+       amoswap.w       a0, a0, (a0)
+       amoswap.w.aq    a0, a0, 0(a0)
+       amoswap.w.aq    a0, a0, (a0)
+       amoswap.w.rl    a0, a0, 0(a0)
+       amoswap.w.rl    a0, a0, (a0)
+       amoswap.w.aqrl  a0, a0, 0(a0)
+       amoswap.w.aqrl  a0, a0, (a0)
+       amoadd.w        a0, a0, 0(a0)
+       amoadd.w        a0, a0, (a0)
+       amoadd.w.aq     a0, a0, 0(a0)
+       amoadd.w.aq     a0, a0, (a0)
+       amoadd.w.rl     a0, a0, 0(a0)
+       amoadd.w.rl     a0, a0, (a0)
+       amoadd.w.aqrl   a0, a0, 0(a0)
+       amoadd.w.aqrl   a0, a0, (a0)
+       amoxor.w        a0, a0, 0(a0)
+       amoxor.w        a0, a0, (a0)
+       amoxor.w.aq     a0, a0, 0(a0)
+       amoxor.w.aq     a0, a0, (a0)
+       amoxor.w.rl     a0, a0, 0(a0)
+       amoxor.w.rl     a0, a0, (a0)
+       amoxor.w.aqrl   a0, a0, 0(a0)
+       amoxor.w.aqrl   a0, a0, (a0)
+       amoand.w        a0, a0, 0(a0)
+       amoand.w        a0, a0, (a0)
+       amoand.w.aq     a0, a0, 0(a0)
+       amoand.w.aq     a0, a0, (a0)
+       amoand.w.rl     a0, a0, 0(a0)
+       amoand.w.rl     a0, a0, (a0)
+       amoand.w.aqrl   a0, a0, 0(a0)
+       amoand.w.aqrl   a0, a0, (a0)
+       amoor.w a0, a0, 0(a0)
+       amoor.w a0, a0, (a0)
+       amoor.w.aq      a0, a0, 0(a0)
+       amoor.w.aq      a0, a0, (a0)
+       amoor.w.rl      a0, a0, 0(a0)
+       amoor.w.rl      a0, a0, (a0)
+       amoor.w.aqrl    a0, a0, 0(a0)
+       amoor.w.aqrl    a0, a0, (a0)
+       amomin.w        a0, a0, 0(a0)
+       amomin.w        a0, a0, (a0)
+       amomin.w.aq     a0, a0, 0(a0)
+       amomin.w.aq     a0, a0, (a0)
+       amomin.w.rl     a0, a0, 0(a0)
+       amomin.w.rl     a0, a0, (a0)
+       amomin.w.aqrl   a0, a0, 0(a0)
+       amomin.w.aqrl   a0, a0, (a0)
+       amomax.w        a0, a0, 0(a0)
+       amomax.w        a0, a0, (a0)
+       amomax.w.aq     a0, a0, 0(a0)
+       amomax.w.aq     a0, a0, (a0)
+       amomax.w.rl     a0, a0, 0(a0)
+       amomax.w.rl     a0, a0, (a0)
+       amomax.w.aqrl   a0, a0, 0(a0)
+       amomax.w.aqrl   a0, a0, (a0)
+       amominu.w       a0, a0, 0(a0)
+       amominu.w       a0, a0, (a0)
+       amominu.w.aq    a0, a0, 0(a0)
+       amominu.w.aq    a0, a0, (a0)
+       amominu.w.rl    a0, a0, 0(a0)
+       amominu.w.rl    a0, a0, (a0)
+       amominu.w.aqrl  a0, a0, 0(a0)
+       amominu.w.aqrl  a0, a0, (a0)
+       amomaxu.w       a0, a0, 0(a0)
+       amomaxu.w       a0, a0, (a0)
+       amomaxu.w.aq    a0, a0, 0(a0)
+       amomaxu.w.aq    a0, a0, (a0)
+       amomaxu.w.rl    a0, a0, 0(a0)
+       amomaxu.w.rl    a0, a0, (a0)
+       amomaxu.w.aqrl  a0, a0, 0(a0)
+       amomaxu.w.aqrl  a0, a0, (a0)
+       lr.d    a0, 0(a0)
+       lr.d    a0, (a0)
+       lr.d.aq a0, 0(a0)
+       lr.d.aq a0, (a0)
+       lr.d.rl a0, 0(a0)
+       lr.d.rl a0, (a0)
+       lr.d.aqrl       a0, 0(a0)
+       lr.d.aqrl       a0, (a0)
+       sc.d    a0, a0, 0(a0)
+       sc.d    a0, a0, (a0)
+       sc.d.aq a0, a0, 0(a0)
+       sc.d.aq a0, a0, (a0)
+       sc.d.rl a0, a0, 0(a0)
+       sc.d.rl a0, a0, (a0)
+       sc.d.aqrl       a0, a0, 0(a0)
+       sc.d.aqrl       a0, a0, (a0)
+       amoswap.d       a0, a0, 0(a0)
+       amoswap.d       a0, a0, (a0)
+       amoswap.d.aq    a0, a0, 0(a0)
+       amoswap.d.aq    a0, a0, (a0)
+       amoswap.d.rl    a0, a0, 0(a0)
+       amoswap.d.rl    a0, a0, (a0)
+       amoswap.d.aqrl  a0, a0, 0(a0)
+       amoswap.d.aqrl  a0, a0, (a0)
+       amoadd.d        a0, a0, 0(a0)
+       amoadd.d        a0, a0, (a0)
+       amoadd.d.aq     a0, a0, 0(a0)
+       amoadd.d.aq     a0, a0, (a0)
+       amoadd.d.rl     a0, a0, 0(a0)
+       amoadd.d.rl     a0, a0, (a0)
+       amoadd.d.aqrl   a0, a0, 0(a0)
+       amoadd.d.aqrl   a0, a0, (a0)
+       amoxor.d        a0, a0, 0(a0)
+       amoxor.d        a0, a0, (a0)
+       amoxor.d.aq     a0, a0, 0(a0)
+       amoxor.d.aq     a0, a0, (a0)
+       amoxor.d.rl     a0, a0, 0(a0)
+       amoxor.d.rl     a0, a0, (a0)
+       amoxor.d.aqrl   a0, a0, 0(a0)
+       amoxor.d.aqrl   a0, a0, (a0)
+       amoand.d        a0, a0, 0(a0)
+       amoand.d        a0, a0, (a0)
+       amoand.d.aq     a0, a0, 0(a0)
+       amoand.d.aq     a0, a0, (a0)
+       amoand.d.rl     a0, a0, 0(a0)
+       amoand.d.rl     a0, a0, (a0)
+       amoand.d.aqrl   a0, a0, 0(a0)
+       amoand.d.aqrl   a0, a0, (a0)
+       amoor.d a0, a0, 0(a0)
+       amoor.d a0, a0, (a0)
+       amoor.d.aq      a0, a0, 0(a0)
+       amoor.d.aq      a0, a0, (a0)
+       amoor.d.rl      a0, a0, 0(a0)
+       amoor.d.rl      a0, a0, (a0)
+       amoor.d.aqrl    a0, a0, 0(a0)
+       amoor.d.aqrl    a0, a0, (a0)
+       amomin.d        a0, a0, 0(a0)
+       amomin.d        a0, a0, (a0)
+       amomin.d.aq     a0, a0, 0(a0)
+       amomin.d.aq     a0, a0, (a0)
+       amomin.d.rl     a0, a0, 0(a0)
+       amomin.d.rl     a0, a0, (a0)
+       amomin.d.aqrl   a0, a0, 0(a0)
+       amomin.d.aqrl   a0, a0, (a0)
+       amomax.d        a0, a0, 0(a0)
+       amomax.d        a0, a0, (a0)
+       amomax.d.aq     a0, a0, 0(a0)
+       amomax.d.aq     a0, a0, (a0)
+       amomax.d.rl     a0, a0, 0(a0)
+       amomax.d.rl     a0, a0, (a0)
+       amomax.d.aqrl   a0, a0, 0(a0)
+       amomax.d.aqrl   a0, a0, (a0)
+       amominu.d       a0, a0, 0(a0)
+       amominu.d       a0, a0, (a0)
+       amominu.d.aq    a0, a0, 0(a0)
+       amominu.d.aq    a0, a0, (a0)
+       amominu.d.rl    a0, a0, 0(a0)
+       amominu.d.rl    a0, a0, (a0)
+       amominu.d.aqrl  a0, a0, 0(a0)
+       amominu.d.aqrl  a0, a0, (a0)
+       amomaxu.d       a0, a0, 0(a0)
+       amomaxu.d       a0, a0, (a0)
+       amomaxu.d.aq    a0, a0, 0(a0)
+       amomaxu.d.aq    a0, a0, (a0)
+       amomaxu.d.rl    a0, a0, 0(a0)
+       amomaxu.d.rl    a0, a0, (a0)
+       amomaxu.d.aqrl  a0, a0, 0(a0)
+       amomaxu.d.aqrl  a0, a0, (a0)
diff --git a/gas/testsuite/gas/riscv/a-ext.d b/gas/testsuite/gas/riscv/a-ext.d
new file mode 100644 (file)
index 0000000..e0c3b9a
--- /dev/null
@@ -0,0 +1,98 @@
+#as: -march=rv32ia
+#source: a-ext.s
+#objdump: -d
+
+.*:[   ]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+[      ]+0:[   ]+1005252f[     ]+lr.w[         ]+a0,\(a0\)
+[      ]+4:[   ]+1005252f[     ]+lr.w[         ]+a0,\(a0\)
+[      ]+8:[   ]+1405252f[     ]+lr.w.aq[      ]+a0,\(a0\)
+[      ]+c:[   ]+1405252f[     ]+lr.w.aq[      ]+a0,\(a0\)
+[      ]+10:[  ]+1205252f[     ]+lr.w.rl[      ]+a0,\(a0\)
+[      ]+14:[  ]+1205252f[     ]+lr.w.rl[      ]+a0,\(a0\)
+[      ]+18:[  ]+1605252f[     ]+lr.w.aqrl[    ]+a0,\(a0\)
+[      ]+1c:[  ]+1605252f[     ]+lr.w.aqrl[    ]+a0,\(a0\)
+[      ]+20:[  ]+18a5252f[     ]+sc.w[         ]+a0,a0,\(a0\)
+[      ]+24:[  ]+18a5252f[     ]+sc.w[         ]+a0,a0,\(a0\)
+[      ]+28:[  ]+1ca5252f[     ]+sc.w.aq[      ]+a0,a0,\(a0\)
+[      ]+2c:[  ]+1ca5252f[     ]+sc.w.aq[      ]+a0,a0,\(a0\)
+[      ]+30:[  ]+1aa5252f[     ]+sc.w.rl[      ]+a0,a0,\(a0\)
+[      ]+34:[  ]+1aa5252f[     ]+sc.w.rl[      ]+a0,a0,\(a0\)
+[      ]+38:[  ]+1ea5252f[     ]+sc.w.aqrl[    ]+a0,a0,\(a0\)
+[      ]+3c:[  ]+1ea5252f[     ]+sc.w.aqrl[    ]+a0,a0,\(a0\)
+[      ]+40:[  ]+08a5252f[     ]+amoswap.w[    ]+a0,a0,\(a0\)
+[      ]+44:[  ]+08a5252f[     ]+amoswap.w[    ]+a0,a0,\(a0\)
+[      ]+48:[  ]+0ca5252f[     ]+amoswap.w.aq[         ]+a0,a0,\(a0\)
+[      ]+4c:[  ]+0ca5252f[     ]+amoswap.w.aq[         ]+a0,a0,\(a0\)
+[      ]+50:[  ]+0aa5252f[     ]+amoswap.w.rl[         ]+a0,a0,\(a0\)
+[      ]+54:[  ]+0aa5252f[     ]+amoswap.w.rl[         ]+a0,a0,\(a0\)
+[      ]+58:[  ]+0ea5252f[     ]+amoswap.w.aqrl[       ]+a0,a0,\(a0\)
+[      ]+5c:[  ]+0ea5252f[     ]+amoswap.w.aqrl[       ]+a0,a0,\(a0\)
+[      ]+60:[  ]+00a5252f[     ]+amoadd.w[     ]+a0,a0,\(a0\)
+[      ]+64:[  ]+00a5252f[     ]+amoadd.w[     ]+a0,a0,\(a0\)
+[      ]+68:[  ]+04a5252f[     ]+amoadd.w.aq[  ]+a0,a0,\(a0\)
+[      ]+6c:[  ]+04a5252f[     ]+amoadd.w.aq[  ]+a0,a0,\(a0\)
+[      ]+70:[  ]+02a5252f[     ]+amoadd.w.rl[  ]+a0,a0,\(a0\)
+[      ]+74:[  ]+02a5252f[     ]+amoadd.w.rl[  ]+a0,a0,\(a0\)
+[      ]+78:[  ]+06a5252f[     ]+amoadd.w.aqrl[        ]+a0,a0,\(a0\)
+[      ]+7c:[  ]+06a5252f[     ]+amoadd.w.aqrl[        ]+a0,a0,\(a0\)
+[      ]+80:[  ]+20a5252f[     ]+amoxor.w[     ]+a0,a0,\(a0\)
+[      ]+84:[  ]+20a5252f[     ]+amoxor.w[     ]+a0,a0,\(a0\)
+[      ]+88:[  ]+24a5252f[     ]+amoxor.w.aq[  ]+a0,a0,\(a0\)
+[      ]+8c:[  ]+24a5252f[     ]+amoxor.w.aq[  ]+a0,a0,\(a0\)
+[      ]+90:[  ]+22a5252f[     ]+amoxor.w.rl[  ]+a0,a0,\(a0\)
+[      ]+94:[  ]+22a5252f[     ]+amoxor.w.rl[  ]+a0,a0,\(a0\)
+[      ]+98:[  ]+26a5252f[     ]+amoxor.w.aqrl[        ]+a0,a0,\(a0\)
+[      ]+9c:[  ]+26a5252f[     ]+amoxor.w.aqrl[        ]+a0,a0,\(a0\)
+[      ]+a0:[  ]+60a5252f[     ]+amoand.w[     ]+a0,a0,\(a0\)
+[      ]+a4:[  ]+60a5252f[     ]+amoand.w[     ]+a0,a0,\(a0\)
+[      ]+a8:[  ]+64a5252f[     ]+amoand.w.aq[  ]+a0,a0,\(a0\)
+[      ]+ac:[  ]+64a5252f[     ]+amoand.w.aq[  ]+a0,a0,\(a0\)
+[      ]+b0:[  ]+62a5252f[     ]+amoand.w.rl[  ]+a0,a0,\(a0\)
+[      ]+b4:[  ]+62a5252f[     ]+amoand.w.rl[  ]+a0,a0,\(a0\)
+[      ]+b8:[  ]+66a5252f[     ]+amoand.w.aqrl[        ]+a0,a0,\(a0\)
+[      ]+bc:[  ]+66a5252f[     ]+amoand.w.aqrl[        ]+a0,a0,\(a0\)
+[      ]+c0:[  ]+40a5252f[     ]+amoor.w[      ]+a0,a0,\(a0\)
+[      ]+c4:[  ]+40a5252f[     ]+amoor.w[      ]+a0,a0,\(a0\)
+[      ]+c8:[  ]+44a5252f[     ]+amoor.w.aq[   ]+a0,a0,\(a0\)
+[      ]+cc:[  ]+44a5252f[     ]+amoor.w.aq[   ]+a0,a0,\(a0\)
+[      ]+d0:[  ]+42a5252f[     ]+amoor.w.rl[   ]+a0,a0,\(a0\)
+[      ]+d4:[  ]+42a5252f[     ]+amoor.w.rl[   ]+a0,a0,\(a0\)
+[      ]+d8:[  ]+46a5252f[     ]+amoor.w.aqrl[         ]+a0,a0,\(a0\)
+[      ]+dc:[  ]+46a5252f[     ]+amoor.w.aqrl[         ]+a0,a0,\(a0\)
+[      ]+e0:[  ]+80a5252f[     ]+amomin.w[     ]+a0,a0,\(a0\)
+[      ]+e4:[  ]+80a5252f[     ]+amomin.w[     ]+a0,a0,\(a0\)
+[      ]+e8:[  ]+84a5252f[     ]+amomin.w.aq[  ]+a0,a0,\(a0\)
+[      ]+ec:[  ]+84a5252f[     ]+amomin.w.aq[  ]+a0,a0,\(a0\)
+[      ]+f0:[  ]+82a5252f[     ]+amomin.w.rl[  ]+a0,a0,\(a0\)
+[      ]+f4:[  ]+82a5252f[     ]+amomin.w.rl[  ]+a0,a0,\(a0\)
+[      ]+f8:[  ]+86a5252f[     ]+amomin.w.aqrl[        ]+a0,a0,\(a0\)
+[      ]+fc:[  ]+86a5252f[     ]+amomin.w.aqrl[        ]+a0,a0,\(a0\)
+[      ]+100:[         ]+a0a5252f[     ]+amomax.w[     ]+a0,a0,\(a0\)
+[      ]+104:[         ]+a0a5252f[     ]+amomax.w[     ]+a0,a0,\(a0\)
+[      ]+108:[         ]+a4a5252f[     ]+amomax.w.aq[  ]+a0,a0,\(a0\)
+[      ]+10c:[         ]+a4a5252f[     ]+amomax.w.aq[  ]+a0,a0,\(a0\)
+[      ]+110:[         ]+a2a5252f[     ]+amomax.w.rl[  ]+a0,a0,\(a0\)
+[      ]+114:[         ]+a2a5252f[     ]+amomax.w.rl[  ]+a0,a0,\(a0\)
+[      ]+118:[         ]+a6a5252f[     ]+amomax.w.aqrl[        ]+a0,a0,\(a0\)
+[      ]+11c:[         ]+a6a5252f[     ]+amomax.w.aqrl[        ]+a0,a0,\(a0\)
+[      ]+120:[         ]+c0a5252f[     ]+amominu.w[    ]+a0,a0,\(a0\)
+[      ]+124:[         ]+c0a5252f[     ]+amominu.w[    ]+a0,a0,\(a0\)
+[      ]+128:[         ]+c4a5252f[     ]+amominu.w.aq[         ]+a0,a0,\(a0\)
+[      ]+12c:[         ]+c4a5252f[     ]+amominu.w.aq[         ]+a0,a0,\(a0\)
+[      ]+130:[         ]+c2a5252f[     ]+amominu.w.rl[         ]+a0,a0,\(a0\)
+[      ]+134:[         ]+c2a5252f[     ]+amominu.w.rl[         ]+a0,a0,\(a0\)
+[      ]+138:[         ]+c6a5252f[     ]+amominu.w.aqrl[       ]+a0,a0,\(a0\)
+[      ]+13c:[         ]+c6a5252f[     ]+amominu.w.aqrl[       ]+a0,a0,\(a0\)
+[      ]+140:[         ]+e0a5252f[     ]+amomaxu.w[    ]+a0,a0,\(a0\)
+[      ]+144:[         ]+e0a5252f[     ]+amomaxu.w[    ]+a0,a0,\(a0\)
+[      ]+148:[         ]+e4a5252f[     ]+amomaxu.w.aq[         ]+a0,a0,\(a0\)
+[      ]+14c:[         ]+e4a5252f[     ]+amomaxu.w.aq[         ]+a0,a0,\(a0\)
+[      ]+150:[         ]+e2a5252f[     ]+amomaxu.w.rl[         ]+a0,a0,\(a0\)
+[      ]+154:[         ]+e2a5252f[     ]+amomaxu.w.rl[         ]+a0,a0,\(a0\)
+[      ]+158:[         ]+e6a5252f[     ]+amomaxu.w.aqrl[       ]+a0,a0,\(a0\)
+[      ]+15c:[         ]+e6a5252f[     ]+amomaxu.w.aqrl[       ]+a0,a0,\(a0\)
diff --git a/gas/testsuite/gas/riscv/a-ext.s b/gas/testsuite/gas/riscv/a-ext.s
new file mode 100644 (file)
index 0000000..09ef166
--- /dev/null
@@ -0,0 +1,89 @@
+target:
+       lr.w    a0, 0(a0)
+       lr.w    a0, (a0)
+       lr.w.aq a0, 0(a0)
+       lr.w.aq a0, (a0)
+       lr.w.rl a0, 0(a0)
+       lr.w.rl a0, (a0)
+       lr.w.aqrl       a0, 0(a0)
+       lr.w.aqrl       a0, (a0)
+       sc.w    a0, a0, 0(a0)
+       sc.w    a0, a0, (a0)
+       sc.w.aq a0, a0, 0(a0)
+       sc.w.aq a0, a0, (a0)
+       sc.w.rl a0, a0, 0(a0)
+       sc.w.rl a0, a0, (a0)
+       sc.w.aqrl       a0, a0, 0(a0)
+       sc.w.aqrl       a0, a0, (a0)
+       amoswap.w       a0, a0, 0(a0)
+       amoswap.w       a0, a0, (a0)
+       amoswap.w.aq    a0, a0, 0(a0)
+       amoswap.w.aq    a0, a0, (a0)
+       amoswap.w.rl    a0, a0, 0(a0)
+       amoswap.w.rl    a0, a0, (a0)
+       amoswap.w.aqrl  a0, a0, 0(a0)
+       amoswap.w.aqrl  a0, a0, (a0)
+       amoadd.w        a0, a0, 0(a0)
+       amoadd.w        a0, a0, (a0)
+       amoadd.w.aq     a0, a0, 0(a0)
+       amoadd.w.aq     a0, a0, (a0)
+       amoadd.w.rl     a0, a0, 0(a0)
+       amoadd.w.rl     a0, a0, (a0)
+       amoadd.w.aqrl   a0, a0, 0(a0)
+       amoadd.w.aqrl   a0, a0, (a0)
+       amoxor.w        a0, a0, 0(a0)
+       amoxor.w        a0, a0, (a0)
+       amoxor.w.aq     a0, a0, 0(a0)
+       amoxor.w.aq     a0, a0, (a0)
+       amoxor.w.rl     a0, a0, 0(a0)
+       amoxor.w.rl     a0, a0, (a0)
+       amoxor.w.aqrl   a0, a0, 0(a0)
+       amoxor.w.aqrl   a0, a0, (a0)
+       amoand.w        a0, a0, 0(a0)
+       amoand.w        a0, a0, (a0)
+       amoand.w.aq     a0, a0, 0(a0)
+       amoand.w.aq     a0, a0, (a0)
+       amoand.w.rl     a0, a0, 0(a0)
+       amoand.w.rl     a0, a0, (a0)
+       amoand.w.aqrl   a0, a0, 0(a0)
+       amoand.w.aqrl   a0, a0, (a0)
+       amoor.w a0, a0, 0(a0)
+       amoor.w a0, a0, (a0)
+       amoor.w.aq      a0, a0, 0(a0)
+       amoor.w.aq      a0, a0, (a0)
+       amoor.w.rl      a0, a0, 0(a0)
+       amoor.w.rl      a0, a0, (a0)
+       amoor.w.aqrl    a0, a0, 0(a0)
+       amoor.w.aqrl    a0, a0, (a0)
+       amomin.w        a0, a0, 0(a0)
+       amomin.w        a0, a0, (a0)
+       amomin.w.aq     a0, a0, 0(a0)
+       amomin.w.aq     a0, a0, (a0)
+       amomin.w.rl     a0, a0, 0(a0)
+       amomin.w.rl     a0, a0, (a0)
+       amomin.w.aqrl   a0, a0, 0(a0)
+       amomin.w.aqrl   a0, a0, (a0)
+       amomax.w        a0, a0, 0(a0)
+       amomax.w        a0, a0, (a0)
+       amomax.w.aq     a0, a0, 0(a0)
+       amomax.w.aq     a0, a0, (a0)
+       amomax.w.rl     a0, a0, 0(a0)
+       amomax.w.rl     a0, a0, (a0)
+       amomax.w.aqrl   a0, a0, 0(a0)
+       amomax.w.aqrl   a0, a0, (a0)
+       amominu.w       a0, a0, 0(a0)
+       amominu.w       a0, a0, (a0)
+       amominu.w.aq    a0, a0, 0(a0)
+       amominu.w.aq    a0, a0, (a0)
+       amominu.w.rl    a0, a0, 0(a0)
+       amominu.w.rl    a0, a0, (a0)
+       amominu.w.aqrl  a0, a0, 0(a0)
+       amominu.w.aqrl  a0, a0, (a0)
+       amomaxu.w       a0, a0, 0(a0)
+       amomaxu.w       a0, a0, (a0)
+       amomaxu.w.aq    a0, a0, 0(a0)
+       amomaxu.w.aq    a0, a0, (a0)
+       amomaxu.w.rl    a0, a0, 0(a0)
+       amomaxu.w.rl    a0, a0, (a0)
+       amomaxu.w.aqrl  a0, a0, 0(a0)
+       amomaxu.w.aqrl  a0, a0, (a0)