From bd5218efac195b1095c5d939f487e89345d72a93 Mon Sep 17 00:00:00 2001 From: Richard Sandiford 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