* [binutils-gdb] aarch64: Add the SME2 UNPK instructions
@ 2023-03-30 10:16 Richard Sandiford
0 siblings, 0 replies; only message in thread
From: Richard Sandiford @ 2023-03-30 10:16 UTC (permalink / raw)
To: bfd-cvs
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=fa64dc802c82d07b93ac7d3c072a9ccbb99c6c0f
commit fa64dc802c82d07b93ac7d3c072a9ccbb99c6c0f
Author: Richard Sandiford <richard.sandiford@arm.com>
Date: Thu Mar 30 11:09:16 2023 +0100
aarch64: Add the SME2 UNPK instructions
This patch adds SUNPK and UUNPK, which unpack one register's
worth of elements to two registers' worth, or two registers'
worth to four registers' worth.
Diff:
---
gas/testsuite/gas/aarch64/sme2-29-invalid.d | 3 +
gas/testsuite/gas/aarch64/sme2-29-invalid.l | 39 +
gas/testsuite/gas/aarch64/sme2-29-invalid.s | 14 +
gas/testsuite/gas/aarch64/sme2-29-noarch.d | 3 +
gas/testsuite/gas/aarch64/sme2-29-noarch.l | 37 +
gas/testsuite/gas/aarch64/sme2-29.d | 45 +
gas/testsuite/gas/aarch64/sme2-29.s | 47 +
opcodes/aarch64-dis-2.c | 1466 ++++++++++++++-------------
opcodes/aarch64-tbl.h | 4 +
9 files changed, 947 insertions(+), 711 deletions(-)
diff --git a/gas/testsuite/gas/aarch64/sme2-29-invalid.d b/gas/testsuite/gas/aarch64/sme2-29-invalid.d
new file mode 100644
index 00000000000..ad85e2d6ffa
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-29-invalid.d
@@ -0,0 +1,3 @@
+#as: -march=armv8-a
+#source: sme2-29-invalid.s
+#error_output: sme2-29-invalid.l
diff --git a/gas/testsuite/gas/aarch64/sme2-29-invalid.l b/gas/testsuite/gas/aarch64/sme2-29-invalid.l
new file mode 100644
index 00000000000..893866c114f
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-29-invalid.l
@@ -0,0 +1,39 @@
+[^ :]+: Assembler messages:
+[^ :]+:[0-9]+: Error: expected '{' at operand 1 -- `sunpk 0,z0\.b'
+[^ :]+:[0-9]+: Error: expected a register or register list at operand 2 -- `sunpk {z0\.h,z1\.h},0'
+[^ :]+:[0-9]+: Error: missing braces at operand 1 -- `sunpk z0\.b,z0\.b'
+[^ :]+:[0-9]+: Error: operand mismatch -- `sunpk {z0\.b,z1\.b},z0\.b'
+[^ :]+:[0-9]+: Info: did you mean this\?
+[^ :]+:[0-9]+: Info: sunpk {z0\.h-z1\.h}, z0\.b
+[^ :]+:[0-9]+: Info: other valid variant\(s\):
+[^ :]+:[0-9]+: Info: sunpk {z0\.s-z1\.s}, z0\.h
+[^ :]+:[0-9]+: Info: sunpk {z0\.d-z1\.d}, z0\.s
+[^ :]+:[0-9]+: Error: operand mismatch -- `sunpk {z0\.h,z1\.h},z0\.h'
+[^ :]+:[0-9]+: Info: did you mean this\?
+[^ :]+:[0-9]+: Info: sunpk {z0\.h-z1\.h}, z0\.b
+[^ :]+:[0-9]+: Info: other valid variant\(s\):
+[^ :]+:[0-9]+: Info: sunpk {z0\.s-z1\.s}, z0\.h
+[^ :]+:[0-9]+: Info: sunpk {z0\.d-z1\.d}, z0\.s
+[^ :]+:[0-9]+: Error: start register out of range at operand 1 -- `sunpk {z1\.h,z2\.h},z0\.b'
+[^ :]+:[0-9]+: Error: operand mismatch -- `sunpk {z0\.b,z2\.b},z0\.b'
+[^ :]+:[0-9]+: Info: did you mean this\?
+[^ :]+:[0-9]+: Info: sunpk {z0\.h, z2\.h}, z0\.b
+[^ :]+:[0-9]+: Info: other valid variant\(s\):
+[^ :]+:[0-9]+: Info: sunpk {z0\.s, z2\.s}, z0\.h
+[^ :]+:[0-9]+: Info: sunpk {z0\.d, z2\.d}, z0\.s
+[^ :]+:[0-9]+: Error: expected a list of 4 registers at operand 1 -- `sunpk {z1\.h-z3\.h},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: expected a list of 4 registers at operand 1 -- `sunpk {z2\.h-z4\.h},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: expected a list of 4 registers at operand 1 -- `sunpk {z3\.h-z5\.h},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: operand mismatch -- `sunpk {z0\.s-z3\.s},z0\.b'
+[^ :]+:[0-9]+: Info: did you mean this\?
+[^ :]+:[0-9]+: Info: sunpk {z0\.h-z3\.h}, z0\.b
+[^ :]+:[0-9]+: Info: other valid variant\(s\):
+[^ :]+:[0-9]+: Info: sunpk {z0\.s-z3\.s}, z0\.h
+[^ :]+:[0-9]+: Info: sunpk {z0\.d-z3\.d}, z0\.s
+[^ :]+:[0-9]+: Error: expected an SVE vector register at operand 2 -- `sunpk {z0\.s-z3\.s},{x0\.s-x1\.s}'
+[^ :]+:[0-9]+: Error: operand mismatch -- `sunpk {z0\.s-z3\.s},{z0\.s-z3\.s}'
+[^ :]+:[0-9]+: Info: did you mean this\?
+[^ :]+:[0-9]+: Info: sunpk {z0\.s-z3\.s}, {z0\.h-z3\.h}
+[^ :]+:[0-9]+: Info: other valid variant\(s\):
+[^ :]+:[0-9]+: Info: sunpk {z0\.h-z3\.h}, {z0\.b-z3\.b}
+[^ :]+:[0-9]+: Info: sunpk {z0\.d-z3\.d}, {z0\.s-z3\.s}
diff --git a/gas/testsuite/gas/aarch64/sme2-29-invalid.s b/gas/testsuite/gas/aarch64/sme2-29-invalid.s
new file mode 100644
index 00000000000..2282dd214f4
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-29-invalid.s
@@ -0,0 +1,14 @@
+ sunpk 0, z0.b
+ sunpk { z0.h, z1.h }, 0
+
+ sunpk z0.b, z0.b
+ sunpk { z0.b, z1.b }, z0.b
+ sunpk { z0.h, z1.h }, z0.h
+ sunpk { z1.h, z2.h }, z0.b
+ sunpk { z0.b, z2.b }, z0.b
+ sunpk { z1.h - z3.h }, { z0.b - z1.b }
+ sunpk { z2.h - z4.h }, { z0.b - z1.b }
+ sunpk { z3.h - z5.h }, { z0.b - z1.b }
+ sunpk { z0.s - z3.s }, z0.b
+ sunpk { z0.s - z3.s }, { x0.s - x1.s }
+ sunpk { z0.s - z3.s }, { z0.s - z3.s }
diff --git a/gas/testsuite/gas/aarch64/sme2-29-noarch.d b/gas/testsuite/gas/aarch64/sme2-29-noarch.d
new file mode 100644
index 00000000000..73c02c50997
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-29-noarch.d
@@ -0,0 +1,3 @@
+#as: -march=armv8-a+sme
+#source: sme2-29.s
+#error_output: sme2-29-noarch.l
diff --git a/gas/testsuite/gas/aarch64/sme2-29-noarch.l b/gas/testsuite/gas/aarch64/sme2-29-noarch.l
new file mode 100644
index 00000000000..2777e1672b3
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-29-noarch.l
@@ -0,0 +1,37 @@
+[^ :]+: Assembler messages:
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.h,z1\.h},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z30\.h,z31\.h},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.h,z1\.h},z31\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.h-z3\.h},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z28\.h-z31\.h},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.h-z3\.h},{z30\.b-z31\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.s,z1\.s},z0\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z30\.s,z31\.s},z0\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.s,z1\.s},z31\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.s-z3\.s},{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z28\.s-z31\.s},{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.s-z3\.s},{z30\.h-z31\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.d,z1\.d},z0\.s'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z30\.d,z31\.d},z0\.s'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.d,z1\.d},z31\.s'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.d-z3\.d},{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z28\.d-z31\.d},{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `sunpk {z0\.d-z3\.d},{z30\.s-z31\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.h,z1\.h},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z30\.h,z31\.h},z0\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.h,z1\.h},z31\.b'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.h-z3\.h},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z28\.h-z31\.h},{z0\.b-z1\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.h-z3\.h},{z30\.b-z31\.b}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.s,z1\.s},z0\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z30\.s,z31\.s},z0\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.s,z1\.s},z31\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.s-z3\.s},{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z28\.s-z31\.s},{z0\.h-z1\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.s-z3\.s},{z30\.h-z31\.h}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.d,z1\.d},z0\.s'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z30\.d,z31\.d},z0\.s'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.d,z1\.d},z31\.s'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.d-z3\.d},{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z28\.d-z31\.d},{z0\.s-z1\.s}'
+[^ :]+:[0-9]+: Error: selected processor does not support `uunpk {z0\.d-z3\.d},{z30\.s-z31\.s}'
diff --git a/gas/testsuite/gas/aarch64/sme2-29.d b/gas/testsuite/gas/aarch64/sme2-29.d
new file mode 100644
index 00000000000..235b0554b8f
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-29.d
@@ -0,0 +1,45 @@
+#as: -march=armv8-a+sme2
+#objdump: -dr
+
+[^:]+: file format .*
+
+
+[^:]+:
+
+[^:]+:
+[^:]+: c165e000 sunpk {z0\.h-z1\.h}, z0\.b
+[^:]+: c165e01e sunpk {z30\.h-z31\.h}, z0\.b
+[^:]+: c165e3e0 sunpk {z0\.h-z1\.h}, z31\.b
+[^:]+: c175e000 sunpk {z0\.h-z3\.h}, {z0\.b-z1\.b}
+[^:]+: c175e01c sunpk {z28\.h-z31\.h}, {z0\.b-z1\.b}
+[^:]+: c175e3c0 sunpk {z0\.h-z3\.h}, {z30\.b-z31\.b}
+[^:]+: c1a5e000 sunpk {z0\.s-z1\.s}, z0\.h
+[^:]+: c1a5e01e sunpk {z30\.s-z31\.s}, z0\.h
+[^:]+: c1a5e3e0 sunpk {z0\.s-z1\.s}, z31\.h
+[^:]+: c1b5e000 sunpk {z0\.s-z3\.s}, {z0\.h-z1\.h}
+[^:]+: c1b5e01c sunpk {z28\.s-z31\.s}, {z0\.h-z1\.h}
+[^:]+: c1b5e3c0 sunpk {z0\.s-z3\.s}, {z30\.h-z31\.h}
+[^:]+: c1e5e000 sunpk {z0\.d-z1\.d}, z0\.s
+[^:]+: c1e5e01e sunpk {z30\.d-z31\.d}, z0\.s
+[^:]+: c1e5e3e0 sunpk {z0\.d-z1\.d}, z31\.s
+[^:]+: c1f5e000 sunpk {z0\.d-z3\.d}, {z0\.s-z1\.s}
+[^:]+: c1f5e01c sunpk {z28\.d-z31\.d}, {z0\.s-z1\.s}
+[^:]+: c1f5e3c0 sunpk {z0\.d-z3\.d}, {z30\.s-z31\.s}
+[^:]+: c165e001 uunpk {z0\.h-z1\.h}, z0\.b
+[^:]+: c165e01f uunpk {z30\.h-z31\.h}, z0\.b
+[^:]+: c165e3e1 uunpk {z0\.h-z1\.h}, z31\.b
+[^:]+: c175e001 uunpk {z0\.h-z3\.h}, {z0\.b-z1\.b}
+[^:]+: c175e01d uunpk {z28\.h-z31\.h}, {z0\.b-z1\.b}
+[^:]+: c175e3c1 uunpk {z0\.h-z3\.h}, {z30\.b-z31\.b}
+[^:]+: c1a5e001 uunpk {z0\.s-z1\.s}, z0\.h
+[^:]+: c1a5e01f uunpk {z30\.s-z31\.s}, z0\.h
+[^:]+: c1a5e3e1 uunpk {z0\.s-z1\.s}, z31\.h
+[^:]+: c1b5e001 uunpk {z0\.s-z3\.s}, {z0\.h-z1\.h}
+[^:]+: c1b5e01d uunpk {z28\.s-z31\.s}, {z0\.h-z1\.h}
+[^:]+: c1b5e3c1 uunpk {z0\.s-z3\.s}, {z30\.h-z31\.h}
+[^:]+: c1e5e001 uunpk {z0\.d-z1\.d}, z0\.s
+[^:]+: c1e5e01f uunpk {z30\.d-z31\.d}, z0\.s
+[^:]+: c1e5e3e1 uunpk {z0\.d-z1\.d}, z31\.s
+[^:]+: c1f5e001 uunpk {z0\.d-z3\.d}, {z0\.s-z1\.s}
+[^:]+: c1f5e01d uunpk {z28\.d-z31\.d}, {z0\.s-z1\.s}
+[^:]+: c1f5e3c1 uunpk {z0\.d-z3\.d}, {z30\.s-z31\.s}
diff --git a/gas/testsuite/gas/aarch64/sme2-29.s b/gas/testsuite/gas/aarch64/sme2-29.s
new file mode 100644
index 00000000000..1cf1a3f239b
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2-29.s
@@ -0,0 +1,47 @@
+ sunpk { z0.h, z1.h }, z0.b
+ sunpk { z30.h, z31.h }, z0.b
+ sunpk { z0.h, z1.h }, z31.b
+
+ sunpk { z0.h - z3.h }, { z0.b - z1.b }
+ sunpk { z28.h - z31.h }, { z0.b - z1.b }
+ sunpk { z0.h - z3.h }, { z30.b - z31.b }
+
+ sunpk { z0.s, z1.s }, z0.h
+ sunpk { z30.s, z31.s }, z0.h
+ sunpk { z0.s, z1.s }, z31.h
+
+ sunpk { z0.s - z3.s }, { z0.h - z1.h }
+ sunpk { z28.s - z31.s }, { z0.h - z1.h }
+ sunpk { z0.s - z3.s }, { z30.h - z31.h }
+
+ sunpk { z0.d, z1.d }, z0.s
+ sunpk { z30.d, z31.d }, z0.s
+ sunpk { z0.d, z1.d }, z31.s
+
+ sunpk { z0.d - z3.d }, { z0.s - z1.s }
+ sunpk { z28.d - z31.d }, { z0.s - z1.s }
+ sunpk { z0.d - z3.d }, { z30.s - z31.s }
+
+ uunpk { z0.h, z1.h }, z0.b
+ uunpk { z30.h, z31.h }, z0.b
+ uunpk { z0.h, z1.h }, z31.b
+
+ uunpk { z0.h - z3.h }, { z0.b - z1.b }
+ uunpk { z28.h - z31.h }, { z0.b - z1.b }
+ uunpk { z0.h - z3.h }, { z30.b - z31.b }
+
+ uunpk { z0.s, z1.s }, z0.h
+ uunpk { z30.s, z31.s }, z0.h
+ uunpk { z0.s, z1.s }, z31.h
+
+ uunpk { z0.s - z3.s }, { z0.h - z1.h }
+ uunpk { z28.s - z31.s }, { z0.h - z1.h }
+ uunpk { z0.s - z3.s }, { z30.h - z31.h }
+
+ uunpk { z0.d, z1.d }, z0.s
+ uunpk { z30.d, z31.d }, z0.s
+ uunpk { z0.d, z1.d }, z31.s
+
+ uunpk { z0.d - z3.d }, { z0.s - z1.s }
+ uunpk { z28.d - z31.d }, { z0.s - z1.s }
+ uunpk { z0.d - z3.d }, { z30.s - z31.s }
diff --git a/opcodes/aarch64-dis-2.c b/opcodes/aarch64-dis-2.c
index d82c37498e7..e514becb5fd 100644
--- a/opcodes/aarch64-dis-2.c
+++ b/opcodes/aarch64-dis-2.c
@@ -188,7 +188,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000x10x100xxxxxxxxxxxxxxxxx
zero. */
- return 2883;
+ return 2887;
}
}
}
@@ -1326,7 +1326,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010000xxxxxxxxxxxxxxx001xx
usmlall. */
- return 2864;
+ return 2866;
}
}
else
@@ -1358,7 +1358,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010001xxxx0xxxxxxxxx100xxx
usmlall. */
- return 2865;
+ return 2867;
}
else
{
@@ -1366,7 +1366,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010001xxxx1xxxxxxxxx100xxx
usmlall. */
- return 2866;
+ return 2868;
}
}
}
@@ -1381,7 +1381,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010000xxxxxxxxxxxxxxx100xx
umlall. */
- return 2822;
+ return 2824;
}
else
{
@@ -1402,7 +1402,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010001xxxx0xxxxxxxxx010xxx
umlall. */
- return 2823;
+ return 2825;
}
else
{
@@ -1410,7 +1410,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010001xxxx1xxxxxxxxx010xxx
umlall. */
- return 2824;
+ return 2826;
}
}
else
@@ -1475,7 +1475,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010000xxxxxxxxxxxxxxx11xxx
umlsll. */
- return 2838;
+ return 2840;
}
else
{
@@ -1485,7 +1485,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010001xxxx0xxxxxxxxxx11xxx
umlsll. */
- return 2839;
+ return 2841;
}
else
{
@@ -1493,7 +1493,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010001xxxx1xxxxxxxxxx11xxx
umlsll. */
- return 2840;
+ return 2842;
}
}
}
@@ -1721,7 +1721,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011000xxxxxxx0xxxxxxx00xxx
smlall. */
- return 2886;
+ return 2890;
}
else
{
@@ -1731,7 +1731,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011001xxxx0xx0xxxxxxx00xxx
smlall. */
- return 2887;
+ return 2891;
}
else
{
@@ -1739,7 +1739,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011001xxxx1xx0xxxxxxx00xxx
smlall. */
- return 2888;
+ return 2892;
}
}
}
@@ -1806,7 +1806,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011000xxxxxxx0xxxxxxx10xxx
umlall. */
- return 2895;
+ return 2899;
}
else
{
@@ -1816,7 +1816,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011001xxxx0xx0xxxxxxx10xxx
umlall. */
- return 2896;
+ return 2900;
}
else
{
@@ -1824,7 +1824,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011001xxxx1xx0xxxxxxx10xxx
umlall. */
- return 2897;
+ return 2901;
}
}
}
@@ -1884,7 +1884,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000011000xxxxxxx0xxxxxxx01xxx
smlsll. */
- return 2889;
+ return 2893;
}
else
{
@@ -1894,7 +1894,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000011001xxxx0xx0xxxxxxx01xxx
smlsll. */
- return 2890;
+ return 2894;
}
else
{
@@ -1902,7 +1902,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000011001xxxx1xx0xxxxxxx01xxx
smlsll. */
- return 2891;
+ return 2895;
}
}
}
@@ -1943,7 +1943,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001100xxxxxxxxxxxxxxxx01xxx
umopa. */
- return 2846;
+ return 2848;
}
}
else
@@ -1958,7 +1958,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000011000xxxxxxx0xxxxxxx11xxx
umlsll. */
- return 2898;
+ return 2902;
}
else
{
@@ -1968,7 +1968,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000011001xxxx0xx0xxxxxxx11xxx
umlsll. */
- return 2899;
+ return 2903;
}
else
{
@@ -1976,7 +1976,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000011001xxxx1xx0xxxxxxx11xxx
umlsll. */
- return 2900;
+ return 2904;
}
}
}
@@ -2017,7 +2017,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001100xxxxxxxxxxxxxxxx11xxx
umops. */
- return 2847;
+ return 2849;
}
}
}
@@ -2103,7 +2103,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx0xx0xxxxxx100xxx
svdot. */
- return 2788;
+ return 2790;
}
else
{
@@ -2133,7 +2133,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx0xx1xxxxxx010xxx
udot. */
- return 2794;
+ return 2796;
}
}
else
@@ -2144,7 +2144,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx0xx0xxxxxx110xxx
uvdot. */
- return 2873;
+ return 2877;
}
else
{
@@ -2152,7 +2152,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx0xx1xxxxxx110xxx
udot. */
- return 2800;
+ return 2802;
}
}
}
@@ -2232,7 +2232,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx1xx0xxxxxx100xxx
svdot. */
- return 2789;
+ return 2791;
}
else
{
@@ -2262,7 +2262,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx1xx1xxxxxx010xxx
udot. */
- return 2795;
+ return 2797;
}
}
else
@@ -2273,7 +2273,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx1xx0xxxxxx110xxx
uvdot. */
- return 2874;
+ return 2878;
}
else
{
@@ -2281,7 +2281,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx1xx1xxxxxx110xxx
udot. */
- return 2801;
+ return 2803;
}
}
}
@@ -2362,7 +2362,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx0xxxxxxxxx101xxx
usdot. */
- return 2858;
+ return 2860;
}
}
else
@@ -2460,7 +2460,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx1xx0xxxxxx101xxx
usvdot. */
- return 2872;
+ return 2874;
}
else
{
@@ -2468,7 +2468,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx1xx1xxxxxx101xxx
usdot. */
- return 2859;
+ return 2861;
}
}
}
@@ -2490,7 +2490,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx1xx0xxxxxx111xxx
suvdot. */
- return 2787;
+ return 2789;
}
else
{
@@ -2522,7 +2522,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx000001110xxxxx0xx0xxxxxxx00xxx
fmla. */
- return 2902;
+ return 2906;
}
else
{
@@ -2530,7 +2530,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx000001110xxxxx1xx0xxxxxxx00xxx
fmla. */
- return 2903;
+ return 2907;
}
}
else
@@ -2576,7 +2576,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx000001110xxxxx0xx00xxxxxx01xxx
sdot. */
- return 2884;
+ return 2888;
}
else
{
@@ -2584,7 +2584,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx000001110xxxxx1xx00xxxxxx01xxx
sdot. */
- return 2885;
+ return 2889;
}
}
else
@@ -2593,7 +2593,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx000001110xxxxxxxx01xxxxxx01xxx
svdot. */
- return 2892;
+ return 2896;
}
}
else
@@ -2662,7 +2662,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx000001110xxxxx0xx0xxxxxxx10xxx
fmls. */
- return 2904;
+ return 2908;
}
else
{
@@ -2670,7 +2670,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx000001110xxxxx1xx0xxxxxxx10xxx
fmls. */
- return 2905;
+ return 2909;
}
}
else
@@ -2681,7 +2681,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000011100xxxxxxx1xxxxxxx10xxx
umlal. */
- return 2814;
+ return 2816;
}
else
{
@@ -2691,7 +2691,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000011101xxxx0xx1xxxxxxx10xxx
umlal. */
- return 2815;
+ return 2817;
}
else
{
@@ -2699,7 +2699,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000011101xxxx1xx1xxxxxxx10xxx
umlal. */
- return 2816;
+ return 2818;
}
}
}
@@ -2725,7 +2725,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx00001110xxxxx0xx00xxxxxx11xxx
udot. */
- return 2893;
+ return 2897;
}
else
{
@@ -2733,7 +2733,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx00001110xxxxx1xx00xxxxxx11xxx
udot. */
- return 2894;
+ return 2898;
}
}
else
@@ -2742,7 +2742,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx00001110xxxxxxxx01xxxxxx11xxx
uvdot. */
- return 2901;
+ return 2905;
}
}
else
@@ -2753,7 +2753,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000011100xxxxxxx1xxxxxxx11xxx
umlsl. */
- return 2830;
+ return 2832;
}
else
{
@@ -2763,7 +2763,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000011101xxxx0xx1xxxxxxx11xxx
umlsl. */
- return 2831;
+ return 2833;
}
else
{
@@ -2771,7 +2771,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000011101xxxx1xx1xxxxxxx11xxx
umlsl. */
- return 2832;
+ return 2834;
}
}
}
@@ -2868,7 +2868,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010x10xxxx0xx000xxxxx001xx
usmlall. */
- return 2868;
+ return 2870;
}
else
{
@@ -2876,7 +2876,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010x11xxxx0xx000xxxxx001xx
usmlall. */
- return 2869;
+ return 2871;
}
}
else
@@ -2887,7 +2887,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx00xx000xxxxx001xx
usmlall. */
- return 2870;
+ return 2872;
}
else
{
@@ -2895,7 +2895,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx10xx000xxxxx001xx
usmlall. */
- return 2871;
+ return 2873;
}
}
}
@@ -3092,7 +3092,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx0xx001xxxxx001xx
usmlall. */
- return 2867;
+ return 2869;
}
}
else
@@ -3198,7 +3198,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010x10xxxx0xx000xxxxx100xx
umlall. */
- return 2826;
+ return 2828;
}
else
{
@@ -3206,7 +3206,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010x11xxxx0xx000xxxxx100xx
umlall. */
- return 2827;
+ return 2829;
}
}
else
@@ -3217,7 +3217,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx00xx000xxxxx100xx
umlall. */
- return 2828;
+ return 2830;
}
else
{
@@ -3225,7 +3225,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx10xx000xxxxx100xx
umlall. */
- return 2829;
+ return 2831;
}
}
}
@@ -3346,7 +3346,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010110xxxx0xx010xxxxx10xxx
umlal. */
- return 2818;
+ return 2820;
}
else
{
@@ -3354,7 +3354,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010111xxxx0xx010xxxxx10xxx
umlal. */
- return 2819;
+ return 2821;
}
}
else
@@ -3365,7 +3365,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001111xxxx00xx010xxxxx10xxx
umlal. */
- return 2820;
+ return 2822;
}
else
{
@@ -3373,7 +3373,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001111xxxx10xx010xxxxx10xxx
umlal. */
- return 2821;
+ return 2823;
}
}
}
@@ -3431,7 +3431,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx0xx001xxxxx10xxx
umlall. */
- return 2825;
+ return 2827;
}
else
{
@@ -3443,7 +3443,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010x10xxxx0xx101xxxxx10xxx
udot. */
- return 2802;
+ return 2804;
}
else
{
@@ -3451,7 +3451,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010x11xxxx0xx101xxxxx10xxx
udot. */
- return 2803;
+ return 2805;
}
}
else
@@ -3462,7 +3462,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx00xx101xxxxx10xxx
udot. */
- return 2804;
+ return 2806;
}
else
{
@@ -3470,7 +3470,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx10xx101xxxxx10xxx
udot. */
- return 2805;
+ return 2807;
}
}
}
@@ -3493,7 +3493,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x11xxxxx0xx011xxxxx10xxx
umlal. */
- return 2817;
+ return 2819;
}
}
else
@@ -3720,7 +3720,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010010xxxx0xx101xxxxx01xxx
usdot. */
- return 2860;
+ return 2862;
}
else
{
@@ -3728,7 +3728,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010011xxxx0xx101xxxxx01xxx
usdot. */
- return 2861;
+ return 2863;
}
}
else
@@ -3739,7 +3739,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001101xxxx00xx101xxxxx01xxx
usdot. */
- return 2862;
+ return 2864;
}
else
{
@@ -3747,7 +3747,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001101xxxx10xx101xxxxx01xxx
usdot. */
- return 2863;
+ return 2865;
}
}
}
@@ -3851,7 +3851,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010x10xxxx0xxx00xxxxx11xxx
umlsll. */
- return 2842;
+ return 2844;
}
else
{
@@ -3859,7 +3859,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010x11xxxx0xxx00xxxxx11xxx
umlsll. */
- return 2843;
+ return 2845;
}
}
else
@@ -3870,7 +3870,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx00xxx00xxxxx11xxx
umlsll. */
- return 2844;
+ return 2846;
}
else
{
@@ -3878,7 +3878,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx10xxx00xxxxx11xxx
umlsll. */
- return 2845;
+ return 2847;
}
}
}
@@ -3937,7 +3937,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010110xxxx0xx010xxxxx11xxx
umlsl. */
- return 2834;
+ return 2836;
}
else
{
@@ -3945,7 +3945,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010111xxxx0xx010xxxxx11xxx
umlsl. */
- return 2835;
+ return 2837;
}
}
else
@@ -3956,7 +3956,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001111xxxx00xx010xxxxx11xxx
umlsl. */
- return 2836;
+ return 2838;
}
else
{
@@ -3964,7 +3964,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001111xxxx10xx010xxxxx11xxx
umlsl. */
- return 2837;
+ return 2839;
}
}
}
@@ -4022,7 +4022,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx0xx001xxxxx11xxx
umlsll. */
- return 2841;
+ return 2843;
}
else
{
@@ -4055,7 +4055,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010110xxxx0xx101xxxxx11xxx
udot. */
- return 2796;
+ return 2798;
}
else
{
@@ -4063,7 +4063,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010111xxxx0xx101xxxxx11xxx
udot. */
- return 2797;
+ return 2799;
}
}
else
@@ -4074,7 +4074,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001111xxxx00xx101xxxxx11xxx
udot. */
- return 2798;
+ return 2800;
}
else
{
@@ -4082,7 +4082,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001111xxxx10xx101xxxxx11xxx
udot. */
- return 2799;
+ return 2801;
}
}
}
@@ -4106,7 +4106,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x11xxxxx0xx011xxxxx11xxx
umlsl. */
- return 2833;
+ return 2835;
}
}
else
@@ -4205,7 +4205,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx110110xxxx1xxxxx
uqrshr. */
- return 2852;
+ return 2854;
}
}
}
@@ -4230,7 +4230,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx110001xxxxxxxxx1
uclamp. */
- return 2790;
+ return 2792;
}
}
else
@@ -4260,7 +4260,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx110101xxxx1xxxxx
uqrshr. */
- return 2851;
+ return 2853;
}
}
}
@@ -4282,7 +4282,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx110011xxxxxxxxx1
uclamp. */
- return 2791;
+ return 2793;
}
}
else
@@ -4312,7 +4312,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx110111xxxx1xxxxx
uqrshrn. */
- return 2853;
+ return 2855;
}
}
}
@@ -4321,17 +4321,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
}
else
{
- if (((word >> 5) & 0x1) == 0)
+ if (((word >> 10) & 0x1) == 0)
{
- if (((word >> 10) & 0x1) == 0)
+ if (((word >> 11) & 0x1) == 0)
{
- if (((word >> 11) & 0x1) == 0)
+ if (((word >> 12) & 0x1) == 0)
{
- if (((word >> 12) & 0x1) == 0)
+ if (((word >> 14) & 0x1) == 0)
{
- if (((word >> 14) & 0x1) == 0)
+ if (((word >> 0) & 0x1) == 0)
{
- if (((word >> 0) & 0x1) == 0)
+ if (((word >> 5) & 0x1) == 0)
{
if (((word >> 8) & 0x1) == 0)
{
@@ -4362,6 +4362,39 @@ aarch64_opcode_lookup_1 (uint32_t word)
}
}
else
+ {
+ if (((word >> 8) & 0x1) == 0)
+ {
+ if (((word >> 9) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000001xx1xxxxx10100000xx1xxxx0
+ smin. */
+ return 2649;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000001xx1xxxxx10100010xx1xxxx0
+ srshl. */
+ return 2703;
+ }
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000001xx1xxxxx101000x1xx1xxxx0
+ fmaxnm. */
+ return 2484;
+ }
+ }
+ }
+ else
+ {
+ if (((word >> 5) & 0x1) == 0)
{
if (((word >> 8) & 0x1) == 0)
{
@@ -4369,7 +4402,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx101000x0xx0xxxx1
umax. */
- return 2806;
+ return 2808;
}
else
{
@@ -4380,10 +4413,43 @@ aarch64_opcode_lookup_1 (uint32_t word)
return 2488;
}
}
+ else
+ {
+ if (((word >> 8) & 0x1) == 0)
+ {
+ if (((word >> 9) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000001xx1xxxxx10100000xx1xxxx1
+ umin. */
+ return 2812;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000001xx1xxxxx10100010xx1xxxx1
+ urshl. */
+ return 2856;
+ }
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000001xx1xxxxx101000x1xx1xxxx1
+ fminnm. */
+ return 2492;
+ }
+ }
}
- else
+ }
+ else
+ {
+ if (((word >> 16) & 0x1) == 0)
{
- if (((word >> 16) & 0x1) == 0)
+ if (((word >> 5) & 0x1) == 0)
{
if (((word >> 17) & 0x1) == 0)
{
@@ -4494,23 +4560,111 @@ aarch64_opcode_lookup_1 (uint32_t word)
{
if (((word >> 17) & 0x1) == 0)
{
- if (((word >> 19) & 0x1) == 0)
+ if (((word >> 22) & 0x1) == 0)
{
- if (((word >> 20) & 0x1) == 0)
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000001x01xxx00111000xxxx1xxxxx
+ fcvtn. */
+ return 2469;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000001x11xxx00111000xxxx1xxxxx
+ bfcvtn. */
+ return 2437;
+ }
+ }
+ else
+ {
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000001xx10xx10111000xxxx1xxxxx
+ ucvtf. */
+ return 2794;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000001xx11xx10111000xxxx1xxxxx
+ ucvtf. */
+ return 2795;
+ }
+ }
+ }
+ }
+ else
+ {
+ if (((word >> 17) & 0x1) == 0)
+ {
+ if (((word >> 0) & 0x1) == 0)
+ {
+ if (((word >> 18) & 0x1) == 0)
+ {
+ if (((word >> 5) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x1000001xx100x01111000xxxx0xxxxx
- fcvtzs. */
- return 2470;
+ if (((word >> 19) & 0x1) == 0)
+ {
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000001xx100001111000xxxx0xxxx0
+ fcvtzs. */
+ return 2470;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000001xx110001111000xxxx0xxxx0
+ fcvtzs. */
+ return 2471;
+ }
+ }
+ else
+ {
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000001xx101001111000xxxx0xxxx0
+ frintp. */
+ return 2530;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000001xx111001111000xxxx0xxxx0
+ frintp. */
+ return 2531;
+ }
+ }
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x1000001xx110x01111000xxxx0xxxxx
- fcvtzs. */
- return 2471;
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000001xx10x001111000xxxx1xxxx0
+ fcvtzu. */
+ return 2472;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000001xx11x001111000xxxx1xxxx0
+ fcvtzu. */
+ return 2473;
+ }
}
}
else
@@ -4519,21 +4673,43 @@ aarch64_opcode_lookup_1 (uint32_t word)
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- x1000001xx101x01111000xxxx0xxxxx
- frintp. */
- return 2530;
+ x1000001xx10x101111000xxxxxxxxx0
+ sunpk. */
+ return 2787;
}
else
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- x1000001xx111x01111000xxxx0xxxxx
- frintp. */
- return 2531;
+ x1000001xx11x101111000xxxxxxxxx0
+ sunpk. */
+ return 2788;
}
}
}
else
+ {
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000001xx10xx01111000xxxxxxxxx1
+ uunpk. */
+ return 2875;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000001xx11xx01111000xxxxxxxxx1
+ uunpk. */
+ return 2876;
+ }
+ }
+ }
+ else
+ {
+ [...]
[diff truncated at 100000 bytes]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2023-03-30 10:16 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-30 10:16 [binutils-gdb] aarch64: Add the SME2 UNPK instructions Richard Sandiford
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).