binutils/SME-0010-aarch64-Add-support-for-new-SME-instructions.patch
2024-03-08 15:14:40 +08:00

1554 lines
96 KiB
Diff

From bd5218efac195b1095c5d939f487e89345d72a93 Mon Sep 17 00:00:00 2001
From: Richard Sandiford <richard.sandiford@arm.com>
Date: Thu, 6 Jan 2022 16:22:54 +0000
Subject: [PATCH 10/10] aarch64: Add support for new SME instructions
Reference: https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=27297937e0c648cdf115ecbceb4ba25dfefe7492
This patch adds support for three new SME instructions: ADDSPL,
ADDSVL and RDSVL. They behave like ADDPL, ADDVL and RDVL, but read
the streaming vector length instead of the current vector length.
opcodes/
* aarch64-tbl.h (aarch64_opcode_table): Add ADDSPL, ADDSVL and RDSVL.
* aarch64-dis-2.c: Regenerate.
gas/
* testsuite/gas/aarch64/sme.s, testsuite/gas/aarch64/sme.d: Add tests
for ADDSPL, ADDSVL and RDSVL.
---
gas/testsuite/gas/aarch64/sme.d | 25 ++
gas/testsuite/gas/aarch64/sme.s | 31 +++
opcodes/aarch64-dis-2.c | 395 +++++++++++++++++---------------
opcodes/aarch64-tbl.h | 3 +
4 files changed, 273 insertions(+), 181 deletions(-)
diff --git a/gas/testsuite/gas/aarch64/sme.d b/gas/testsuite/gas/aarch64/sme.d
index 673ac79c..f5cf1f0b 100644
--- a/gas/testsuite/gas/aarch64/sme.d
+++ b/gas/testsuite/gas/aarch64/sme.d
@@ -91,3 +91,28 @@ Disassembly of section \.text:
144: a1a1f893 umops za3.s, p6/m, p7/m, z4.b, z1.b
148: a1817083 usmopa za3.s, p4/m, p3/m, z4.b, z1.b
14c: a181f893 usmops za3.s, p6/m, p7/m, z4.b, z1.b
+[^:]+: 04605800 addspl x0, x0, #0
+[^:]+: 04605801 addspl x1, x0, #0
+[^:]+: 0460581f addspl sp, x0, #0
+[^:]+: 04625800 addspl x0, x2, #0
+[^:]+: 047f5800 addspl x0, sp, #0
+[^:]+: 04605be0 addspl x0, x0, #31
+[^:]+: 04605c00 addspl x0, x0, #-32
+[^:]+: 04605c20 addspl x0, x0, #-31
+[^:]+: 04605fe0 addspl x0, x0, #-1
+[^:]+: 04205800 addsvl x0, x0, #0
+[^:]+: 04205801 addsvl x1, x0, #0
+[^:]+: 0420581f addsvl sp, x0, #0
+[^:]+: 04225800 addsvl x0, x2, #0
+[^:]+: 043f5800 addsvl x0, sp, #0
+[^:]+: 04205be0 addsvl x0, x0, #31
+[^:]+: 04205c00 addsvl x0, x0, #-32
+[^:]+: 04205c20 addsvl x0, x0, #-31
+[^:]+: 04205fe0 addsvl x0, x0, #-1
+[^:]+: 04bf5800 rdsvl x0, #0
+[^:]+: 04bf5801 rdsvl x1, #0
+[^:]+: 04bf581f rdsvl xzr, #0
+[^:]+: 04bf5be0 rdsvl x0, #31
+[^:]+: 04bf5c00 rdsvl x0, #-32
+[^:]+: 04bf5c20 rdsvl x0, #-31
+[^:]+: 04bf5fe0 rdsvl x0, #-1
diff --git a/gas/testsuite/gas/aarch64/sme.s b/gas/testsuite/gas/aarch64/sme.s
index ad48fa0e..659f1417 100644
--- a/gas/testsuite/gas/aarch64/sme.s
+++ b/gas/testsuite/gas/aarch64/sme.s
@@ -121,3 +121,34 @@ umopa foo.s, p6/m, p7/m, z4.b, z1.b
umops foo.s, p6/m, p7/m, z4.b, z1.b
usmopa foo.s, p4/m, p3/m, z4.b, z1.b
usmops foo.s, p6/m, p7/m, z4.b, z1.b
+
+/* ADDSPL. */
+addspl x0, x0, #0
+addspl x1, x0, #0
+addspl sp, x0, #0
+addspl x0, x2, #0
+addspl x0, sp, #0
+addspl x0, x0, #31
+addspl x0, x0, #-32
+addspl x0, x0, #-31
+addspl x0, x0, #-1
+
+/* ADDSVL. */
+addsvl x0, x0, #0
+addsvl x1, x0, #0
+addsvl sp, x0, #0
+addsvl x0, x2, #0
+addsvl x0, sp, #0
+addsvl x0, x0, #31
+addsvl x0, x0, #-32
+addsvl x0, x0, #-31
+addsvl x0, x0, #-1
+
+/* RDSVL. */
+rdsvl x0, #0
+rdsvl x1, #0
+rdsvl xzr, #0
+rdsvl x0, #31
+rdsvl x0, #-32
+rdsvl x0, #-31
+rdsvl x0, #-1
diff --git a/opcodes/aarch64-dis-2.c b/opcodes/aarch64-dis-2.c
index f9999adc..0065c2a2 100644
--- a/opcodes/aarch64-dis-2.c
+++ b/opcodes/aarch64-dis-2.c
@@ -60,7 +60,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0000000100xxxxxxxxxxxxxxxx0xxxx
fmopa. */
- return 2358;
+ return 2360;
}
else
{
@@ -68,7 +68,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0000000100xxxxxxxxxxxxxxxx1xxxx
fmops. */
- return 2361;
+ return 2363;
}
}
}
@@ -80,7 +80,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0000000x10xxxxxxxxxxxxxxxx0xxxx
fmopa. */
- return 2359;
+ return 2361;
}
else
{
@@ -88,7 +88,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0000000x10xxxxxxxxxxxxxxxx1xxxx
fmops. */
- return 2362;
+ return 2364;
}
}
}
@@ -104,7 +104,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000xx000x0xxxxxxxxxxxxxxxxx
mov. */
- return 2381;
+ return 2384;
}
else
{
@@ -135,7 +135,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000x0010x01xxxxxxxxxxxxxxxx
addva. */
- return 2354;
+ return 2356;
}
else
{
@@ -143,7 +143,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000x1010x01xxxxxxxxxxxxxxxx
addva. */
- return 2355;
+ return 2357;
}
}
}
@@ -154,7 +154,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000xx0x1x0xxxxxxxxxxxxxxxxx
zero. */
- return 2384;
+ return 2387;
}
}
else
@@ -163,7 +163,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000xx0xxx1xxxxxxxxxxxxxxxxx
mov. */
- return 2380;
+ return 2383;
}
}
}
@@ -179,7 +179,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100000000xxxxxxxxxxxxxxxx0xxxx
ld1b. */
- return 2385;
+ return 2388;
}
else
{
@@ -189,7 +189,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000100xxxxxxxxxxxxxxxx0xxxx
smopa. */
- return 2364;
+ return 2367;
}
else
{
@@ -197,7 +197,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1100000100xxxxxxxxxxxxxxxx0xxxx
ld1w. */
- return 2387;
+ return 2390;
}
}
}
@@ -209,7 +209,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100000010xxxxxxxxxxxxxxxx0xxxx
ld1h. */
- return 2386;
+ return 2389;
}
else
{
@@ -219,7 +219,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000110xxxxxxxxxxxxxxxx0xxxx
smopa. */
- return 2365;
+ return 2368;
}
else
{
@@ -227,7 +227,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1100000110xxxxxxxxxxxxxxxx0xxxx
ld1d. */
- return 2388;
+ return 2391;
}
}
}
@@ -240,7 +240,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100000x00xxxxxxxxxxxxxxxx1xxxx
smops. */
- return 2366;
+ return 2369;
}
else
{
@@ -248,7 +248,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100000x10xxxxxxxxxxxxxxxx1xxxx
smops. */
- return 2367;
+ return 2370;
}
}
}
@@ -265,7 +265,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx00000001xxxxxxxxxxxxxxxx0xxxx
st1b. */
- return 2395;
+ return 2398;
}
else
{
@@ -275,7 +275,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000101xxxxxxxxxxxxxxxx0xxxx
sumopa. */
- return 2368;
+ return 2371;
}
else
{
@@ -283,7 +283,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1x00000101xxxxxxxxxxxxxxxx0xxxx
st1w. */
- return 2397;
+ return 2400;
}
}
}
@@ -295,7 +295,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx00000011xxxxxxxxxxxxxxxx0xxxx
st1h. */
- return 2396;
+ return 2399;
}
else
{
@@ -305,7 +305,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000111xxxxxxxxxxxxxxxx0xxxx
sumopa. */
- return 2369;
+ return 2372;
}
else
{
@@ -313,7 +313,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1x00000111xxxxxxxxxxxxxxxx0xxxx
st1d. */
- return 2398;
+ return 2401;
}
}
}
@@ -326,7 +326,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx00000x01xxxxxxxxxxxxxxxx1xxxx
sumops. */
- return 2370;
+ return 2373;
}
else
{
@@ -334,7 +334,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx00000x11xxxxxxxxxxxxxxxx1xxxx
sumops. */
- return 2371;
+ return 2374;
}
}
}
@@ -375,7 +375,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx00001000xxxxxxxxxxxxxxxx0xxxx
ldr. */
- return 2405;
+ return 2408;
}
else
{
@@ -385,7 +385,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx000001100xxxxxxxxxxxxxxxx0xxxx
bfmopa. */
- return 2356;
+ return 2358;
}
else
{
@@ -393,7 +393,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001100xxxxxxxxxxxxxxxx0xxxx
usmopa. */
- return 2376;
+ return 2379;
}
}
}
@@ -405,7 +405,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00001x10xxxxxxxxxxxxxxxx0xxxx
usmopa. */
- return 2377;
+ return 2380;
}
else
{
@@ -413,7 +413,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1x00001x10xxxxxxxxxxxxxxxx0xxxx
ld1q. */
- return 2389;
+ return 2392;
}
}
}
@@ -427,7 +427,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx00001001xxxxxxxxxxxxxxxx0xxxx
str. */
- return 2406;
+ return 2409;
}
else
{
@@ -437,7 +437,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx000001101xxxxxxxxxxxxxxxx0xxxx
fmopa. */
- return 2360;
+ return 2362;
}
else
{
@@ -445,7 +445,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001101xxxxxxxxxxxxxxxx0xxxx
umopa. */
- return 2372;
+ return 2375;
}
}
}
@@ -457,7 +457,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00001x11xxxxxxxxxxxxxxxx0xxxx
umopa. */
- return 2373;
+ return 2376;
}
else
{
@@ -465,7 +465,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1x00001x11xxxxxxxxxxxxxxxx0xxxx
st1q. */
- return 2399;
+ return 2402;
}
}
}
@@ -482,7 +482,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx000001x00xxxxxxxxxxxxxxxx1xxxx
bfmops. */
- return 2357;
+ return 2359;
}
else
{
@@ -490,7 +490,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001x00xxxxxxxxxxxxxxxx1xxxx
usmops. */
- return 2378;
+ return 2381;
}
}
else
@@ -499,7 +499,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx00001x10xxxxxxxxxxxxxxxx1xxxx
usmops. */
- return 2379;
+ return 2382;
}
}
else
@@ -512,7 +512,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx000001x01xxxxxxxxxxxxxxxx1xxxx
fmops. */
- return 2363;
+ return 2365;
}
else
{
@@ -520,7 +520,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001x01xxxxxxxxxxxxxxxx1xxxx
umops. */
- return 2374;
+ return 2377;
}
}
else
@@ -529,7 +529,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx00001x11xxxxxxxxxxxxxxxx1xxxx
umops. */
- return 2375;
+ return 2378;
}
}
}
@@ -2896,7 +2896,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00011001000xxxxxxxxx00xxxxxxxxxx
stlurb. */
- return 2451;
+ return 2454;
}
else
{
@@ -2904,7 +2904,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
10011001000xxxxxxxxx00xxxxxxxxxx
stlur. */
- return 2459;
+ return 2462;
}
}
else
@@ -2915,7 +2915,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01011001000xxxxxxxxx00xxxxxxxxxx
stlurh. */
- return 2455;
+ return 2458;
}
else
{
@@ -2923,7 +2923,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
11011001000xxxxxxxxx00xxxxxxxxxx
stlur. */
- return 2462;
+ return 2465;
}
}
}
@@ -3003,7 +3003,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00011001010xxxxxxxxx00xxxxxxxxxx
ldapurb. */
- return 2452;
+ return 2455;
}
else
{
@@ -3011,7 +3011,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
10011001010xxxxxxxxx00xxxxxxxxxx
ldapur. */
- return 2460;
+ return 2463;
}
}
else
@@ -3022,7 +3022,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01011001010xxxxxxxxx00xxxxxxxxxx
ldapurh. */
- return 2456;
+ return 2459;
}
else
{
@@ -3030,7 +3030,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
11011001010xxxxxxxxx00xxxxxxxxxx
ldapur. */
- return 2463;
+ return 2466;
}
}
}
@@ -3113,7 +3113,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00011001100xxxxxxxxx00xxxxxxxxxx
ldapursb. */
- return 2454;
+ return 2457;
}
else
{
@@ -3121,7 +3121,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
10011001100xxxxxxxxx00xxxxxxxxxx
ldapursw. */
- return 2461;
+ return 2464;
}
}
else
@@ -3130,7 +3130,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1011001100xxxxxxxxx00xxxxxxxxxx
ldapursh. */
- return 2458;
+ return 2461;
}
}
else
@@ -3141,7 +3141,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011001110xxxxxxxxx00xxxxxxxxxx
ldapursb. */
- return 2453;
+ return 2456;
}
else
{
@@ -3149,7 +3149,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1011001110xxxxxxxxx00xxxxxxxxxx
ldapursh. */
- return 2457;
+ return 2460;
}
}
}
@@ -3635,7 +3635,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11010x00xxxxxx0xx10xxxxxxxxxx
setf8. */
- return 2449;
+ return 2452;
}
else
{
@@ -3643,7 +3643,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11010x00xxxxxx1xx10xxxxxxxxxx
setf16. */
- return 2450;
+ return 2453;
}
}
else
@@ -3789,7 +3789,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11010000xxxxxxxxx01xxxxxxxxxx
rmif. */
- return 2448;
+ return 2451;
}
else
{
@@ -4838,7 +4838,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x01x1xxxxx000110xxxxxxxxxx
usdot. */
- return 2468;
+ return 2471;
}
}
}
@@ -4912,7 +4912,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x01x1xxxxx000111xxxxxxxxxx
sudot. */
- return 2469;
+ return 2472;
}
}
}
@@ -5923,21 +5923,54 @@ aarch64_opcode_lookup_1 (uint32_t word)
}
else
{
- if (((word >> 10) & 0x1) == 0)
+ if (((word >> 12) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x0xx1xxxxx010x10xxxxxxxxxx
- index. */
- return 1508;
+ if (((word >> 10) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx1xxxxx010010xxxxxxxxxx
+ index. */
+ return 1508;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx1xxxxx010011xxxxxxxxxx
+ index. */
+ return 1505;
+ }
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x0xx1xxxxx010x11xxxxxxxxxx
- index. */
- return 1505;
+ if (((word >> 22) & 0x1) == 0)
+ {
+ if (((word >> 23) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0001xxxxx01011xxxxxxxxxxx
+ addsvl. */
+ return 2355;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0101xxxxx01011xxxxxxxxxxx
+ rdsvl. */
+ return 2366;
+ }
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0x11xxxxx01011xxxxxxxxxxx
+ addspl. */
+ return 2354;
+ }
}
}
}
@@ -6290,7 +6323,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx110xx0xxxxxxxxxx
sclamp. */
- return 2408;
+ return 2411;
}
else
{
@@ -6298,7 +6331,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx110xx1xxxxxxxxxx
uclamp. */
- return 2409;
+ return 2412;
}
}
else
@@ -7553,7 +7586,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx011110xxxxxxxxxx
usdot. */
- return 2467;
+ return 2470;
}
}
}
@@ -9257,7 +9290,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0100xxx10101xxxxxxxxxxxxx
bfcvtnt. */
- return 2496;
+ return 2499;
}
}
else
@@ -9500,7 +9533,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x00x1xxxxxx00xxxxxxxxxxxxx
ld1rob. */
- return 2472;
+ return 2475;
}
else
{
@@ -9508,7 +9541,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x01x1xxxxxx00xxxxxxxxxxxxx
ld1roh. */
- return 2473;
+ return 2476;
}
}
else
@@ -9740,7 +9773,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0011xxxxx010xxxxxxxxxxxxx
bfdot. */
- return 2493;
+ return 2496;
}
else
{
@@ -9761,7 +9794,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0111xxxxx010xx0xxxxxxxxxx
bfmlalb. */
- return 2500;
+ return 2503;
}
else
{
@@ -9769,7 +9802,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0111xxxxx010xx1xxxxxxxxxx
bfmlalt. */
- return 2499;
+ return 2502;
}
}
else
@@ -9824,7 +9857,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11001x0011xxxxx1x0xxxxxxxxxxxxx
bfdot. */
- return 2492;
+ return 2495;
}
else
{
@@ -9836,7 +9869,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0111xxxxx1x0xx0xxxxxxxxxx
bfmlalb. */
- return 2498;
+ return 2501;
}
else
{
@@ -9844,7 +9877,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0111xxxxx1x0xx1xxxxxxxxxx
bfmlalt. */
- return 2497;
+ return 2500;
}
}
else
@@ -9895,7 +9928,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x00x1xxxxx001xxxxxxxxxxxxx
ld1rob. */
- return 2476;
+ return 2479;
}
else
{
@@ -9903,7 +9936,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x01x1xxxxx001xxxxxxxxxxxxx
ld1roh. */
- return 2477;
+ return 2480;
}
}
else
@@ -10262,7 +10295,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0101xxxxx111xxxxxxxxxxxxx
fmmla. */
- return 2470;
+ return 2473;
}
else
{
@@ -10295,7 +10328,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0011xxxxx111xxxxxxxxxxxxx
bfmmla. */
- return 2494;
+ return 2497;
}
else
{
@@ -10325,7 +10358,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0111xxxxx111xxxxxxxxxxxxx
fmmla. */
- return 2471;
+ return 2474;
}
else
{
@@ -10454,7 +10487,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1101xxxxx000x00xxxxxxxxxx
zip1. */
- return 2480;
+ return 2483;
}
else
{
@@ -10464,7 +10497,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1101xxxxx000010xxxxxxxxxx
uzp1. */
- return 2482;
+ return 2485;
}
else
{
@@ -10472,7 +10505,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1101xxxxx000110xxxxxxxxxx
trn1. */
- return 2484;
+ return 2487;
}
}
}
@@ -10484,7 +10517,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1101xxxxx000x01xxxxxxxxxx
zip2. */
- return 2481;
+ return 2484;
}
else
{
@@ -10494,7 +10527,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1101xxxxx000011xxxxxxxxxx
uzp2. */
- return 2483;
+ return 2486;
}
else
{
@@ -10502,7 +10535,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1101xxxxx000111xxxxxxxxxx
trn2. */
- return 2485;
+ return 2488;
}
}
}
@@ -10599,7 +10632,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1x1110100xxxxxxxxxxxxx
revd. */
- return 2407;
+ return 2410;
}
}
}
@@ -11561,7 +11594,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1000xxxxx100110xxxxxxxxxx
smmla. */
- return 2464;
+ return 2467;
}
else
{
@@ -11569,7 +11602,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1100xxxxx100110xxxxxxxxxx
usmmla. */
- return 2466;
+ return 2469;
}
}
else
@@ -11578,7 +11611,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1x10xxxxx100110xxxxxxxxxx
ummla. */
- return 2465;
+ return 2468;
}
}
}
@@ -13074,7 +13107,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x10x1xxxxx000xxxxxxxxxxxxx
ld1row. */
- return 2474;
+ return 2477;
}
else
{
@@ -13082,7 +13115,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x11x1xxxxx000xxxxxxxxxxxxx
ld1rod. */
- return 2475;
+ return 2478;
}
}
}
@@ -13456,7 +13489,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x10x1xxxxx001xxxxxxxxxxxxx
ld1row. */
- return 2478;
+ return 2481;
}
else
{
@@ -13464,7 +13497,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x11x1xxxxx001xxxxxxxxxxxxx
ld1rod. */
- return 2479;
+ return 2482;
}
}
}
@@ -13807,7 +13840,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx01xxxxxxxxxxxxxx
psel. */
- return 2410;
+ return 2413;
}
else
{
@@ -14909,7 +14942,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x110001x10101xxxxxxxxxxxxx
bfcvt. */
- return 2495;
+ return 2498;
}
}
else
@@ -16978,7 +17011,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x001110xx0xxxxx1x1001xxxxxxxxxx
smmla. */
- return 2486;
+ return 2489;
}
}
}
@@ -17011,7 +17044,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x001110xx0xxxxx1x0101xxxxxxxxxx
sdot. */
- return 2412;
+ return 2415;
}
}
else
@@ -17085,7 +17118,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x001110xx0xxxxx1x1011xxxxxxxxxx
usmmla. */
- return 2488;
+ return 2491;
}
}
}
@@ -17118,7 +17151,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x001110xx0xxxxx1x0111xxxxxxxxxx
usdot. */
- return 2489;
+ return 2492;
}
}
else
@@ -17165,7 +17198,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x001110000xxxxxxxxxxxxxxxxxxxxx
eor3. */
- return 2419;
+ return 2422;
}
else
{
@@ -17173,7 +17206,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x001110100xxxxxxxxxxxxxxxxxxxxx
xar. */
- return 2421;
+ return 2424;
}
}
else
@@ -17184,7 +17217,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x001110x10xxxxx0xxxxxxxxxxxxxxx
sm3ss1. */
- return 2423;
+ return 2426;
}
else
{
@@ -17198,7 +17231,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x001110010xxxxx1xxx00xxxxxxxxxx
sm3tt1a. */
- return 2424;
+ return 2427;
}
else
{
@@ -17206,7 +17239,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x001110110xxxxx1xxx00xxxxxxxxxx
sha512su0. */
- return 2417;
+ return 2420;
}
}
else
@@ -17215,7 +17248,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x001110x10xxxxx1xxx10xxxxxxxxxx
sm3tt2a. */
- return 2426;
+ return 2429;
}
}
else
@@ -17228,7 +17261,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x001110010xxxxx1xxx01xxxxxxxxxx
sm3tt1b. */
- return 2425;
+ return 2428;
}
else
{
@@ -17236,7 +17269,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x001110110xxxxx1xxx01xxxxxxxxxx
sm4e. */
- return 2430;
+ return 2433;
}
}
else
@@ -17245,7 +17278,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x001110x10xxxxx1xxx11xxxxxxxxxx
sm3tt2b. */
- return 2427;
+ return 2430;
}
}
}
@@ -17426,7 +17459,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx101110xx0xxxxx100101xxxxxxxxxx
udot. */
- return 2411;
+ return 2414;
}
}
else
@@ -17457,7 +17490,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx101110xx0xxxxx101x01xxxxxxxxxx
ummla. */
- return 2487;
+ return 2490;
}
else
{
@@ -17476,7 +17509,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx101110xx0xxxxx1x1011xxxxxxxxxx
bfmmla. */
- return 2503;
+ return 2506;
}
else
{
@@ -17486,7 +17519,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx1011100x0xxxxx1x1111xxxxxxxxxx
bfdot. */
- return 2501;
+ return 2504;
}
else
{
@@ -17496,7 +17529,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x01011101x0xxxxx1x1111xxxxxxxxxx
bfmlalb. */
- return 2508;
+ return 2511;
}
else
{
@@ -17504,7 +17537,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11011101x0xxxxx1x1111xxxxxxxxxx
bfmlalt. */
- return 2507;
+ return 2510;
}
}
}
@@ -18088,7 +18121,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000011101x1xxxx1011010xxxxxxxxxx
bfcvtn. */
- return 2504;
+ return 2507;
}
else
{
@@ -18096,7 +18129,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010011101x1xxxx1011010xxxxxxxxxx
bfcvtn2. */
- return 2505;
+ return 2508;
}
}
}
@@ -18414,7 +18447,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x001110xx1xxxxx0xxxxxxxxxxxxxxx
bcax. */
- return 2422;
+ return 2425;
}
}
else
@@ -19025,7 +19058,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
11001110xx1xxxxx100000xxxxxxxxxx
sha512h. */
- return 2415;
+ return 2418;
}
}
}
@@ -19077,7 +19110,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
11001110xx1xxxxx110000xxxxxxxxxx
sm3partw1. */
- return 2428;
+ return 2431;
}
}
}
@@ -19320,7 +19353,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x001110xx1xxxxx100010xxxxxxxxxx
sha512su1. */
- return 2418;
+ return 2421;
}
}
else
@@ -19396,7 +19429,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x0011100x1xxxxx110010xxxxxxxxxx
sm4ekey. */
- return 2431;
+ return 2434;
}
}
else
@@ -20222,7 +20255,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x001110xx1xxxxx100001xxxxxxxxxx
sha512h2. */
- return 2416;
+ return 2419;
}
}
else
@@ -20254,7 +20287,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x0011100x1xxxxx110001xxxxxxxxxx
sm3partw2. */
- return 2429;
+ return 2432;
}
}
else
@@ -20494,7 +20527,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x001110xx1xxxxx100011xxxxxxxxxx
rax1. */
- return 2420;
+ return 2423;
}
}
else
@@ -20526,7 +20559,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x01011100x1xxxxx110011xxxxxxxxxx
fmlal2. */
- return 2434;
+ return 2437;
}
else
{
@@ -20534,7 +20567,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11011100x1xxxxx110011xxxxxxxxxx
fmlal2. */
- return 2438;
+ return 2441;
}
}
}
@@ -20556,7 +20589,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x01011101x1xxxxx110011xxxxxxxxxx
fmlsl2. */
- return 2435;
+ return 2438;
}
else
{
@@ -20564,7 +20597,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11011101x1xxxxx110011xxxxxxxxxx
fmlsl2. */
- return 2439;
+ return 2442;
}
}
}
@@ -20603,7 +20636,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x00011100x1xxxxx111011xxxxxxxxxx
fmlal. */
- return 2432;
+ return 2435;
}
else
{
@@ -20611,7 +20644,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10011100x1xxxxx111011xxxxxxxxxx
fmlal. */
- return 2436;
+ return 2439;
}
}
else
@@ -20633,7 +20666,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x00011101x1xxxxx111011xxxxxxxxxx
fmlsl. */
- return 2433;
+ return 2436;
}
else
{
@@ -20641,7 +20674,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10011101x1xxxxx111011xxxxxxxxxx
fmlsl. */
- return 2437;
+ return 2440;
}
}
else
@@ -22449,7 +22482,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0001111xxxxxxxx0000x0xxxxxxxxxx
fmlal. */
- return 2440;
+ return 2443;
}
else
{
@@ -22457,7 +22490,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1001111xxxxxxxx0000x0xxxxxxxxxx
fmlal. */
- return 2444;
+ return 2447;
}
}
else
@@ -22479,7 +22512,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0001111xxxxxxxx0100x0xxxxxxxxxx
fmlsl. */
- return 2441;
+ return 2444;
}
else
{
@@ -22487,7 +22520,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1001111xxxxxxxx0100x0xxxxxxxxxx
fmlsl. */
- return 2445;
+ return 2448;
}
}
else
@@ -22993,7 +23026,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0101111xxxxxxxx1000x0xxxxxxxxxx
fmlal2. */
- return 2442;
+ return 2445;
}
else
{
@@ -23001,7 +23034,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1101111xxxxxxxx1000x0xxxxxxxxxx
fmlal2. */
- return 2446;
+ return 2449;
}
}
}
@@ -23023,7 +23056,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0101111xxxxxxxx1100x0xxxxxxxxxx
fmlsl2. */
- return 2443;
+ return 2446;
}
else
{
@@ -23031,7 +23064,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1101111xxxxxxxx1100x0xxxxxxxxxx
fmlsl2. */
- return 2447;
+ return 2450;
}
}
}
@@ -23087,7 +23120,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx001111xxxxxxxx1110x0xxxxxxxxxx
sdot. */
- return 2414;
+ return 2417;
}
else
{
@@ -23095,7 +23128,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx101111xxxxxxxx1110x0xxxxxxxxxx
udot. */
- return 2413;
+ return 2416;
}
}
}
@@ -23198,7 +23231,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx00111100xxxxxx1111x0xxxxxxxxxx
sudot. */
- return 2491;
+ return 2494;
}
else
{
@@ -23206,7 +23239,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx00111110xxxxxx1111x0xxxxxxxxxx
usdot. */
- return 2490;
+ return 2493;
}
}
else
@@ -23217,7 +23250,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx00111101xxxxxx1111x0xxxxxxxxxx
bfdot. */
- return 2502;
+ return 2505;
}
else
{
@@ -23227,7 +23260,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x000111111xxxxxx1111x0xxxxxxxxxx
bfmlalb. */
- return 2510;
+ return 2513;
}
else
{
@@ -23235,7 +23268,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x100111111xxxxxx1111x0xxxxxxxxxx
bfmlalt. */
- return 2509;
+ return 2512;
}
}
}
@@ -23722,30 +23755,30 @@ aarch64_find_next_opcode (const aarch64_opcode *opcode)
int value;
switch (key)
{
- case 2381: value = 2383; break; /* mov --> mova. */
- case 2383: return NULL; /* mova --> NULL. */
- case 2380: value = 2382; break; /* mov --> mova. */
- case 2382: return NULL; /* mova --> NULL. */
- case 2385: value = 2390; break; /* ld1b --> ld1b. */
- case 2390: return NULL; /* ld1b --> NULL. */
- case 2387: value = 2392; break; /* ld1w --> ld1w. */
- case 2392: return NULL; /* ld1w --> NULL. */
- case 2386: value = 2391; break; /* ld1h --> ld1h. */
- case 2391: return NULL; /* ld1h --> NULL. */
- case 2388: value = 2393; break; /* ld1d --> ld1d. */
- case 2393: return NULL; /* ld1d --> NULL. */
- case 2395: value = 2400; break; /* st1b --> st1b. */
- case 2400: return NULL; /* st1b --> NULL. */
- case 2397: value = 2402; break; /* st1w --> st1w. */
- case 2402: return NULL; /* st1w --> NULL. */
- case 2396: value = 2401; break; /* st1h --> st1h. */
- case 2401: return NULL; /* st1h --> NULL. */
- case 2398: value = 2403; break; /* st1d --> st1d. */
- case 2403: return NULL; /* st1d --> NULL. */
- case 2389: value = 2394; break; /* ld1q --> ld1q. */
- case 2394: return NULL; /* ld1q --> NULL. */
- case 2399: value = 2404; break; /* st1q --> st1q. */
- case 2404: return NULL; /* st1q --> NULL. */
+ case 2384: value = 2386; break; /* mov --> mova. */
+ case 2386: return NULL; /* mova --> NULL. */
+ case 2383: value = 2385; break; /* mov --> mova. */
+ case 2385: return NULL; /* mova --> NULL. */
+ case 2388: value = 2393; break; /* ld1b --> ld1b. */
+ case 2393: return NULL; /* ld1b --> NULL. */
+ case 2390: value = 2395; break; /* ld1w --> ld1w. */
+ case 2395: return NULL; /* ld1w --> NULL. */
+ case 2389: value = 2394; break; /* ld1h --> ld1h. */
+ case 2394: return NULL; /* ld1h --> NULL. */
+ case 2391: value = 2396; break; /* ld1d --> ld1d. */
+ case 2396: return NULL; /* ld1d --> NULL. */
+ case 2398: value = 2403; break; /* st1b --> st1b. */
+ case 2403: return NULL; /* st1b --> NULL. */
+ case 2400: value = 2405; break; /* st1w --> st1w. */
+ case 2405: return NULL; /* st1w --> NULL. */
+ case 2399: value = 2404; break; /* st1h --> st1h. */
+ case 2404: return NULL; /* st1h --> NULL. */
+ case 2401: value = 2406; break; /* st1d --> st1d. */
+ case 2406: return NULL; /* st1d --> NULL. */
+ case 2392: value = 2397; break; /* ld1q --> ld1q. */
+ case 2397: return NULL; /* ld1q --> NULL. */
+ case 2402: value = 2407; break; /* st1q --> st1q. */
+ case 2407: return NULL; /* st1q --> NULL. */
case 12: value = 19; break; /* add --> addg. */
case 19: return NULL; /* addg --> NULL. */
case 16: value = 20; break; /* sub --> subg. */
@@ -23897,8 +23930,8 @@ aarch64_find_next_opcode (const aarch64_opcode *opcode)
case 824: return NULL; /* fsqrt --> NULL. */
case 832: value = 833; break; /* frintz --> frintz. */
case 833: return NULL; /* frintz --> NULL. */
- case 825: value = 2506; break; /* fcvt --> bfcvt. */
- case 2506: return NULL; /* bfcvt --> NULL. */
+ case 825: value = 2509; break; /* fcvt --> bfcvt. */
+ case 2509: return NULL; /* bfcvt --> NULL. */
case 834: value = 835; break; /* frinta --> frinta. */
case 835: return NULL; /* frinta --> NULL. */
case 836: value = 837; break; /* frintx --> frintx. */
diff --git a/opcodes/aarch64-tbl.h b/opcodes/aarch64-tbl.h
index 3c0e990f..07179c69 100644
--- a/opcodes/aarch64-tbl.h
+++ b/opcodes/aarch64-tbl.h
@@ -5128,6 +5128,8 @@ const struct aarch64_opcode aarch64_opcode_table[] =
/* SME instructions. */
SME_INSN ("addha", 0xc0900000, 0xffff001c, sme_misc, 0, OP4 (SME_ZAda_2b, SVE_Pg3, SME_Pm, SVE_Zn), OP_SME_ZADA_PN_PM_ZN_S, 0, 0),
SME_I64_INSN ("addha", 0xc0d00000, 0xffff0018, sme_misc, 0, OP4 (SME_ZAda_3b, SVE_Pg3, SME_Pm, SVE_Zn), OP_SME_ZADA_PN_PM_ZN_D, 0, 0),
+ SME_INSN ("addspl", 0x04605800, 0xffe0f800, sme_misc, 0, OP3 (Rd_SP, SVE_Rn_SP, SVE_SIMM6), OP_SVE_XXU, 0, 0),
+ SME_INSN ("addsvl", 0x04205800, 0xffe0f800, sme_misc, 0, OP3 (Rd_SP, SVE_Rn_SP, SVE_SIMM6), OP_SVE_XXU, 0, 0),
SME_INSN ("addva", 0xc0910000, 0xffff001c, sme_misc, 0, OP4 (SME_ZAda_2b, SVE_Pg3, SME_Pm, SVE_Zn), OP_SME_ZADA_PN_PM_ZN_S, 0, 0),
SME_I64_INSN ("addva", 0xc0d10000, 0xffff0018, sme_misc, 0, OP4 (SME_ZAda_3b, SVE_Pg3, SME_Pm, SVE_Zn), OP_SME_ZADA_PN_PM_ZN_D, 0, 0),
SME_INSN ("bfmopa", 0x81800000, 0xffe0001c, sme_misc, 0, OP5 (SME_ZAda_2b, SVE_Pg3, SME_Pm, SVE_Zn, SVE_Zm_16), OP_SME_ZADA_PN_PM_ZN_ZM, 0, 0),
@@ -5138,6 +5140,7 @@ const struct aarch64_opcode aarch64_opcode_table[] =
SME_INSN ("fmops", 0x80800010, 0xffe0001c, sme_misc, 0, OP5 (SME_ZAda_2b, SVE_Pg3, SME_Pm, SVE_Zn, SVE_Zm_16), OP_SME_ZADA_S_PM_PM_S_S, 0, 0),
SME_F64_INSN ("fmops", 0x80c00010, 0xffe00018, sme_misc, 0, OP5 (SME_ZAda_3b, SVE_Pg3, SME_Pm, SVE_Zn, SVE_Zm_16), OP_SME_ZADA_D_PM_PM_D_D, 0, 0),
SME_INSN ("fmops", 0x81a00010, 0xffe0001c, sme_misc, 0, OP5 (SME_ZAda_2b, SVE_Pg3, SME_Pm, SVE_Zn, SVE_Zm_16), OP_SME_ZADA_S_PM_PM_H_H, 0, 0),
+ SME_INSN ("rdsvl", 0x04bf5800, 0xfffff800, sme_misc, 0, OP2 (Rd, SVE_SIMM6), OP_SVE_XU, 0, 0),
SME_INSN ("smopa", 0xa0800000, 0xffe0001c, sme_misc, 0, OP5 (SME_ZAda_2b, SVE_Pg3, SME_Pm, SVE_Zn, SVE_Zm_16), OP_SME_ZADA_S_PM_PM_B_B, 0, 0),
SME_I64_INSN ("smopa", 0xa0c00000, 0xffe00018, sme_misc, 0, OP5 (SME_ZAda_3b, SVE_Pg3, SME_Pm, SVE_Zn, SVE_Zm_16), OP_SME_ZADA_D_PM_PM_H_H, 0, 0),
SME_INSN ("smops", 0xa0800010, 0xffe0001c, sme_misc, 0, OP5 (SME_ZAda_2b, SVE_Pg3, SME_Pm, SVE_Zn, SVE_Zm_16), OP_SME_ZADA_S_PM_PM_B_B, 0, 0),
--
2.19.1