diff options
Diffstat (limited to 'opcodes/aarch64-dis-2.c')
-rw-r--r-- | opcodes/aarch64-dis-2.c | 1742 |
1 files changed, 1578 insertions, 164 deletions
diff --git a/opcodes/aarch64-dis-2.c b/opcodes/aarch64-dis-2.c index 06a84ab..a0f1a38 100644 --- a/opcodes/aarch64-dis-2.c +++ b/opcodes/aarch64-dis-2.c @@ -40,7 +40,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxxxx0000xxx0 adr. */ - return 781; + return 953; } else { @@ -48,7 +48,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxxxx0000xxx1 adrp. */ - return 782; + return 954; } } else @@ -137,11 +137,22 @@ aarch64_opcode_lookup_1 (uint32_t word) } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx100x00100xx - stxp. */ - return 731; + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxxxxxxx0xxxxx100x00100x0 + casp. */ + return 788; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxxxxxxx0xxxxx100x00100x1 + stxp. */ + return 731; + } } } else @@ -178,11 +189,22 @@ aarch64_opcode_lookup_1 (uint32_t word) } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx100x00100xx - stlxp. */ - return 732; + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxxxxxxx1xxxxx100x00100x0 + caspl. */ + return 790; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxxxxxxx1xxxxx100x00100x1 + stlxp. */ + return 732; + } } } } @@ -199,32 +221,98 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 29) & 0x1) == 0) { - if (((word >> 31) & 0x1) == 0) + if (((word >> 15) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx01x0010000 - stlrb. */ - return 721; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxxxxxxx0xxxxxx01x0010000 + casb. */ + return 776; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxxxxxxx0xxxxxx01x0010010 + cash. */ + return 777; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx01x0010010 - stlrh. */ - return 727; + xxxxxxxxxxxxxxx0xxxxxx01x00100x1 + cas. */ + return 778; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx01x00100x1 - stlr. */ - return 737; + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxxxxxxx1xxxxx001x0010000 + stlrb. */ + return 721; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxxxxxxx1xxxxx001x0010010 + stlrh. */ + return 727; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxxxxxxx1xxxxx001x00100x1 + stlr. */ + return 737; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxxxxxxx1xxxxx101x0010000 + caslb. */ + return 780; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxxxxxxx1xxxxx101x0010010 + caslh. */ + return 783; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxxxxxxx1xxxxx101x00100x1 + casl. */ + return 786; + } + } } } else @@ -277,11 +365,22 @@ aarch64_opcode_lookup_1 (uint32_t word) } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx110x00100xx - ldxp. */ - return 735; + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxxxxxxx0xxxxx110x00100x0 + caspa. */ + return 789; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxxxxxxx0xxxxx110x00100x1 + ldxp. */ + return 735; + } } } else @@ -318,11 +417,22 @@ aarch64_opcode_lookup_1 (uint32_t word) } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx110x00100xx - ldaxp. */ - return 736; + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxxxxxxx1xxxxx110x00100x0 + caspal. */ + return 791; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxxxxxxx1xxxxx110x00100x1 + ldaxp. */ + return 736; + } } } } @@ -350,32 +460,98 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 29) & 0x1) == 0) { - if (((word >> 31) & 0x1) == 0) + if (((word >> 15) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx11x0010000 - ldarb. */ - return 722; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxxxxxxx0xxxxxx11x0010000 + casab. */ + return 779; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxxxxxxx0xxxxxx11x0010010 + casah. */ + return 782; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx11x0010010 - ldarh. */ - return 728; + xxxxxxxxxxxxxxx0xxxxxx11x00100x1 + casa. */ + return 785; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx11x00100x1 - ldar. */ - return 738; + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxxxxxxx1xxxxx011x0010000 + ldarb. */ + return 722; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxxxxxxx1xxxxx011x0010010 + ldarh. */ + return 728; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxxxxxxx1xxxxx011x00100x1 + ldar. */ + return 738; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxxxxxxx1xxxxx111x0010000 + casalb. */ + return 781; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxxxxxxx1xxxxx111x0010010 + casalh. */ + return 784; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxxxxxxx1xxxxx111x00100x1 + casal. */ + return 787; + } + } } } else @@ -440,107 +616,1295 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 11) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 21) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - if (((word >> 31) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxxx0000011100 - sturb. */ - return 693; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00xxxxxxxxx00000011100 + sturb. */ + return 693; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00xxxxxxxxx00000011110 + sturh. */ + return 703; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxxx0000011110 - sturh. */ - return 703; + xxxxxxxxxx00xxxxxxxxx000000111x1 + stur. */ + return 709; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxxx00000111x1 - stur. */ - return 709; + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00xxxxxxxxx01000011100 + ldurb. */ + return 694; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00xxxxxxxxx01000011110 + ldurh. */ + return 704; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00xxxxxxxxx010000111x1 + ldur. */ + return 710; + } } } else { - if (((word >> 31) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxxx1000011100 - ldurb. */ - return 694; + xxxxxxxxxx00xxxxxxxxx0x100011100 + ldursb. */ + return 697; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxxx1000011110 - ldurh. */ - return 704; + xxxxxxxxxx00xxxxxxxxx0x100011101 + ldursw. */ + return 713; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxxx10000111x1 - ldur. */ - return 710; + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00xxxxxxxxx0x100011110 + ldursh. */ + return 707; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00xxxxxxxxx0x100011111 + prfum. */ + return 715; + } } } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - if (((word >> 31) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxxxx100011100 - ldursb. */ - return 697; + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx000000xxxxx10000011100 + ldaddb. */ + return 804; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx000000xxxxx10000011110 + ldaddh. */ + return 805; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx000000xxxxx100000111x1 + ldadd. */ + return 806; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx000000xxxxx10100011100 + ldaddab. */ + return 807; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx000000xxxxx10100011110 + ldaddah. */ + return 810; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx000000xxxxx101000111x1 + ldadda. */ + return 813; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx000000xxxxx11000011100 + ldaddlb. */ + return 808; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx000000xxxxx11000011110 + ldaddlh. */ + return 811; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx000000xxxxx110000111x1 + ldaddl. */ + return 814; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx000000xxxxx11100011100 + ldaddalb. */ + return 809; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx000000xxxxx11100011110 + ldaddalh. */ + return 812; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx000000xxxxx111000111x1 + ldaddal. */ + return 815; + } + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx000001xxxxx10000011100 + swpb. */ + return 792; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx000001xxxxx10000011110 + swph. */ + return 793; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx000001xxxxx100000111x1 + swp. */ + return 794; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx000001xxxxx10100011100 + swpab. */ + return 795; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx000001xxxxx10100011110 + swpah. */ + return 798; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx000001xxxxx101000111x1 + swpa. */ + return 801; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx000001xxxxx11000011100 + swplb. */ + return 796; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx000001xxxxx11000011110 + swplh. */ + return 799; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx000001xxxxx110000111x1 + swpl. */ + return 802; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx000001xxxxx11100011100 + swpalb. */ + return 797; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx000001xxxxx11100011110 + swpalh. */ + return 800; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx000001xxxxx111000111x1 + swpal. */ + return 803; + } + } + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00001xxxxxx10000011100 + ldsmaxb. */ + return 852; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00001xxxxxx10000011110 + ldsmaxh. */ + return 853; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00001xxxxxx100000111x1 + ldsmax. */ + return 854; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00001xxxxxx10100011100 + ldsmaxab. */ + return 855; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00001xxxxxx10100011110 + ldsmaxah. */ + return 858; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00001xxxxxx101000111x1 + ldsmaxa. */ + return 861; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00001xxxxxx11000011100 + ldsmaxlb. */ + return 856; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00001xxxxxx11000011110 + ldsmaxlh. */ + return 859; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00001xxxxxx110000111x1 + ldsmaxl. */ + return 862; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00001xxxxxx11100011100 + ldsmaxalb. */ + return 857; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00001xxxxxx11100011110 + ldsmaxalh. */ + return 860; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00001xxxxxx111000111x1 + ldsmaxal. */ + return 863; + } + } + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxxxx100011101 - ldursw. */ - return 713; + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00010xxxxxx10000011100 + ldeorb. */ + return 828; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00010xxxxxx10000011110 + ldeorh. */ + return 829; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00010xxxxxx100000111x1 + ldeor. */ + return 830; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00010xxxxxx10100011100 + ldeorab. */ + return 831; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00010xxxxxx10100011110 + ldeorah. */ + return 834; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00010xxxxxx101000111x1 + ldeora. */ + return 837; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00010xxxxxx11000011100 + ldeorlb. */ + return 832; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00010xxxxxx11000011110 + ldeorlh. */ + return 835; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00010xxxxxx110000111x1 + ldeorl. */ + return 838; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00010xxxxxx11100011100 + ldeoralb. */ + return 833; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00010xxxxxx11100011110 + ldeoralh. */ + return 836; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00010xxxxxx111000111x1 + ldeoral. */ + return 839; + } + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00011xxxxxx10000011100 + ldumaxb. */ + return 876; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00011xxxxxx10000011110 + ldumaxh. */ + return 877; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00011xxxxxx100000111x1 + ldumax. */ + return 878; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00011xxxxxx10100011100 + ldumaxab. */ + return 879; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00011xxxxxx10100011110 + ldumaxah. */ + return 882; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00011xxxxxx101000111x1 + ldumaxa. */ + return 885; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00011xxxxxx11000011100 + ldumaxlb. */ + return 880; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00011xxxxxx11000011110 + ldumaxlh. */ + return 883; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00011xxxxxx110000111x1 + ldumaxl. */ + return 886; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00011xxxxxx11100011100 + ldumaxalb. */ + return 881; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00011xxxxxx11100011110 + ldumaxalh. */ + return 884; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00011xxxxxx111000111x1 + ldumaxal. */ + return 887; + } + } + } + } } } else { - if (((word >> 31) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxxxx100011110 - ldursh. */ - return 707; + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00100xxxxxx10000011100 + ldclrb. */ + return 816; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00100xxxxxx10000011110 + ldclrh. */ + return 817; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00100xxxxxx100000111x1 + ldclr. */ + return 818; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00100xxxxxx10100011100 + ldclrab. */ + return 819; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00100xxxxxx10100011110 + ldclrah. */ + return 822; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00100xxxxxx101000111x1 + ldclra. */ + return 825; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00100xxxxxx11000011100 + ldclrlb. */ + return 820; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00100xxxxxx11000011110 + ldclrlh. */ + return 823; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00100xxxxxx110000111x1 + ldclrl. */ + return 826; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00100xxxxxx11100011100 + ldclralb. */ + return 821; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00100xxxxxx11100011110 + ldclralh. */ + return 824; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00100xxxxxx111000111x1 + ldclral. */ + return 827; + } + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00101xxxxxx10000011100 + ldsminb. */ + return 864; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00101xxxxxx10000011110 + ldsminh. */ + return 865; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00101xxxxxx100000111x1 + ldsmin. */ + return 866; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00101xxxxxx10100011100 + ldsminab. */ + return 867; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00101xxxxxx10100011110 + ldsminah. */ + return 870; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00101xxxxxx101000111x1 + ldsmina. */ + return 873; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00101xxxxxx11000011100 + ldsminlb. */ + return 868; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00101xxxxxx11000011110 + ldsminlh. */ + return 871; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00101xxxxxx110000111x1 + ldsminl. */ + return 874; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00101xxxxxx11100011100 + ldsminalb. */ + return 869; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00101xxxxxx11100011110 + ldsminalh. */ + return 872; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00101xxxxxx111000111x1 + ldsminal. */ + return 875; + } + } + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxxxx100011111 - prfum. */ - return 715; + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00110xxxxxx10000011100 + ldsetb. */ + return 840; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00110xxxxxx10000011110 + ldseth. */ + return 841; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00110xxxxxx100000111x1 + ldset. */ + return 842; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00110xxxxxx10100011100 + ldsetab. */ + return 843; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00110xxxxxx10100011110 + ldsetah. */ + return 846; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00110xxxxxx101000111x1 + ldseta. */ + return 849; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00110xxxxxx11000011100 + ldsetlb. */ + return 844; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00110xxxxxx11000011110 + ldsetlh. */ + return 847; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00110xxxxxx110000111x1 + ldsetl. */ + return 850; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00110xxxxxx11100011100 + ldsetalb. */ + return 845; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00110xxxxxx11100011110 + ldsetalh. */ + return 848; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00110xxxxxx111000111x1 + ldsetal. */ + return 851; + } + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00111xxxxxx10000011100 + lduminb. */ + return 888; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00111xxxxxx10000011110 + lduminh. */ + return 889; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00111xxxxxx100000111x1 + ldumin. */ + return 890; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00111xxxxxx10100011100 + lduminab. */ + return 891; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00111xxxxxx10100011110 + lduminah. */ + return 894; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00111xxxxxx101000111x1 + ldumina. */ + return 897; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00111xxxxxx11000011100 + lduminlb. */ + return 892; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00111xxxxxx11000011110 + lduminlh. */ + return 895; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00111xxxxxx110000111x1 + lduminl. */ + return 898; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00111xxxxxx11100011100 + lduminalb. */ + return 893; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00111xxxxxx11100011110 + lduminalh. */ + return 896; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxxxxxxxx00111xxxxxx111000111x1 + lduminal. */ + return 899; + } + } + } + } } } } @@ -1017,7 +2381,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxxx10100x00x movn. */ - return 776; + return 948; } else { @@ -1025,7 +2389,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxxx10100x01x movz. */ - return 778; + return 950; } } else @@ -1034,7 +2398,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxxx10100x1xx movk. */ - return 780; + return 952; } } } @@ -1898,7 +3262,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxx00xxxxx00xxx1x10x01x msr. */ - return 783; + return 955; } else { @@ -1906,7 +3270,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxx01xxxxx00xxx1x10x01x hint. */ - return 784; + return 956; } } else @@ -1919,7 +3283,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxx00xxxxx1xxxxxx00xxx1x10x01x dsb. */ - return 792; + return 964; } else { @@ -1929,7 +3293,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxx010xxxx1xxxxxx00xxx1x10x01x clrex. */ - return 791; + return 963; } else { @@ -1937,7 +3301,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxx011xxxx1xxxxxx00xxx1x10x01x isb. */ - return 794; + return 966; } } } @@ -1947,7 +3311,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxx1xxxxxx1xxxxxx00xxx1x10x01x dmb. */ - return 793; + return 965; } } } @@ -1959,7 +3323,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxx100xx1x10x01x sys. */ - return 795; + return 967; } else { @@ -1967,7 +3331,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxx101xx1x10x01x sysl. */ - return 801; + return 973; } } } @@ -1979,7 +3343,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxx10xx1x10x01x msr. */ - return 800; + return 972; } else { @@ -1987,7 +3351,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxx11xx1x10x01x mrs. */ - return 802; + return 974; } } } @@ -2011,7 +3375,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxxxx0110x1xx tbz. */ - return 803; + return 975; } } else @@ -2030,7 +3394,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxxxx1110x1xx tbnz. */ - return 804; + return 976; } } } @@ -7575,10 +8939,58 @@ aarch64_find_alias_opcode (const aarch64_opcode *opcode) case 766: value = 768; break; /* orr --> uxtw. */ case 769: value = 770; break; /* orn --> mvn. */ case 773: value = 774; break; /* ands --> tst. */ - case 776: value = 777; break; /* movn --> mov. */ - case 778: value = 779; break; /* movz --> mov. */ - case 784: value = 790; break; /* hint --> sevl. */ - case 795: value = 799; break; /* sys --> tlbi. */ + case 804: value = 900; break; /* ldaddb --> staddb. */ + case 805: value = 901; break; /* ldaddh --> staddh. */ + case 806: value = 902; break; /* ldadd --> stadd. */ + case 808: value = 903; break; /* ldaddlb --> staddlb. */ + case 811: value = 904; break; /* ldaddlh --> staddlh. */ + case 814: value = 905; break; /* ldaddl --> staddl. */ + case 816: value = 906; break; /* ldclrb --> stclrb. */ + case 817: value = 907; break; /* ldclrh --> stclrh. */ + case 818: value = 908; break; /* ldclr --> stclr. */ + case 820: value = 909; break; /* ldclrlb --> stclrlb. */ + case 823: value = 910; break; /* ldclrlh --> stclrlh. */ + case 826: value = 911; break; /* ldclrl --> stclrl. */ + case 828: value = 912; break; /* ldeorb --> steorb. */ + case 829: value = 913; break; /* ldeorh --> steorh. */ + case 830: value = 914; break; /* ldeor --> steor. */ + case 832: value = 915; break; /* ldeorlb --> steorlb. */ + case 835: value = 916; break; /* ldeorlh --> steorlh. */ + case 838: value = 917; break; /* ldeorl --> steorl. */ + case 840: value = 918; break; /* ldsetb --> stsetb. */ + case 841: value = 919; break; /* ldseth --> stseth. */ + case 842: value = 920; break; /* ldset --> stset. */ + case 844: value = 921; break; /* ldsetlb --> stsetlb. */ + case 847: value = 922; break; /* ldsetlh --> stsetlh. */ + case 850: value = 923; break; /* ldsetl --> stsetl. */ + case 852: value = 924; break; /* ldsmaxb --> stsmaxb. */ + case 853: value = 925; break; /* ldsmaxh --> stsmaxh. */ + case 854: value = 926; break; /* ldsmax --> stsmax. */ + case 856: value = 927; break; /* ldsmaxlb --> stsmaxlb. */ + case 859: value = 928; break; /* ldsmaxlh --> stsmaxlh. */ + case 862: value = 929; break; /* ldsmaxl --> stsmaxl. */ + case 864: value = 930; break; /* ldsminb --> stsminb. */ + case 865: value = 931; break; /* ldsminh --> stsminh. */ + case 866: value = 932; break; /* ldsmin --> stsmin. */ + case 868: value = 933; break; /* ldsminlb --> stsminlb. */ + case 871: value = 934; break; /* ldsminlh --> stsminlh. */ + case 874: value = 935; break; /* ldsminl --> stsminl. */ + case 876: value = 936; break; /* ldumaxb --> stumaxb. */ + case 877: value = 937; break; /* ldumaxh --> stumaxh. */ + case 878: value = 938; break; /* ldumax --> stumax. */ + case 880: value = 939; break; /* ldumaxlb --> stumaxlb. */ + case 883: value = 940; break; /* ldumaxlh --> stumaxlh. */ + case 886: value = 941; break; /* ldumaxl --> stumaxl. */ + case 888: value = 942; break; /* lduminb --> stuminb. */ + case 889: value = 943; break; /* lduminh --> stuminh. */ + case 890: value = 944; break; /* ldumin --> stumin. */ + case 892: value = 945; break; /* lduminlb --> stuminlb. */ + case 895: value = 946; break; /* lduminlh --> stuminlh. */ + case 898: value = 947; break; /* lduminl --> stuminl. */ + case 948: value = 949; break; /* movn --> mov. */ + case 950: value = 951; break; /* movz --> mov. */ + case 956: value = 962; break; /* hint --> sevl. */ + case 967: value = 971; break; /* sys --> tlbi. */ default: return NULL; } @@ -7608,14 +9020,14 @@ aarch64_find_next_alias_opcode (const aarch64_opcode *opcode) case 527: value = 526; break; /* cset --> cinc. */ case 530: value = 529; break; /* csetm --> cinv. */ case 768: value = 767; break; /* uxtw --> mov. */ - case 790: value = 789; break; /* sevl --> sev. */ - case 789: value = 788; break; /* sev --> wfi. */ - case 788: value = 787; break; /* wfi --> wfe. */ - case 787: value = 786; break; /* wfe --> yield. */ - case 786: value = 785; break; /* yield --> nop. */ - case 799: value = 798; break; /* tlbi --> ic. */ - case 798: value = 797; break; /* ic --> dc. */ - case 797: value = 796; break; /* dc --> at. */ + case 962: value = 961; break; /* sevl --> sev. */ + case 961: value = 960; break; /* sev --> wfi. */ + case 960: value = 959; break; /* wfi --> wfe. */ + case 959: value = 958; break; /* wfe --> yield. */ + case 958: value = 957; break; /* yield --> nop. */ + case 971: value = 970; break; /* tlbi --> ic. */ + case 970: value = 969; break; /* ic --> dc. */ + case 969: value = 968; break; /* dc --> at. */ default: return NULL; } @@ -7640,11 +9052,10 @@ aarch64_extract_operand (const aarch64_operand *self, case 7: case 9: case 10: - case 13: case 14: case 15: case 16: - case 18: + case 17: case 19: case 20: case 21: @@ -7653,31 +9064,33 @@ aarch64_extract_operand (const aarch64_operand *self, case 24: case 25: case 26: - case 34: + case 27: case 35: + case 36: return aarch64_ext_regno (self, info, code, inst); case 8: return aarch64_ext_regrt_sysins (self, info, code, inst); case 11: - return aarch64_ext_reg_extended (self, info, code, inst); + return aarch64_ext_regno_pair (self, info, code, inst); case 12: + return aarch64_ext_reg_extended (self, info, code, inst); + case 13: return aarch64_ext_reg_shifted (self, info, code, inst); - case 17: + case 18: return aarch64_ext_ft (self, info, code, inst); - case 27: case 28: case 29: - return aarch64_ext_reglane (self, info, code, inst); case 30: - return aarch64_ext_reglist (self, info, code, inst); + return aarch64_ext_reglane (self, info, code, inst); case 31: - return aarch64_ext_ldst_reglist (self, info, code, inst); + return aarch64_ext_reglist (self, info, code, inst); case 32: - return aarch64_ext_ldst_reglist_r (self, info, code, inst); + return aarch64_ext_ldst_reglist (self, info, code, inst); case 33: + return aarch64_ext_ldst_reglist_r (self, info, code, inst); + case 34: return aarch64_ext_ldst_elemlist (self, info, code, inst); - case 36: - case 45: + case 37: case 46: case 47: case 48: @@ -7690,58 +9103,59 @@ aarch64_extract_operand (const aarch64_operand *self, case 55: case 56: case 57: - case 65: + case 58: case 66: case 67: case 68: case 69: + case 70: return aarch64_ext_imm (self, info, code, inst); - case 37: case 38: - return aarch64_ext_advsimd_imm_shift (self, info, code, inst); case 39: + return aarch64_ext_advsimd_imm_shift (self, info, code, inst); case 40: case 41: - return aarch64_ext_advsimd_imm_modified (self, info, code, inst); case 42: + return aarch64_ext_advsimd_imm_modified (self, info, code, inst); + case 43: return aarch64_ext_shll_imm (self, info, code, inst); - case 58: - return aarch64_ext_limm (self, info, code, inst); case 59: - return aarch64_ext_aimm (self, info, code, inst); + return aarch64_ext_limm (self, info, code, inst); case 60: - return aarch64_ext_imm_half (self, info, code, inst); + return aarch64_ext_aimm (self, info, code, inst); case 61: + return aarch64_ext_imm_half (self, info, code, inst); + case 62: return aarch64_ext_fbits (self, info, code, inst); - case 63: case 64: + case 65: return aarch64_ext_cond (self, info, code, inst); - case 70: - case 76: - return aarch64_ext_addr_simple (self, info, code, inst); case 71: - return aarch64_ext_addr_regoff (self, info, code, inst); + case 77: + return aarch64_ext_addr_simple (self, info, code, inst); case 72: + return aarch64_ext_addr_regoff (self, info, code, inst); case 73: case 74: - return aarch64_ext_addr_simm (self, info, code, inst); case 75: + return aarch64_ext_addr_simm (self, info, code, inst); + case 76: return aarch64_ext_addr_uimm12 (self, info, code, inst); - case 77: - return aarch64_ext_simd_addr_post (self, info, code, inst); case 78: - return aarch64_ext_sysreg (self, info, code, inst); + return aarch64_ext_simd_addr_post (self, info, code, inst); case 79: - return aarch64_ext_pstatefield (self, info, code, inst); + return aarch64_ext_sysreg (self, info, code, inst); case 80: + return aarch64_ext_pstatefield (self, info, code, inst); case 81: case 82: case 83: - return aarch64_ext_sysins_op (self, info, code, inst); case 84: + return aarch64_ext_sysins_op (self, info, code, inst); case 85: - return aarch64_ext_barrier (self, info, code, inst); case 86: + return aarch64_ext_barrier (self, info, code, inst); + case 87: return aarch64_ext_prfop (self, info, code, inst); default: assert (0); abort (); } |