aboutsummaryrefslogtreecommitdiff
path: root/opcodes/aarch64-dis-2.c
diff options
context:
space:
mode:
authorAndrew Carlotti <andrew.carlotti@arm.com>2024-06-21 19:31:34 +0100
committerRichard Earnshaw <rearnsha@arm.com>2024-06-24 16:50:28 +0100
commit59b78ab1c16356c2b5a9a1cba40c4029f84ed409 (patch)
tree1d3f3d5321777f0aa1337bd64c19cf026b11bd1c /opcodes/aarch64-dis-2.c
parent05f15256d0274b8321eec4cad4273340e1a8521f (diff)
downloadgdb-59b78ab1c16356c2b5a9a1cba40c4029f84ed409.zip
gdb-59b78ab1c16356c2b5a9a1cba40c4029f84ed409.tar.gz
gdb-59b78ab1c16356c2b5a9a1cba40c4029f84ed409.tar.bz2
aarch64: Add FP8 Neon and SVE multiplication instructions
This includes all the instructions under the following features: - FEAT_FP8FMA (+fp8fma) - FEAT_FP8DOT4 (+fp8dot4) - FEAT_FP8DOT2 (+fp8dot2) - FEAT_SSVE_FP8FMA (+ssve-fp8fma) - FEAT_SSVE_FP8DOT4 (+ssve-fp8dot4) - FEAT_SSVE_FP8DOT2 (+ssve-fp8dot2)
Diffstat (limited to 'opcodes/aarch64-dis-2.c')
-rw-r--r--opcodes/aarch64-dis-2.c830
1 files changed, 592 insertions, 238 deletions
diff --git a/opcodes/aarch64-dis-2.c b/opcodes/aarch64-dis-2.c
index fd19b2d..d327422 100644
--- a/opcodes/aarch64-dis-2.c
+++ b/opcodes/aarch64-dis-2.c
@@ -17285,11 +17285,33 @@ aarch64_opcode_lookup_1 (uint32_t word)
{
if (((word >> 31) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 011001x0001xxxxx010xxxxxxxxxxxxx
- fdot. */
- return 2473;
+ if (((word >> 12) & 0x1) == 0)
+ {
+ if (((word >> 10) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 011001x0001xxxxx0100x0xxxxxxxxxx
+ fdot. */
+ return 2473;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 011001x0001xxxxx0100x1xxxxxxxxxx
+ fdot. */
+ return 3416;
+ }
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 011001x0001xxxxx0101xxxxxxxxxxxx
+ fmlalb. */
+ return 3418;
+ }
}
else
{
@@ -17304,21 +17326,32 @@ aarch64_opcode_lookup_1 (uint32_t word)
{
if (((word >> 31) & 0x1) == 0)
{
- if (((word >> 10) & 0x1) == 0)
+ if (((word >> 12) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 011001x0101xxxxx010xx0xxxxxxxxxx
- fmlalb. */
- return 2146;
+ if (((word >> 10) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 011001x0101xxxxx0100x0xxxxxxxxxx
+ fmlalb. */
+ return 2146;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 011001x0101xxxxx0100x1xxxxxxxxxx
+ fmlalt. */
+ return 2148;
+ }
}
else
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- 011001x0101xxxxx010xx1xxxxxxxxxx
+ 011001x0101xxxxx0101xxxxxxxxxxxx
fmlalt. */
- return 2148;
+ return 3428;
}
}
else
@@ -17337,11 +17370,22 @@ aarch64_opcode_lookup_1 (uint32_t word)
{
if (((word >> 31) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 011001x0011xxxxx010xxxxxxxxxxxxx
- bfdot. */
- return 3066;
+ if (((word >> 10) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 011001x0011xxxxx010xx0xxxxxxxxxx
+ bfdot. */
+ return 3066;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 011001x0011xxxxx010xx1xxxxxxxxxx
+ fdot. */
+ return 3414;
+ }
}
else
{
@@ -17391,31 +17435,108 @@ aarch64_opcode_lookup_1 (uint32_t word)
{
if (((word >> 23) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x11001x0001xxxxx1x0xxxxxxxxxxxxx
- fdot. */
- return 2474;
+ if (((word >> 12) & 0x1) == 0)
+ {
+ if (((word >> 14) & 0x1) == 0)
+ {
+ if (((word >> 10) & 0x1) == 0)
+ {
+ if (((word >> 11) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x11001x0001xxxxx100000xxxxxxxxxx
+ fdot. */
+ return 2474;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x11001x0001xxxxx100010xxxxxxxxxx
+ fmlallbb. */
+ return 3419;
+ }
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x11001x0001xxxxx1000x1xxxxxxxxxx
+ fdot. */
+ return 3415;
+ }
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x11001x0001xxxxx1100xxxxxxxxxxxx
+ fmlallbb. */
+ return 3420;
+ }
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x11001x0001xxxxx1x01xxxxxxxxxxxx
+ fmlallbt. */
+ return 3421;
+ }
}
else
{
if (((word >> 31) & 0x1) == 0)
{
- if (((word >> 10) & 0x1) == 0)
+ if (((word >> 12) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 011001x0101xxxxx1x0xx0xxxxxxxxxx
- fmlalb. */
- return 2147;
+ if (((word >> 14) & 0x1) == 0)
+ {
+ if (((word >> 10) & 0x1) == 0)
+ {
+ if (((word >> 11) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 011001x0101xxxxx100000xxxxxxxxxx
+ fmlalb. */
+ return 2147;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 011001x0101xxxxx100010xxxxxxxxxx
+ fmlalb. */
+ return 3417;
+ }
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 011001x0101xxxxx1000x1xxxxxxxxxx
+ fmlalt. */
+ return 2149;
+ }
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 011001x0101xxxxx1100xxxxxxxxxxxx
+ fmlalltb. */
+ return 3424;
+ }
}
else
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- 011001x0101xxxxx1x0xx1xxxxxxxxxx
+ 011001x0101xxxxx1x01xxxxxxxxxxxx
fmlalt. */
- return 2149;
+ return 3427;
}
}
else
@@ -17432,31 +17553,64 @@ aarch64_opcode_lookup_1 (uint32_t word)
{
if (((word >> 23) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x11001x0011xxxxx1x0xxxxxxxxxxxxx
- bfdot. */
- return 3065;
+ if (((word >> 14) & 0x1) == 0)
+ {
+ if (((word >> 10) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x11001x0011xxxxx100xx0xxxxxxxxxx
+ bfdot. */
+ return 3065;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x11001x0011xxxxx100xx1xxxxxxxxxx
+ fdot. */
+ return 3413;
+ }
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x11001x0011xxxxx110xxxxxxxxxxxxx
+ fmlallbt. */
+ return 3422;
+ }
}
else
{
if (((word >> 31) & 0x1) == 0)
{
- if (((word >> 10) & 0x1) == 0)
+ if (((word >> 14) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 011001x0111xxxxx1x0xx0xxxxxxxxxx
- bfmlalb. */
- return 3071;
+ if (((word >> 10) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 011001x0111xxxxx100xx0xxxxxxxxxx
+ bfmlalb. */
+ return 3071;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 011001x0111xxxxx100xx1xxxxxxxxxx
+ bfmlalt. */
+ return 3070;
+ }
}
else
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- 011001x0111xxxxx1x0xx1xxxxxxxxxx
- bfmlalt. */
- return 3070;
+ 011001x0111xxxxx110xxxxxxxxxxxxx
+ fmlalltt. */
+ return 3426;
}
}
else
@@ -17762,32 +17916,54 @@ aarch64_opcode_lookup_1 (uint32_t word)
{
if (((word >> 22) & 0x1) == 0)
{
- if (((word >> 31) & 0x1) == 0)
+ if (((word >> 23) & 0x1) == 0)
{
- if (((word >> 10) & 0x1) == 0)
+ if (((word >> 12) & 0x1) == 0)
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- 011001x0x01xxxxx101xx0xxxxxxxxxx
- fmlslb. */
- return 2151;
+ x11001x0001xxxxx1010xxxxxxxxxxxx
+ fmlalltb. */
+ return 3423;
}
else
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- 011001x0x01xxxxx101xx1xxxxxxxxxx
- fmlslt. */
- return 2153;
+ x11001x0001xxxxx1011xxxxxxxxxxxx
+ fmlalltt. */
+ return 3425;
}
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 111001x0x01xxxxx101xxxxxxxxxxxxx
- st1h. */
- return 1954;
+ if (((word >> 31) & 0x1) == 0)
+ {
+ if (((word >> 10) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 011001x0101xxxxx101xx0xxxxxxxxxx
+ fmlslb. */
+ return 2151;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 011001x0101xxxxx101xx1xxxxxxxxxx
+ fmlslt. */
+ return 2153;
+ }
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 111001x0101xxxxx101xxxxxxxxxxxxx
+ st1h. */
+ return 1954;
+ }
}
}
else
@@ -25976,31 +26152,75 @@ aarch64_opcode_lookup_1 (uint32_t word)
{
if (((word >> 13) & 0x1) == 0)
{
- if (((word >> 22) & 0x1) == 0)
+ if (((word >> 14) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 0x001110x00xxxxxxx0001xxxxxxxxxx
- dup. */
- return 149;
+ if (((word >> 22) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 0x001110x00xxxxxx00001xxxxxxxxxx
+ dup. */
+ return 149;
+ }
+ else
+ {
+ if (((word >> 23) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 0x001110010xxxxxx00001xxxxxxxxxx
+ fmaxnm. */
+ return 292;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 0x001110110xxxxxx00001xxxxxxxxxx
+ fminnm. */
+ return 308;
+ }
+ }
}
else
{
- if (((word >> 23) & 0x1) == 0)
+ if (((word >> 22) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 0x001110010xxxxxxx0001xxxxxxxxxx
- fmaxnm. */
- return 292;
+ if (((word >> 30) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 00001110x00xxxxxx10001xxxxxxxxxx
+ fmlallbb. */
+ return 3405;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 01001110x00xxxxxx10001xxxxxxxxxx
+ fmlalltb. */
+ return 3407;
+ }
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 0x001110110xxxxxxx0001xxxxxxxxxx
- fminnm. */
- return 308;
+ if (((word >> 30) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 00001110x10xxxxxx10001xxxxxxxxxx
+ fmlallbt. */
+ return 3406;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 01001110x10xxxxxx10001xxxxxxxxxx
+ fmlalltt. */
+ return 3408;
+ }
}
}
}
@@ -26209,31 +26429,75 @@ aarch64_opcode_lookup_1 (uint32_t word)
}
else
{
- if (((word >> 22) & 0x1) == 0)
+ if (((word >> 14) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 0x001110x00xxxxxxx1111xxxxxxxxxx
- umov. */
- return 152;
+ if (((word >> 22) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 0x001110x00xxxxxx01111xxxxxxxxxx
+ umov. */
+ return 152;
+ }
+ else
+ {
+ if (((word >> 23) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 0x001110010xxxxxx01111xxxxxxxxxx
+ frecps. */
+ return 304;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 0x001110110xxxxxx01111xxxxxxxxxx
+ frsqrts. */
+ return 316;
+ }
+ }
}
else
{
- if (((word >> 23) & 0x1) == 0)
+ if (((word >> 22) & 0x1) == 0)
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- 0x001110010xxxxxxx1111xxxxxxxxxx
- frecps. */
- return 304;
+ 0x001110x00xxxxxx11111xxxxxxxxxx
+ fdot. */
+ return 3397;
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 0x001110110xxxxxxx1111xxxxxxxxxx
- frsqrts. */
- return 316;
+ if (((word >> 23) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 0x001110010xxxxxx11111xxxxxxxxxx
+ fdot. */
+ return 3399;
+ }
+ else
+ {
+ if (((word >> 30) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 00001110110xxxxxx11111xxxxxxxxxx
+ fmlalb. */
+ return 3401;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 01001110110xxxxxx11111xxxxxxxxxx
+ fmlalt. */
+ return 3402;
+ }
+ }
}
}
}
@@ -31672,21 +31936,65 @@ aarch64_opcode_lookup_1 (uint32_t word)
{
if (((word >> 29) & 0x1) == 0)
{
- if (((word >> 30) & 0x1) == 0)
+ if (((word >> 22) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x0001111xxxxxxxx0000x0xxxxxxxxxx
- fmlal. */
- return 3013;
+ if (((word >> 23) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx00111100xxxxxx0000x0xxxxxxxxxx
+ fdot. */
+ return 3398;
+ }
+ else
+ {
+ if (((word >> 30) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x000111110xxxxxx0000x0xxxxxxxxxx
+ fmlal. */
+ return 3013;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x100111110xxxxxx0000x0xxxxxxxxxx
+ fmlal. */
+ return 3017;
+ }
+ }
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x1001111xxxxxxxx0000x0xxxxxxxxxx
- fmlal. */
- return 3017;
+ if (((word >> 23) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx00111101xxxxxx0000x0xxxxxxxxxx
+ fdot. */
+ return 3400;
+ }
+ else
+ {
+ if (((word >> 30) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x000111111xxxxxx0000x0xxxxxxxxxx
+ fmlalb. */
+ return 3403;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x100111111xxxxxx0000x0xxxxxxxxxx
+ fmlalt. */
+ return 3404;
+ }
+ }
}
}
else
@@ -32216,21 +32524,65 @@ aarch64_opcode_lookup_1 (uint32_t word)
}
else
{
- if (((word >> 30) & 0x1) == 0)
+ if (((word >> 22) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x0101111xxxxxxxx1000x0xxxxxxxxxx
- fmlal2. */
- return 3015;
+ if (((word >> 23) & 0x1) == 0)
+ {
+ if (((word >> 30) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x010111100xxxxxx1000x0xxxxxxxxxx
+ fmlallbb. */
+ return 3409;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x110111100xxxxxx1000x0xxxxxxxxxx
+ fmlalltb. */
+ return 3411;
+ }
+ }
+ else
+ {
+ if (((word >> 30) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x010111110xxxxxx1000x0xxxxxxxxxx
+ fmlal2. */
+ return 3015;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x110111110xxxxxx1000x0xxxxxxxxxx
+ fmlal2. */
+ return 3019;
+ }
+ }
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x1101111xxxxxxxx1000x0xxxxxxxxxx
- fmlal2. */
- return 3019;
+ if (((word >> 30) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x0101111x1xxxxxx1000x0xxxxxxxxxx
+ fmlallbt. */
+ return 3410;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1101111x1xxxxxx1000x0xxxxxxxxxx
+ fmlalltt. */
+ return 3412;
+ }
}
}
}
@@ -33681,10 +34033,9 @@ aarch64_extract_operand (const aarch64_operand *self,
case 32:
case 33:
case 34:
- case 122:
case 123:
case 124:
- case 182:
+ case 125:
case 183:
case 184:
case 185:
@@ -33698,30 +34049,31 @@ aarch64_extract_operand (const aarch64_operand *self,
case 193:
case 194:
case 195:
- case 210:
+ case 196:
case 211:
case 212:
case 213:
- case 222:
+ case 214:
case 223:
case 224:
case 225:
case 226:
- case 237:
- case 241:
- case 246:
- case 254:
- case 255:
- case 262:
- case 263:
+ case 227:
+ case 239:
+ case 243:
+ case 248:
+ case 256:
+ case 257:
case 264:
case 265:
+ case 266:
+ case 267:
return aarch64_ext_regno (self, info, code, inst, errors);
case 6:
- case 118:
case 119:
- case 297:
- case 300:
+ case 120:
+ case 299:
+ case 302:
return aarch64_ext_none (self, info, code, inst, errors);
case 11:
return aarch64_ext_regrt_sysins (self, info, code, inst, errors);
@@ -33740,18 +34092,17 @@ aarch64_extract_operand (const aarch64_operand *self,
case 36:
case 37:
case 38:
- case 302:
- return aarch64_ext_reglane (self, info, code, inst, errors);
case 39:
+ case 304:
+ return aarch64_ext_reglane (self, info, code, inst, errors);
case 40:
case 41:
- case 227:
+ case 42:
case 228:
- case 231:
- case 266:
- case 267:
- case 282:
- case 283:
+ case 229:
+ case 232:
+ case 268:
+ case 269:
case 284:
case 285:
case 286:
@@ -33763,22 +34114,23 @@ aarch64_extract_operand (const aarch64_operand *self,
case 292:
case 293:
case 294:
+ case 295:
+ case 296:
return aarch64_ext_simple_index (self, info, code, inst, errors);
- case 42:
- return aarch64_ext_reglist (self, info, code, inst, errors);
case 43:
- return aarch64_ext_ldst_reglist (self, info, code, inst, errors);
+ return aarch64_ext_reglist (self, info, code, inst, errors);
case 44:
- return aarch64_ext_ldst_reglist_r (self, info, code, inst, errors);
+ return aarch64_ext_ldst_reglist (self, info, code, inst, errors);
case 45:
- return aarch64_ext_lut_reglist (self, info, code, inst, errors);
+ return aarch64_ext_ldst_reglist_r (self, info, code, inst, errors);
case 46:
- return aarch64_ext_ldst_elemlist (self, info, code, inst, errors);
+ return aarch64_ext_lut_reglist (self, info, code, inst, errors);
case 47:
+ return aarch64_ext_ldst_elemlist (self, info, code, inst, errors);
case 48:
case 49:
case 50:
- case 60:
+ case 51:
case 61:
case 62:
case 63:
@@ -33795,16 +34147,16 @@ aarch64_extract_operand (const aarch64_operand *self,
case 74:
case 75:
case 76:
- case 87:
+ case 77:
case 88:
case 89:
case 90:
case 91:
- case 117:
- case 121:
- case 179:
- case 181:
- case 202:
+ case 92:
+ case 118:
+ case 122:
+ case 180:
+ case 182:
case 203:
case 204:
case 205:
@@ -33812,105 +34164,105 @@ aarch64_extract_operand (const aarch64_operand *self,
case 207:
case 208:
case 209:
- case 268:
- case 295:
- case 296:
+ case 210:
+ case 270:
+ case 297:
case 298:
- case 299:
+ case 300:
case 301:
- case 306:
- case 307:
+ case 303:
+ case 308:
+ case 309:
return aarch64_ext_imm (self, info, code, inst, errors);
- case 51:
case 52:
- return aarch64_ext_advsimd_imm_shift (self, info, code, inst, errors);
case 53:
+ return aarch64_ext_advsimd_imm_shift (self, info, code, inst, errors);
case 54:
case 55:
- return aarch64_ext_advsimd_imm_modified (self, info, code, inst, errors);
case 56:
+ return aarch64_ext_advsimd_imm_modified (self, info, code, inst, errors);
+ case 57:
return aarch64_ext_shll_imm (self, info, code, inst, errors);
- case 59:
- case 169:
+ case 60:
+ case 170:
return aarch64_ext_fpimm (self, info, code, inst, errors);
- case 77:
- case 177:
- return aarch64_ext_limm (self, info, code, inst, errors);
case 78:
- return aarch64_ext_aimm (self, info, code, inst, errors);
+ case 178:
+ return aarch64_ext_limm (self, info, code, inst, errors);
case 79:
- return aarch64_ext_imm_half (self, info, code, inst, errors);
+ return aarch64_ext_aimm (self, info, code, inst, errors);
case 80:
+ return aarch64_ext_imm_half (self, info, code, inst, errors);
+ case 81:
return aarch64_ext_fbits (self, info, code, inst, errors);
- case 82:
case 83:
- case 174:
- return aarch64_ext_imm_rotate2 (self, info, code, inst, errors);
case 84:
- case 173:
case 175:
- return aarch64_ext_imm_rotate1 (self, info, code, inst, errors);
+ return aarch64_ext_imm_rotate2 (self, info, code, inst, errors);
case 85:
+ case 174:
+ case 176:
+ return aarch64_ext_imm_rotate1 (self, info, code, inst, errors);
case 86:
+ case 87:
return aarch64_ext_cond (self, info, code, inst, errors);
- case 92:
- case 101:
- return aarch64_ext_addr_simple (self, info, code, inst, errors);
case 93:
- return aarch64_ext_addr_regoff (self, info, code, inst, errors);
+ case 102:
+ return aarch64_ext_addr_simple (self, info, code, inst, errors);
case 94:
+ return aarch64_ext_addr_regoff (self, info, code, inst, errors);
case 95:
case 96:
- case 98:
- case 100:
- return aarch64_ext_addr_simm (self, info, code, inst, errors);
case 97:
- return aarch64_ext_addr_simm10 (self, info, code, inst, errors);
case 99:
+ case 101:
+ return aarch64_ext_addr_simm (self, info, code, inst, errors);
+ case 98:
+ return aarch64_ext_addr_simm10 (self, info, code, inst, errors);
+ case 100:
return aarch64_ext_addr_uimm12 (self, info, code, inst, errors);
- case 102:
- return aarch64_ext_addr_offset (self, info, code, inst, errors);
case 103:
- return aarch64_ext_simd_addr_post (self, info, code, inst, errors);
+ return aarch64_ext_addr_offset (self, info, code, inst, errors);
case 104:
+ return aarch64_ext_simd_addr_post (self, info, code, inst, errors);
case 105:
- return aarch64_ext_sysreg (self, info, code, inst, errors);
case 106:
- return aarch64_ext_pstatefield (self, info, code, inst, errors);
+ return aarch64_ext_sysreg (self, info, code, inst, errors);
case 107:
+ return aarch64_ext_pstatefield (self, info, code, inst, errors);
case 108:
case 109:
case 110:
case 111:
case 112:
- return aarch64_ext_sysins_op (self, info, code, inst, errors);
case 113:
- case 115:
- return aarch64_ext_barrier (self, info, code, inst, errors);
+ return aarch64_ext_sysins_op (self, info, code, inst, errors);
case 114:
- return aarch64_ext_barrier_dsb_nxs (self, info, code, inst, errors);
case 116:
+ return aarch64_ext_barrier (self, info, code, inst, errors);
+ case 115:
+ return aarch64_ext_barrier_dsb_nxs (self, info, code, inst, errors);
+ case 117:
return aarch64_ext_prfop (self, info, code, inst, errors);
- case 120:
+ case 121:
return aarch64_ext_hint (self, info, code, inst, errors);
- case 125:
case 126:
- return aarch64_ext_sve_addr_ri_s4 (self, info, code, inst, errors);
case 127:
+ return aarch64_ext_sve_addr_ri_s4 (self, info, code, inst, errors);
case 128:
case 129:
case 130:
- return aarch64_ext_sve_addr_ri_s4xvl (self, info, code, inst, errors);
case 131:
- return aarch64_ext_sve_addr_ri_s6xvl (self, info, code, inst, errors);
+ return aarch64_ext_sve_addr_ri_s4xvl (self, info, code, inst, errors);
case 132:
- return aarch64_ext_sve_addr_ri_s9xvl (self, info, code, inst, errors);
+ return aarch64_ext_sve_addr_ri_s6xvl (self, info, code, inst, errors);
case 133:
+ return aarch64_ext_sve_addr_ri_s9xvl (self, info, code, inst, errors);
case 134:
case 135:
case 136:
- return aarch64_ext_sve_addr_ri_u6 (self, info, code, inst, errors);
case 137:
+ return aarch64_ext_sve_addr_ri_u6 (self, info, code, inst, errors);
case 138:
case 139:
case 140:
@@ -33925,8 +34277,8 @@ aarch64_extract_operand (const aarch64_operand *self,
case 149:
case 150:
case 151:
- return aarch64_ext_sve_addr_rr_lsl (self, info, code, inst, errors);
case 152:
+ return aarch64_ext_sve_addr_rr_lsl (self, info, code, inst, errors);
case 153:
case 154:
case 155:
@@ -33934,119 +34286,121 @@ aarch64_extract_operand (const aarch64_operand *self,
case 157:
case 158:
case 159:
- return aarch64_ext_sve_addr_rz_xtw (self, info, code, inst, errors);
case 160:
+ return aarch64_ext_sve_addr_rz_xtw (self, info, code, inst, errors);
case 161:
case 162:
case 163:
- return aarch64_ext_sve_addr_zi_u5 (self, info, code, inst, errors);
case 164:
- return aarch64_ext_sve_addr_zz_lsl (self, info, code, inst, errors);
+ return aarch64_ext_sve_addr_zi_u5 (self, info, code, inst, errors);
case 165:
- return aarch64_ext_sve_addr_zz_sxtw (self, info, code, inst, errors);
+ return aarch64_ext_sve_addr_zz_lsl (self, info, code, inst, errors);
case 166:
- return aarch64_ext_sve_addr_zz_uxtw (self, info, code, inst, errors);
+ return aarch64_ext_sve_addr_zz_sxtw (self, info, code, inst, errors);
case 167:
- return aarch64_ext_sve_aimm (self, info, code, inst, errors);
+ return aarch64_ext_sve_addr_zz_uxtw (self, info, code, inst, errors);
case 168:
+ return aarch64_ext_sve_aimm (self, info, code, inst, errors);
+ case 169:
return aarch64_ext_sve_asimm (self, info, code, inst, errors);
- case 170:
- return aarch64_ext_sve_float_half_one (self, info, code, inst, errors);
case 171:
- return aarch64_ext_sve_float_half_two (self, info, code, inst, errors);
+ return aarch64_ext_sve_float_half_one (self, info, code, inst, errors);
case 172:
+ return aarch64_ext_sve_float_half_two (self, info, code, inst, errors);
+ case 173:
return aarch64_ext_sve_float_zero_one (self, info, code, inst, errors);
- case 176:
+ case 177:
return aarch64_ext_inv_limm (self, info, code, inst, errors);
- case 178:
+ case 179:
return aarch64_ext_sve_limm_mov (self, info, code, inst, errors);
- case 180:
+ case 181:
return aarch64_ext_sve_scale (self, info, code, inst, errors);
- case 196:
case 197:
case 198:
- return aarch64_ext_sve_shlimm (self, info, code, inst, errors);
case 199:
+ return aarch64_ext_sve_shlimm (self, info, code, inst, errors);
case 200:
case 201:
- case 281:
+ case 202:
+ case 283:
return aarch64_ext_sve_shrimm (self, info, code, inst, errors);
- case 214:
case 215:
case 216:
case 217:
- return aarch64_ext_sme_za_vrs1 (self, info, code, inst, errors);
case 218:
+ return aarch64_ext_sme_za_vrs1 (self, info, code, inst, errors);
case 219:
case 220:
case 221:
+ case 222:
return aarch64_ext_sme_za_vrs2 (self, info, code, inst, errors);
- case 229:
case 230:
- case 232:
+ case 231:
case 233:
case 234:
case 235:
case 236:
- return aarch64_ext_sve_quad_index (self, info, code, inst, errors);
+ case 237:
case 238:
+ return aarch64_ext_sve_quad_index (self, info, code, inst, errors);
+ case 240:
return aarch64_ext_sve_index_imm (self, info, code, inst, errors);
- case 239:
+ case 241:
return aarch64_ext_sve_index (self, info, code, inst, errors);
- case 240:
case 242:
- case 261:
- return aarch64_ext_sve_reglist (self, info, code, inst, errors);
- case 243:
case 244:
- case 247:
- case 248:
+ case 263:
+ return aarch64_ext_sve_reglist (self, info, code, inst, errors);
+ case 245:
+ case 246:
case 249:
case 250:
case 251:
- case 260:
- return aarch64_ext_sve_aligned_reglist (self, info, code, inst, errors);
- case 245:
case 252:
case 253:
+ case 262:
+ return aarch64_ext_sve_aligned_reglist (self, info, code, inst, errors);
+ case 247:
+ case 254:
+ case 255:
return aarch64_ext_sve_strided_reglist (self, info, code, inst, errors);
- case 256:
case 258:
- case 269:
+ case 260:
+ case 271:
return aarch64_ext_sme_za_hv_tiles (self, info, code, inst, errors);
- case 257:
case 259:
+ case 261:
return aarch64_ext_sme_za_hv_tiles_range (self, info, code, inst, errors);
- case 270:
- case 271:
case 272:
case 273:
case 274:
case 275:
case 276:
- return aarch64_ext_sme_za_array (self, info, code, inst, errors);
case 277:
- return aarch64_ext_sme_addr_ri_u4xvl (self, info, code, inst, errors);
case 278:
- return aarch64_ext_sme_sm_za (self, info, code, inst, errors);
+ return aarch64_ext_sme_za_array (self, info, code, inst, errors);
case 279:
- return aarch64_ext_sme_pred_reg_with_index (self, info, code, inst, errors);
+ return aarch64_ext_sme_addr_ri_u4xvl (self, info, code, inst, errors);
case 280:
+ return aarch64_ext_sme_sm_za (self, info, code, inst, errors);
+ case 281:
+ return aarch64_ext_sme_pred_reg_with_index (self, info, code, inst, errors);
+ case 282:
return aarch64_ext_plain_shrimm (self, info, code, inst, errors);
- case 303:
- case 304:
case 305:
+ case 306:
+ case 307:
return aarch64_ext_x0_to_x30 (self, info, code, inst, errors);
- case 308:
- case 309:
case 310:
- return aarch64_ext_sve_reglist_zt (self, info, code, inst, errors);
case 311:
case 312:
+ return aarch64_ext_sve_reglist_zt (self, info, code, inst, errors);
case 313:
case 314:
- return aarch64_ext_rcpc3_addr_opt_offset (self, info, code, inst, errors);
case 315:
+ case 316:
+ return aarch64_ext_rcpc3_addr_opt_offset (self, info, code, inst, errors);
+ case 317:
return aarch64_ext_rcpc3_addr_offset (self, info, code, inst, errors);
default: assert (0); abort ();
}