1554 lines
96 KiB
Diff
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
|
|
|