This is the mail archive of the
binutils-cvs@sourceware.org
mailing list for the binutils project.
[binutils-gdb] [binutils][aarch64] Add SVE2 instructions.
- From: Matthew Malcomson <matmal01 at sourceware dot org>
- To: bfd-cvs at sourceware dot org
- Date: 9 May 2019 09:31:56 -0000
- Subject: [binutils-gdb] [binutils][aarch64] Add SVE2 instructions.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=42e6288f9f9d7dfe560d2bed1fb5e7f27ac3256f
commit 42e6288f9f9d7dfe560d2bed1fb5e7f27ac3256f
Author: Matthew Malcomson <matthew.malcomson@arm.com>
Date: Thu May 9 10:29:28 2019 +0100
[binutils][aarch64] Add SVE2 instructions.
This patch adds all the SVE2 instructions and their associated qualifier
sets.
Ok for trunk?
opcodes/ChangeLog:
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
* aarch64-dis-2.c: Regenerate.
* aarch64-tbl.h (OP_SVE_BBU): New variant set.
(OP_SVE_BBB): New variant set.
(OP_SVE_DDDD): New variant set.
(OP_SVE_HHH): New variant set.
(OP_SVE_HHHU): New variant set.
(OP_SVE_SSS): New variant set.
(OP_SVE_SSSU): New variant set.
(OP_SVE_SHH): New variant set.
(OP_SVE_SBBU): New variant set.
(OP_SVE_DSS): New variant set.
(OP_SVE_DHHU): New variant set.
(OP_SVE_VMV_HSD_BHS): New variant set.
(OP_SVE_VVU_HSD_BHS): New variant set.
(OP_SVE_VVVU_SD_BH): New variant set.
(OP_SVE_VVVU_BHSD): New variant set.
(OP_SVE_VVV_QHD_DBS): New variant set.
(OP_SVE_VVV_HSD_BHS): New variant set.
(OP_SVE_VVV_HSD_BHS2): New variant set.
(OP_SVE_VVV_BHS_HSD): New variant set.
(OP_SVE_VV_BHS_HSD): New variant set.
(OP_SVE_VVV_SD): New variant set.
(OP_SVE_VVU_BHS_HSD): New variant set.
(OP_SVE_VZVV_SD): New variant set.
(OP_SVE_VZVV_BH): New variant set.
(OP_SVE_VZV_SD): New variant set.
(aarch64_opcode_table): Add sve2 instructions.
Diff:
---
opcodes/ChangeLog | 30 +
opcodes/aarch64-dis-2.c | 10173 ++++++++++++++++++++++++++++++----------------
opcodes/aarch64-tbl.h | 419 ++
3 files changed, 7125 insertions(+), 3497 deletions(-)
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 86b3f42..331932c 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,5 +1,35 @@
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
+ * aarch64-dis-2.c: Regenerate.
+ * aarch64-tbl.h (OP_SVE_BBU): New variant set.
+ (OP_SVE_BBB): New variant set.
+ (OP_SVE_DDDD): New variant set.
+ (OP_SVE_HHH): New variant set.
+ (OP_SVE_HHHU): New variant set.
+ (OP_SVE_SSS): New variant set.
+ (OP_SVE_SSSU): New variant set.
+ (OP_SVE_SHH): New variant set.
+ (OP_SVE_SBBU): New variant set.
+ (OP_SVE_DSS): New variant set.
+ (OP_SVE_DHHU): New variant set.
+ (OP_SVE_VMV_HSD_BHS): New variant set.
+ (OP_SVE_VVU_HSD_BHS): New variant set.
+ (OP_SVE_VVVU_SD_BH): New variant set.
+ (OP_SVE_VVVU_BHSD): New variant set.
+ (OP_SVE_VVV_QHD_DBS): New variant set.
+ (OP_SVE_VVV_HSD_BHS): New variant set.
+ (OP_SVE_VVV_HSD_BHS2): New variant set.
+ (OP_SVE_VVV_BHS_HSD): New variant set.
+ (OP_SVE_VV_BHS_HSD): New variant set.
+ (OP_SVE_VVV_SD): New variant set.
+ (OP_SVE_VVU_BHS_HSD): New variant set.
+ (OP_SVE_VZVV_SD): New variant set.
+ (OP_SVE_VZVV_BH): New variant set.
+ (OP_SVE_VZV_SD): New variant set.
+ (aarch64_opcode_table): Add sve2 instructions.
+
+2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
+
* aarch64-asm-2.c: Regenerated.
* aarch64-dis-2.c: Regenerated.
* aarch64-opc-2.c: Regenerated.
diff --git a/opcodes/aarch64-dis-2.c b/opcodes/aarch64-dis-2.c
index 3dccd6d..f86077d 100644
--- a/opcodes/aarch64-dis-2.c
+++ b/opcodes/aarch64-dis-2.c
@@ -2368,7 +2368,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00011001000xxxxxxxxx00xxxxxxxxxx
stlurb. */
- return 2086;
+ return 2375;
}
else
{
@@ -2376,7 +2376,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
10011001000xxxxxxxxx00xxxxxxxxxx
stlur. */
- return 2094;
+ return 2383;
}
}
else
@@ -2387,7 +2387,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01011001000xxxxxxxxx00xxxxxxxxxx
stlurh. */
- return 2090;
+ return 2379;
}
else
{
@@ -2395,7 +2395,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
11011001000xxxxxxxxx00xxxxxxxxxx
stlur. */
- return 2097;
+ return 2386;
}
}
}
@@ -2475,7 +2475,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00011001010xxxxxxxxx00xxxxxxxxxx
ldapurb. */
- return 2087;
+ return 2376;
}
else
{
@@ -2483,7 +2483,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
10011001010xxxxxxxxx00xxxxxxxxxx
ldapur. */
- return 2095;
+ return 2384;
}
}
else
@@ -2494,7 +2494,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01011001010xxxxxxxxx00xxxxxxxxxx
ldapurh. */
- return 2091;
+ return 2380;
}
else
{
@@ -2502,7 +2502,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
11011001010xxxxxxxxx00xxxxxxxxxx
ldapur. */
- return 2098;
+ return 2387;
}
}
}
@@ -2585,7 +2585,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00011001100xxxxxxxxx00xxxxxxxxxx
ldapursb. */
- return 2089;
+ return 2378;
}
else
{
@@ -2593,7 +2593,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
10011001100xxxxxxxxx00xxxxxxxxxx
ldapursw. */
- return 2096;
+ return 2385;
}
}
else
@@ -2602,7 +2602,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1011001100xxxxxxxxx00xxxxxxxxxx
ldapursh. */
- return 2093;
+ return 2382;
}
}
else
@@ -2613,7 +2613,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011001110xxxxxxxxx00xxxxxxxxxx
ldapursb. */
- return 2088;
+ return 2377;
}
else
{
@@ -2621,7 +2621,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1011001110xxxxxxxxx00xxxxxxxxxx
ldapursh. */
- return 2092;
+ return 2381;
}
}
}
@@ -3107,7 +3107,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11010x00xxxxxx0xx10xxxxxxxxxx
setf8. */
- return 2084;
+ return 2373;
}
else
{
@@ -3115,7 +3115,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11010x00xxxxxx1xx10xxxxxxxxxx
setf16. */
- return 2085;
+ return 2374;
}
}
else
@@ -3261,7 +3261,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11010000xxxxxxxxx01xxxxxxxxxx
rmif. */
- return 2083;
+ return 2372;
}
else
{
@@ -4022,39 +4022,72 @@ aarch64_opcode_lookup_1 (uint32_t word)
}
else
{
- if (((word >> 23) & 0x1) == 0)
- {
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x10001x00x0xxxxx000xxxxxxxxxxxxx
- ld1sb. */
- return 1561;
- }
- else
+ if (((word >> 31) & 0x1) == 0)
{
- if (((word >> 31) & 0x1) == 0)
+ if (((word >> 12) & 0x1) == 0)
{
if (((word >> 10) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 010001x01x0xxxxx000xx0xxxxxxxxxx
- sdot. */
- return 1816;
+ if (((word >> 11) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 010001x0xx0xxxxx000000xxxxxxxxxx
+ sdot. */
+ return 1816;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 010001x0xx0xxxxx000010xxxxxxxxxx
+ sqdmlalbt. */
+ return 2164;
+ }
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 010001x01x0xxxxx000xx1xxxxxxxxxx
- udot. */
- return 1968;
+ if (((word >> 11) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 010001x0xx0xxxxx000001xxxxxxxxxx
+ udot. */
+ return 1968;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 010001x0xx0xxxxx000011xxxxxxxxxx
+ sqdmlslbt. */
+ return 2171;
+ }
}
}
else
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
+ 010001x0xx0xxxxx0001xxxxxxxxxxxx
+ cdot. */
+ return 2055;
+ }
+ }
+ else
+ {
+ if (((word >> 23) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 110001x00x0xxxxx000xxxxxxxxxxxxx
+ ld1sb. */
+ return 1561;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
110001x01x0xxxxx000xxxxxxxxxxxxx
ld1sh. */
return 1572;
@@ -4153,52 +4186,44 @@ aarch64_opcode_lookup_1 (uint32_t word)
{
if (((word >> 23) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x10001x00x1xxxxx000xxxxxxxxxxxxx
- prfb. */
- return 1764;
- }
- else
- {
if (((word >> 31) & 0x1) == 0)
{
if (((word >> 10) & 0x1) == 0)
{
- if (((word >> 22) & 0x1) == 0)
+ if (((word >> 11) & 0x1) == 0)
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- 010001x0101xxxxx000xx0xxxxxxxxxx
- sdot. */
- return 1817;
+ 010001x00x1xxxxx000x00xxxxxxxxxx
+ sqrdmlah. */
+ return 2189;
}
else
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- 010001x0111xxxxx000xx0xxxxxxxxxx
- sdot. */
- return 1818;
+ 010001x00x1xxxxx000x10xxxxxxxxxx
+ mla. */
+ return 2098;
}
}
else
{
- if (((word >> 22) & 0x1) == 0)
+ if (((word >> 11) & 0x1) == 0)
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- 010001x0101xxxxx000xx1xxxxxxxxxx
- udot. */
- return 1969;
+ 010001x00x1xxxxx000x01xxxxxxxxxx
+ sqrdmlsh. */
+ return 2193;
}
else
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- 010001x0111xxxxx000xx1xxxxxxxxxx
- udot. */
- return 1970;
+ 010001x00x1xxxxx000x11xxxxxxxxxx
+ mls. */
+ return 2101;
}
}
}
@@ -4206,585 +4231,747 @@ aarch64_opcode_lookup_1 (uint32_t word)
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- 110001x01x1xxxxx000xxxxxxxxxxxxx
- ld1sh. */
- return 1573;
+ 110001x00x1xxxxx000xxxxxxxxxxxxx
+ prfb. */
+ return 1764;
}
}
- }
- }
- }
- else
- {
- if (((word >> 30) & 0x1) == 0)
- {
- if (((word >> 31) & 0x1) == 0)
- {
- if (((word >> 21) & 0x1) == 0)
+ else
{
- if (((word >> 16) & 0x1) == 0)
+ if (((word >> 31) & 0x1) == 0)
{
- if (((word >> 18) & 0x1) == 0)
+ if (((word >> 10) & 0x1) == 0)
{
- if (((word >> 19) & 0x1) == 0)
+ if (((word >> 11) & 0x1) == 0)
{
- if (((word >> 20) & 0x1) == 0)
+ if (((word >> 12) & 0x1) == 0)
+ {
+ if (((word >> 22) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 010001x0101xxxxx000000xxxxxxxxxx
+ sdot. */
+ return 1817;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 010001x0111xxxxx000000xxxxxxxxxx
+ sdot. */
+ return 1818;
+ }
+ }
+ else
+ {
+ if (((word >> 22) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 010001x0101xxxxx000100xxxxxxxxxx
+ sqrdmlah. */
+ return 2190;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 010001x0111xxxxx000100xxxxxxxxxx
+ sqrdmlah. */
+ return 2191;
+ }
+ }
+ }
+ else
+ {
+ if (((word >> 22) & 0x1) == 0)
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- 000001x0xx0000x0100xxxxxxxxxxxxx
- asr. */
- return 1291;
+ 010001x0101xxxxx000x10xxxxxxxxxx
+ mla. */
+ return 2099;
}
else
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- 000001x0xx0100x0100xxxxxxxxxxxxx
- asr. */
- return 1289;
+ 010001x0111xxxxx000x10xxxxxxxxxx
+ mla. */
+ return 2100;
}
}
- else
- {
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x0xx0x10x0100xxxxxxxxxxxxx
- asr. */
- return 1290;
- }
}
else
{
- if (((word >> 20) & 0x1) == 0)
+ if (((word >> 11) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x0xx00x1x0100xxxxxxxxxxxxx
- asrd. */
- return 1292;
+ if (((word >> 12) & 0x1) == 0)
+ {
+ if (((word >> 22) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 010001x0101xxxxx000001xxxxxxxxxx
+ udot. */
+ return 1969;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 010001x0111xxxxx000001xxxxxxxxxx
+ udot. */
+ return 1970;
+ }
+ }
+ else
+ {
+ if (((word >> 22) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 010001x0101xxxxx000101xxxxxxxxxx
+ sqrdmlsh. */
+ return 2194;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 010001x0111xxxxx000101xxxxxxxxxx
+ sqrdmlsh. */
+ return 2195;
+ }
+ }
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x0xx01x1x0100xxxxxxxxxxxxx
- asrr. */
- return 1293;
+ if (((word >> 22) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 010001x0101xxxxx000x11xxxxxxxxxx
+ mls. */
+ return 2102;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 010001x0111xxxxx000x11xxxxxxxxxx
+ mls. */
+ return 2103;
+ }
}
}
}
else
{
- if (((word >> 17) & 0x1) == 0)
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 110001x01x1xxxxx000xxxxxxxxxxxxx
+ ld1sh. */
+ return 1573;
+ }
+ }
+ }
+ }
+ }
+ else
+ {
+ if (((word >> 31) & 0x1) == 0)
+ {
+ if (((word >> 21) & 0x1) == 0)
+ {
+ if (((word >> 16) & 0x1) == 0)
+ {
+ if (((word >> 17) & 0x1) == 0)
+ {
+ if (((word >> 18) & 0x1) == 0)
{
- if (((word >> 18) & 0x1) == 0)
+ if (((word >> 19) & 0x1) == 0)
{
- if (((word >> 19) & 0x1) == 0)
+ if (((word >> 20) & 0x1) == 0)
{
- if (((word >> 20) & 0x1) == 0)
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 0x0001x0xx000000100xxxxxxxxxxxxx
+ asr. */
+ return 1291;
+ }
+ else
+ {
+ if (((word >> 30) & 0x1) == 0)
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- 000001x0xx000001100xxxxxxxxxxxxx
- lsr. */
- return 1735;
+ 000001x0xx010000100xxxxxxxxxxxxx
+ asr. */
+ return 1289;
}
else
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- 000001x0xx010001100xxxxxxxxxxxxx
- lsr. */
- return 1733;
+ 010001x0xx010000100xxxxxxxxxxxxx
+ shadd. */
+ return 2130;
}
}
- else
+ }
+ else
+ {
+ if (((word >> 20) & 0x1) == 0)
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- 000001x0xx0x1001100xxxxxxxxxxxxx
- lsr. */
- return 1734;
+ 0x0001x0xx001000100xxxxxxxxxxxxx
+ sqshl. */
+ return 2208;
+ }
+ else
+ {
+ if (((word >> 30) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx011000100xxxxxxxxxxxxx
+ asr. */
+ return 1290;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 010001x0xx011000100xxxxxxxxxxxxx
+ sqadd. */
+ return 2159;
+ }
}
- }
- else
- {
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x0xx0xx101100xxxxxxxxxxxxx
- lsrr. */
- return 1736;
}
}
else
{
- if (((word >> 18) & 0x1) == 0)
+ if (((word >> 19) & 0x1) == 0)
{
- if (((word >> 19) & 0x1) == 0)
+ if (((word >> 20) & 0x1) == 0)
{
- if (((word >> 20) & 0x1) == 0)
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 0x0001x0xx000100100xxxxxxxxxxxxx
+ asrd. */
+ return 1292;
+ }
+ else
+ {
+ if (((word >> 30) & 0x1) == 0)
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- 000001x0xx000011100xxxxxxxxxxxxx
- lsl. */
- return 1729;
+ 000001x0xx010100100xxxxxxxxxxxxx
+ asrr. */
+ return 1293;
}
else
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- 000001x0xx010011100xxxxxxxxxxxxx
- lsl. */
- return 1727;
+ 010001x0xx010100100xxxxxxxxxxxxx
+ srhadd. */
+ return 2221;
}
}
- else
- {
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x0xx0x1011100xxxxxxxxxxxxx
- lsl. */
- return 1728;
- }
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x0xx0xx111100xxxxxxxxxxxxx
- lslr. */
- return 1730;
+ if (((word >> 20) & 0x1) == 0)
+ {
+ if (((word >> 30) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx001100100xxxxxxxxxxxxx
+ srshr. */
+ return 2225;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 010001x0xx001100100xxxxxxxxxxxxx
+ sqshlr. */
+ return 2209;
+ }
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 0x0001x0xx011100100xxxxxxxxxxxxx
+ suqadd. */
+ return 2245;
+ }
}
}
}
- }
- else
- {
- if (((word >> 10) & 0x1) == 0)
+ else
{
- if (((word >> 12) & 0x1) == 0)
+ if (((word >> 18) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x0xx1xxxxx1000x0xxxxxxxxxx
- asr. */
- return 1287;
+ if (((word >> 19) & 0x1) == 0)
+ {
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 0x0001x0xx000010100xxxxxxxxxxxxx
+ srshl. */
+ return 2223;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 0x0001x0xx010010100xxxxxxxxxxxxx
+ shsub. */
+ return 2133;
+ }
+ }
+ else
+ {
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 0x0001x0xx001010100xxxxxxxxxxxxx
+ sqrshl. */
+ return 2201;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 0x0001x0xx011010100xxxxxxxxxxxxx
+ sqsub. */
+ return 2215;
+ }
+ }
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x0xx1xxxxx1001x0xxxxxxxxxx
- asr. */
- return 1288;
+ if (((word >> 19) & 0x1) == 0)
+ {
+ if (((word >> 20) & 0x1) == 0)
+ {
+ if (((word >> 30) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx000110100xxxxxxxxxxxxx
+ sqshl. */
+ return 2207;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 010001x0xx000110100xxxxxxxxxxxxx
+ srshlr. */
+ return 2224;
+ }
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 0x0001x0xx010110100xxxxxxxxxxxxx
+ shsubr. */
+ return 2134;
+ }
+ }
+ else
+ {
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 0x0001x0xx001110100xxxxxxxxxxxxx
+ sqrshlr. */
+ return 2202;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 0x0001x0xx011110100xxxxxxxxxxxxx
+ sqsubr. */
+ return 2216;
+ }
+ }
}
}
- else
+ }
+ else
+ {
+ if (((word >> 17) & 0x1) == 0)
{
- if (((word >> 11) & 0x1) == 0)
+ if (((word >> 18) & 0x1) == 0)
{
- if (((word >> 12) & 0x1) == 0)
+ if (((word >> 19) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x0xx1xxxxx100001xxxxxxxxxx
- lsr. */
- return 1731;
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 0x0001x0xx000001100xxxxxxxxxxxxx
+ lsr. */
+ return 1735;
+ }
+ else
+ {
+ if (((word >> 30) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx010001100xxxxxxxxxxxxx
+ lsr. */
+ return 1733;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 010001x0xx010001100xxxxxxxxxxxxx
+ uhadd. */
+ return 2258;
+ }
+ }
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x0xx1xxxxx100101xxxxxxxxxx
- lsr. */
- return 1732;
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 0x0001x0xx001001100xxxxxxxxxxxxx
+ uqshl. */
+ return 2288;
+ }
+ else
+ {
+ if (((word >> 30) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx011001100xxxxxxxxxxxxx
+ lsr. */
+ return 1734;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 010001x0xx011001100xxxxxxxxxxxxx
+ uqadd. */
+ return 2282;
+ }
+ }
}
}
else
{
- if (((word >> 12) & 0x1) == 0)
+ if (((word >> 19) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x0xx1xxxxx100011xxxxxxxxxx
- lsl. */
- return 1725;
+ if (((word >> 30) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx0x0101100xxxxxxxxxxxxx
+ lsrr. */
+ return 1736;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 010001x0xx0x0101100xxxxxxxxxxxxx
+ urhadd. */
+ return 2297;
+ }
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x0xx1xxxxx100111xxxxxxxxxx
- lsl. */
- return 1726;
+ if (((word >> 20) & 0x1) == 0)
+ {
+ if (((word >> 30) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx001101100xxxxxxxxxxxxx
+ urshr. */
+ return 2300;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 010001x0xx001101100xxxxxxxxxxxxx
+ uqshlr. */
+ return 2289;
+ }
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 0x0001x0xx011101100xxxxxxxxxxxxx
+ usqadd. */
+ return 2305;
+ }
}
}
}
- }
- }
- else
- {
- if (((word >> 22) & 0x1) == 0)
- {
- if (((word >> 23) & 0x1) == 0)
- {
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 100001x000xxxxxx100xxxxxxxxxxxxx
- ld1sb. */
- return 1563;
- }
- else
- {
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 100001x010xxxxxx100xxxxxxxxxxxxx
- ld1sh. */
- return 1576;
- }
- }
- else
- {
- if (((word >> 23) & 0x1) == 0)
- {
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 100001x001xxxxxx100xxxxxxxxxxxxx
- ld1rb. */
- return 1533;
- }
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 100001x011xxxxxx100xxxxxxxxxxxxx
- ld1rsw. */
- return 1554;
- }
- }
- }
- }
- else
- {
- if (((word >> 21) & 0x1) == 0)
- {
- if (((word >> 23) & 0x1) == 0)
- {
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x10001x00x0xxxxx100xxxxxxxxxxxxx
- ld1sb. */
- return 1562;
- }
- else
- {
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x10001x01x0xxxxx100xxxxxxxxxxxxx
- ld1sh. */
- return 1574;
- }
- }
- else
- {
- if (((word >> 22) & 0x1) == 0)
- {
- if (((word >> 23) & 0x1) == 0)
- {
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x10001x0001xxxxx100xxxxxxxxxxxxx
- ld1sb. */
- return 1567;
- }
- else
- {
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x10001x0101xxxxx100xxxxxxxxxxxxx
- ld1sh. */
- return 1579;
- }
- }
- else
- {
- if (((word >> 23) & 0x1) == 0)
- {
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x10001x0011xxxxx100xxxxxxxxxxxxx
- prfb. */
- return 1765;
- }
- else
- {
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x10001x0111xxxxx100xxxxxxxxxxxxx
- ld1sh. */
- return 1575;
- }
- }
- }
- }
- }
- }
- else
- {
- if (((word >> 15) & 0x1) == 0)
- {
- if (((word >> 21) & 0x1) == 0)
- {
- if (((word >> 30) & 0x1) == 0)
- {
- if (((word >> 31) & 0x1) == 0)
- {
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x0xx0xxxxx010xxxxxxxxxxxxx
- mla. */
- return 1738;
- }
- else
- {
- if (((word >> 23) & 0x1) == 0)
- {
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 100001x00x0xxxxx010xxxxxxxxxxxxx
- ld1b. */
- return 1499;
- }
- else
- {
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 100001x01x0xxxxx010xxxxxxxxxxxxx
- ld1h. */
- return 1519;
- }
- }
- }
- else
- {
- if (((word >> 23) & 0x1) == 0)
- {
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x10001x00x0xxxxx010xxxxxxxxxxxxx
- ld1b. */
- return 1504;
- }
- else
- {
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x10001x01x0xxxxx010xxxxxxxxxxxxx
- ld1h. */
- return 1524;
- }
- }
- }
- else
- {
- if (((word >> 30) & 0x1) == 0)
- {
- if (((word >> 31) & 0x1) == 0)
- {
- if (((word >> 11) & 0x1) == 0)
- {
- if (((word >> 12) & 0x1) == 0)
+ if (((word >> 18) & 0x1) == 0)
{
- if (((word >> 10) & 0x1) == 0)
+ if (((word >> 19) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x0xx1xxxxx010000xxxxxxxxxx
- index. */
- return 1490;
+ if (((word >> 20) & 0x1) == 0)
+ {
+ if (((word >> 30) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx000011100xxxxxxxxxxxxx
+ lsl. */
+ return 1729;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 010001x0xx000011100xxxxxxxxxxxxx
+ urshl. */
+ return 2298;
+ }
+ }
+ else
+ {
+ if (((word >> 30) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx010011100xxxxxxxxxxxxx
+ lsl. */
+ return 1727;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 010001x0xx010011100xxxxxxxxxxxxx
+ uhsub. */
+ return 2259;
+ }
+ }
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x0xx1xxxxx010001xxxxxxxxxx
- index. */
- return 1491;
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 0x0001x0xx001011100xxxxxxxxxxxxx
+ uqrshl. */
+ return 2283;
+ }
+ else
+ {
+ if (((word >> 30) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx011011100xxxxxxxxxxxxx
+ lsl. */
+ return 1728;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 010001x0xx011011100xxxxxxxxxxxxx
+ uqsub. */
+ return 2292;
+ }
+ }
}
}
else
{
- if (((word >> 22) & 0x1) == 0)
+ if (((word >> 19) & 0x1) == 0)
{
- if (((word >> 23) & 0x1) == 0)
+ if (((word >> 20) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x0001xxxxx01010xxxxxxxxxxx
- addvl. */
- return 1277;
+ if (((word >> 30) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx000111100xxxxxxxxxxxxx
+ uqshl. */
+ return 2287;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 010001x0xx000111100xxxxxxxxxxxxx
+ urshlr. */
+ return 2299;
+ }
+ }
+ else
+ {
+ if (((word >> 30) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx010111100xxxxxxxxxxxxx
+ lslr. */
+ return 1730;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 010001x0xx010111100xxxxxxxxxxxxx
+ uhsubr. */
+ return 2260;
+ }
+ }
+ }
+ else
+ {
+ if (((word >> 20) & 0x1) == 0)
+ {
+ if (((word >> 30) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx001111100xxxxxxxxxxxxx
+ sqshlu. */
+ return 2210;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 010001x0xx001111100xxxxxxxxxxxxx
+ uqrshlr. */
+ return 2284;
+ }
}
else
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- 000001x0101xxxxx01010xxxxxxxxxxx
- rdvl. */
- return 1799;
+ 0x0001x0xx011111100xxxxxxxxxxxxx
+ uqsubr. */
+ return 2293;
}
}
+ }
+ }
+ }
+ }
+ else
+ {
+ if (((word >> 10) & 0x1) == 0)
+ {
+ if (((word >> 12) & 0x1) == 0)
+ {
+ if (((word >> 30) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx1xxxxx1000x0xxxxxxxxxx
+ asr. */
+ return 1287;
+ }
+ else
+ {
+ if (((word >> 22) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 010001x0x01xxxxx1000x0xxxxxxxxxx
+ smlalb. */
+ return 2138;
+ }
else
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- 000001x0x11xxxxx01010xxxxxxxxxxx
- addpl. */
- return 1276;
+ 010001x0x11xxxxx1000x0xxxxxxxxxx
+ smlalb. */
+ return 2139;
}
}
}
else
{
- if (((word >> 10) & 0x1) == 0)
+ if (((word >> 30) & 0x1) == 0)
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- 000001x0xx1xxxxx010x10xxxxxxxxxx
- index. */
- return 1492;
+ 000001x0xx1xxxxx1001x0xxxxxxxxxx
+ asr. */
+ return 1288;
}
else
{
- [...]
[diff truncated at 100000 bytes]