X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=opcodes%2Faarch64-dis-2.c;h=23f32e9478e311a1e1d45583f2e5f49bbc07e814;hb=58920b5be048726fca38e4e6ddcaa02ae6d9c1b8;hp=a6391b048e1914288b56d57456414f0e3ac0d421;hpb=28617675c264213180a599bb4327bf162029636a;p=deliverable%2Fbinutils-gdb.git diff --git a/opcodes/aarch64-dis-2.c b/opcodes/aarch64-dis-2.c index a6391b048e..23f32e9478 100644 --- a/opcodes/aarch64-dis-2.c +++ b/opcodes/aarch64-dis-2.c @@ -1,5 +1,5 @@ /* This file is automatically generated by aarch64-gen. Do not edit! */ -/* Copyright (C) 2012-2016 Free Software Foundation, Inc. +/* Copyright (C) 2012-2020 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of the GNU opcodes library. @@ -38,17 +38,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxxx0000xxx0 + 0xxx0000xxxxxxxxxxxxxxxxxxxxxxxx adr. */ - return 1152; + return 1186; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxxx0000xxx1 + 1xxx0000xxxxxxxxxxxxxxxxxxxxxxxx adrp. */ - return 1153; + return 1187; } } else @@ -59,7 +59,7 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxxx1000x00x + x00x0001xxxxxxxxxxxxxxxxxxxxxxxx add. */ return 12; } @@ -67,7 +67,7 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxxx1000x01x + x10x0001xxxxxxxxxxxxxxxxxxxxxxxx sub. */ return 16; } @@ -78,7 +78,7 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxxx1000x10x + x01x0001xxxxxxxxxxxxxxxxxxxxxxxx adds. */ return 14; } @@ -86,7 +86,7 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxxx1000x11x + x11x0001xxxxxxxxxxxxxxxxxxxxxxxx subs. */ return 17; } @@ -113,26 +113,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx000x0010000 + 0000100x000xxxxx0xxxxxxxxxxxxxxx stxrb. */ - return 907; + return 936; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx000x0010010 + 0100100x000xxxxx0xxxxxxxxxxxxxxx stxrh. */ - return 913; + return 942; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx000x00100x1 + 1x00100x000xxxxx0xxxxxxxxxxxxxxx stxr. */ - return 919; + return 948; } } else @@ -141,17 +141,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx100x00100x0 + 0x00100x001xxxxx0xxxxxxxxxxxxxxx casp. */ - return 987; + return 1021; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx100x00100x1 + 1x00100x001xxxxx0xxxxxxxxxxxxxxx stxp. */ - return 921; + return 950; } } } @@ -165,26 +165,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx000x0010000 + 0000100x000xxxxx1xxxxxxxxxxxxxxx stlxrb. */ - return 908; + return 937; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx000x0010010 + 0100100x000xxxxx1xxxxxxxxxxxxxxx stlxrh. */ - return 914; + return 943; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx000x00100x1 + 1x00100x000xxxxx1xxxxxxxxxxxxxxx stlxr. */ - return 920; + return 949; } } else @@ -193,28 +193,39 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx100x00100x0 + 0x00100x001xxxxx1xxxxxxxxxxxxxxx caspl. */ - return 989; + return 1023; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx100x00100x1 + 1x00100x001xxxxx1xxxxxxxxxxxxxxx stlxp. */ - return 922; + return 951; } } } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx00x00101xx - stnp. */ - return 938; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x010100x00xxxxxxxxxxxxxxxxxxxxxx + stnp. */ + return 970; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x110100x00xxxxxxxxxxxxxxxxxxxxxx + stgp. */ + return 979; + } } } else @@ -229,17 +240,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx001x00100x0 + 0x00100x100xxxxx0xxxxxxxxxxxxxxx stllrb. */ - return 936; + return 968; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx001x00100x1 + 1x00100x100xxxxx0xxxxxxxxxxxxxxx stllr. */ - return 935; + return 967; } } else @@ -250,26 +261,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx101x0010000 + 0000100x101xxxxx0xxxxxxxxxxxxxxx casb. */ - return 975; + return 1009; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx101x0010010 + 0100100x101xxxxx0xxxxxxxxxxxxxxx cash. */ - return 976; + return 1010; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx101x00100x1 + 1x00100x101xxxxx0xxxxxxxxxxxxxxx cas. */ - return 977; + return 1011; } } } @@ -283,26 +294,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx001x0010000 + 0000100x100xxxxx1xxxxxxxxxxxxxxx stlrb. */ - return 911; + return 940; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx001x0010010 + 0100100x100xxxxx1xxxxxxxxxxxxxxx stlrh. */ - return 917; + return 946; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx001x00100x1 + 1x00100x100xxxxx1xxxxxxxxxxxxxxx stlr. */ - return 927; + return 956; } } else @@ -313,37 +324,48 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx101x0010000 + 0000100x101xxxxx1xxxxxxxxxxxxxxx caslb. */ - return 979; + return 1013; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx101x0010010 + 0100100x101xxxxx1xxxxxxxxxxxxxxx caslh. */ - return 982; + return 1016; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx101x00100x1 + 1x00100x101xxxxx1xxxxxxxxxxxxxxx casl. */ - return 985; + return 1019; } } } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx01x00101xx - stp. */ - return 947; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x010100x10xxxxxxxxxxxxxxxxxxxxxx + stp. */ + return 980; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x110100x10xxxxxxxxxxxxxxxxxxxxxx + stgp. */ + return 985; + } } } } @@ -363,26 +385,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx010x0010000 + 0000100x010xxxxx0xxxxxxxxxxxxxxx ldxrb. */ - return 909; + return 938; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx010x0010010 + 0100100x010xxxxx0xxxxxxxxxxxxxxx ldxrh. */ - return 915; + return 944; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx010x00100x1 + 1x00100x010xxxxx0xxxxxxxxxxxxxxx ldxr. */ - return 923; + return 952; } } else @@ -391,17 +413,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx110x00100x0 + 0x00100x011xxxxx0xxxxxxxxxxxxxxx caspa. */ - return 988; + return 1022; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx110x00100x1 + 1x00100x011xxxxx0xxxxxxxxxxxxxxx ldxp. */ - return 925; + return 954; } } } @@ -415,26 +437,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx010x0010000 + 0000100x010xxxxx1xxxxxxxxxxxxxxx ldaxrb. */ - return 910; + return 939; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx010x0010010 + 0100100x010xxxxx1xxxxxxxxxxxxxxx ldaxrh. */ - return 916; + return 945; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx010x00100x1 + 1x00100x010xxxxx1xxxxxxxxxxxxxxx ldaxr. */ - return 924; + return 953; } } else @@ -443,17 +465,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx110x00100x0 + 0x00100x011xxxxx1xxxxxxxxxxxxxxx caspal. */ - return 990; + return 1024; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx110x00100x1 + 1x00100x011xxxxx1xxxxxxxxxxxxxxx ldaxp. */ - return 926; + return 955; } } } @@ -464,17 +486,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx10x001010x + x010100x01xxxxxxxxxxxxxxxxxxxxxx ldnp. */ - return 939; + return 971; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx10x001011x + x110100x01xxxxxxxxxxxxxxxxxxxxxx ldpsw. */ - return 946; + return 978; } } } @@ -492,26 +514,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx011x0010000 + 0000100x110xxxxx0xxxxxxxxxxxxxxx ldlarb. */ - return 933; + return 965; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx011x0010010 + 0100100x110xxxxx0xxxxxxxxxxxxxxx ldlarh. */ - return 934; + return 966; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx011x00100x1 + 1x00100x110xxxxx0xxxxxxxxxxxxxxx ldlar. */ - return 932; + return 964; } } else @@ -522,26 +544,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx111x0010000 + 0000100x111xxxxx0xxxxxxxxxxxxxxx casab. */ - return 978; + return 1012; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx111x0010010 + 0100100x111xxxxx0xxxxxxxxxxxxxxx casah. */ - return 981; + return 1015; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx111x00100x1 + 1x00100x111xxxxx0xxxxxxxxxxxxxxx casa. */ - return 984; + return 1018; } } } @@ -555,26 +577,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx011x0010000 + 0000100x110xxxxx1xxxxxxxxxxxxxxx ldarb. */ - return 912; + return 941; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx011x0010010 + 0100100x110xxxxx1xxxxxxxxxxxxxxx ldarh. */ - return 918; + return 947; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx011x00100x1 + 1x00100x110xxxxx1xxxxxxxxxxxxxxx ldar. */ - return 928; + return 957; } } else @@ -585,26 +607,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx111x0010000 + 0000100x111xxxxx1xxxxxxxxxxxxxxx casalb. */ - return 980; + return 1014; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx111x0010010 + 0100100x111xxxxx1xxxxxxxxxxxxxxx casalh. */ - return 983; + return 1017; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx111x00100x1 + 1x00100x111xxxxx1xxxxxxxxxxxxxxx casal. */ - return 986; + return 1020; } } } @@ -615,17 +637,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx11x001010x + x010100x11xxxxxxxxxxxxxxxxxxxxxx ldp. */ - return 948; + return 981; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx11x001011x + x110100x11xxxxxxxxxxxxxxxxxxxxxx ldpsw. */ - return 951; + return 984; } } } @@ -641,9 +663,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxxx000110x0 + 0x011000xxxxxxxxxxxxxxxxxxxxxxxx ldr. */ - return 952; + return 986; } else { @@ -651,17 +673,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxxx00011001 + 10011000xxxxxxxxxxxxxxxxxxxxxxxx ldrsw. */ - return 954; + return 988; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxxx00011011 + 11011000xxxxxxxxxxxxxxxxxxxxxxxx prfm. */ - return 955; + return 989; } } } @@ -683,26 +705,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxx00000011100 + 00111000000xxxxxxxxx00xxxxxxxxxx sturb. */ - return 893; + return 921; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxx00000011110 + 01111000000xxxxxxxxx00xxxxxxxxxx sturh. */ - return 898; + return 926; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxx000000111x1 + 1x111000000xxxxxxxxx00xxxxxxxxxx stur. */ - return 901; + return 929; } } else @@ -713,26 +735,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxx01000011100 + 00111000010xxxxxxxxx00xxxxxxxxxx ldurb. */ - return 894; + return 922; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxx01000011110 + 01111000010xxxxxxxxx00xxxxxxxxxx ldurh. */ - return 899; + return 927; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxx010000111x1 + 1x111000010xxxxxxxxx00xxxxxxxxxx ldur. */ - return 902; + return 930; } } } @@ -744,17 +766,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxx0x100011100 + 001110001x0xxxxxxxxx00xxxxxxxxxx ldursb. */ - return 895; + return 923; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxx0x100011101 + 101110001x0xxxxxxxxx00xxxxxxxxxx ldursw. */ - return 903; + return 931; } } else @@ -763,17 +785,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxx0x100011110 + 011110001x0xxxxxxxxx00xxxxxxxxxx ldursh. */ - return 900; + return 928; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxx0x100011111 + 111110001x0xxxxxxxxx00xxxxxxxxxx prfum. */ - return 904; + return 932; } } } @@ -798,26 +820,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000000xxxxx10000011100 + 00111000001xxxxx000000xxxxxxxxxx ldaddb. */ - return 1003; + return 1037; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000000xxxxx10000011110 + 01111000001xxxxx000000xxxxxxxxxx ldaddh. */ - return 1004; + return 1038; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000000xxxxx100000111x1 + 1x111000001xxxxx000000xxxxxxxxxx ldadd. */ - return 1005; + return 1039; } } else @@ -828,26 +850,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000000xxxxx10100011100 + 00111000101xxxxx000000xxxxxxxxxx ldaddab. */ - return 1006; + return 1040; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000000xxxxx10100011110 + 01111000101xxxxx000000xxxxxxxxxx ldaddah. */ - return 1009; + return 1043; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000000xxxxx101000111x1 + 1x111000101xxxxx000000xxxxxxxxxx ldadda. */ - return 1012; + return 1046; } } } @@ -861,26 +883,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000000xxxxx11000011100 + 00111000011xxxxx000000xxxxxxxxxx ldaddlb. */ - return 1007; + return 1041; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000000xxxxx11000011110 + 01111000011xxxxx000000xxxxxxxxxx ldaddlh. */ - return 1010; + return 1044; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000000xxxxx110000111x1 + 1x111000011xxxxx000000xxxxxxxxxx ldaddl. */ - return 1013; + return 1047; } } else @@ -891,26 +913,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000000xxxxx11100011100 + 00111000111xxxxx000000xxxxxxxxxx ldaddalb. */ - return 1008; + return 1042; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000000xxxxx11100011110 + 01111000111xxxxx000000xxxxxxxxxx ldaddalh. */ - return 1011; + return 1045; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000000xxxxx111000111x1 + 1x111000111xxxxx000000xxxxxxxxxx ldaddal. */ - return 1014; + return 1048; } } } @@ -927,26 +949,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000001xxxxx10000011100 + 00111000001xxxxx100000xxxxxxxxxx swpb. */ - return 991; + return 1025; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000001xxxxx10000011110 + 01111000001xxxxx100000xxxxxxxxxx swph. */ - return 992; + return 1026; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000001xxxxx100000111x1 + 1x111000001xxxxx100000xxxxxxxxxx swp. */ - return 993; + return 1027; } } else @@ -957,26 +979,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000001xxxxx10100011100 + 00111000101xxxxx100000xxxxxxxxxx swpab. */ - return 994; + return 1028; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000001xxxxx10100011110 + 01111000101xxxxx100000xxxxxxxxxx swpah. */ - return 997; + return 1031; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000001xxxxx101000111x1 + 1x111000101xxxxx100000xxxxxxxxxx swpa. */ - return 1000; + return 1034; } } } @@ -990,26 +1012,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000001xxxxx11000011100 + 00111000011xxxxx100000xxxxxxxxxx swplb. */ - return 995; + return 1029; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000001xxxxx11000011110 + 01111000011xxxxx100000xxxxxxxxxx swplh. */ - return 998; + return 1032; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000001xxxxx110000111x1 + 1x111000011xxxxx100000xxxxxxxxxx swpl. */ - return 1001; + return 1035; } } else @@ -1020,26 +1042,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000001xxxxx11100011100 + 00111000111xxxxx100000xxxxxxxxxx swpalb. */ - return 996; + return 1030; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000001xxxxx11100011110 + 01111000111xxxxx100000xxxxxxxxxx swpalh. */ - return 999; + return 1033; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000001xxxxx111000111x1 + 1x111000111xxxxx100000xxxxxxxxxx swpal. */ - return 1002; + return 1036; } } } @@ -1059,26 +1081,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000010xxxxx10000011100 + 00111000001xxxxx010000xxxxxxxxxx ldsmaxb. */ - return 1051; + return 1085; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000010xxxxx10000011110 + 01111000001xxxxx010000xxxxxxxxxx ldsmaxh. */ - return 1052; + return 1086; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000010xxxxx100000111x1 + 1x111000001xxxxx010000xxxxxxxxxx ldsmax. */ - return 1053; + return 1087; } } else @@ -1089,26 +1111,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000010xxxxx10100011100 + 00111000101xxxxx010000xxxxxxxxxx ldsmaxab. */ - return 1054; + return 1088; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000010xxxxx10100011110 + 01111000101xxxxx010000xxxxxxxxxx ldsmaxah. */ - return 1057; + return 1091; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000010xxxxx101000111x1 + 1x111000101xxxxx010000xxxxxxxxxx ldsmaxa. */ - return 1060; + return 1094; } } } @@ -1122,26 +1144,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000010xxxxx11000011100 + 00111000011xxxxx010000xxxxxxxxxx ldsmaxlb. */ - return 1055; + return 1089; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000010xxxxx11000011110 + 01111000011xxxxx010000xxxxxxxxxx ldsmaxlh. */ - return 1058; + return 1092; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000010xxxxx110000111x1 + 1x111000011xxxxx010000xxxxxxxxxx ldsmaxl. */ - return 1061; + return 1095; } } else @@ -1152,26 +1174,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000010xxxxx11100011100 + 00111000111xxxxx010000xxxxxxxxxx ldsmaxalb. */ - return 1056; + return 1090; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000010xxxxx11100011110 + 01111000111xxxxx010000xxxxxxxxxx ldsmaxalh. */ - return 1059; + return 1093; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000010xxxxx111000111x1 + 1x111000111xxxxx010000xxxxxxxxxx ldsmaxal. */ - return 1062; + return 1096; } } } @@ -1184,26 +1206,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000011xxxxx1xx00011100 + 00111000xx1xxxxx110000xxxxxxxxxx ldaprb. */ - return 929; + return 958; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000011xxxxx1xx00011110 + 01111000xx1xxxxx110000xxxxxxxxxx ldaprh. */ - return 930; + return 959; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000011xxxxx1xx000111x1 + 1x111000xx1xxxxx110000xxxxxxxxxx ldapr. */ - return 931; + return 960; } } } @@ -1222,26 +1244,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00010xxxxxx10000011100 + 00111000001xxxxxx01000xxxxxxxxxx ldeorb. */ - return 1027; + return 1061; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00010xxxxxx10000011110 + 01111000001xxxxxx01000xxxxxxxxxx ldeorh. */ - return 1028; + return 1062; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00010xxxxxx100000111x1 + 1x111000001xxxxxx01000xxxxxxxxxx ldeor. */ - return 1029; + return 1063; } } else @@ -1252,26 +1274,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00010xxxxxx10100011100 + 00111000101xxxxxx01000xxxxxxxxxx ldeorab. */ - return 1030; + return 1064; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00010xxxxxx10100011110 + 01111000101xxxxxx01000xxxxxxxxxx ldeorah. */ - return 1033; + return 1067; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00010xxxxxx101000111x1 + 1x111000101xxxxxx01000xxxxxxxxxx ldeora. */ - return 1036; + return 1070; } } } @@ -1285,26 +1307,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00010xxxxxx11000011100 + 00111000011xxxxxx01000xxxxxxxxxx ldeorlb. */ - return 1031; + return 1065; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00010xxxxxx11000011110 + 01111000011xxxxxx01000xxxxxxxxxx ldeorlh. */ - return 1034; + return 1068; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00010xxxxxx110000111x1 + 1x111000011xxxxxx01000xxxxxxxxxx ldeorl. */ - return 1037; + return 1071; } } else @@ -1315,26 +1337,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00010xxxxxx11100011100 + 00111000111xxxxxx01000xxxxxxxxxx ldeoralb. */ - return 1032; + return 1066; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00010xxxxxx11100011110 + 01111000111xxxxxx01000xxxxxxxxxx ldeoralh. */ - return 1035; + return 1069; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00010xxxxxx111000111x1 + 1x111000111xxxxxx01000xxxxxxxxxx ldeoral. */ - return 1038; + return 1072; } } } @@ -1351,26 +1373,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00011xxxxxx10000011100 + 00111000001xxxxxx11000xxxxxxxxxx ldumaxb. */ - return 1075; + return 1109; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00011xxxxxx10000011110 + 01111000001xxxxxx11000xxxxxxxxxx ldumaxh. */ - return 1076; + return 1110; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00011xxxxxx100000111x1 + 1x111000001xxxxxx11000xxxxxxxxxx ldumax. */ - return 1077; + return 1111; } } else @@ -1381,26 +1403,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00011xxxxxx10100011100 + 00111000101xxxxxx11000xxxxxxxxxx ldumaxab. */ - return 1078; + return 1112; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00011xxxxxx10100011110 + 01111000101xxxxxx11000xxxxxxxxxx ldumaxah. */ - return 1081; + return 1115; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00011xxxxxx101000111x1 + 1x111000101xxxxxx11000xxxxxxxxxx ldumaxa. */ - return 1084; + return 1118; } } } @@ -1414,26 +1436,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00011xxxxxx11000011100 + 00111000011xxxxxx11000xxxxxxxxxx ldumaxlb. */ - return 1079; + return 1113; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00011xxxxxx11000011110 + 01111000011xxxxxx11000xxxxxxxxxx ldumaxlh. */ - return 1082; + return 1116; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00011xxxxxx110000111x1 + 1x111000011xxxxxx11000xxxxxxxxxx ldumaxl. */ - return 1085; + return 1119; } } else @@ -1444,26 +1466,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00011xxxxxx11100011100 + 00111000111xxxxxx11000xxxxxxxxxx ldumaxalb. */ - return 1080; + return 1114; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00011xxxxxx11100011110 + 01111000111xxxxxx11000xxxxxxxxxx ldumaxalh. */ - return 1083; + return 1117; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00011xxxxxx111000111x1 + 1x111000111xxxxxx11000xxxxxxxxxx ldumaxal. */ - return 1086; + return 1120; } } } @@ -1486,26 +1508,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00100xxxxxx10000011100 + 00111000001xxxxxx00100xxxxxxxxxx ldclrb. */ - return 1015; + return 1049; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00100xxxxxx10000011110 + 01111000001xxxxxx00100xxxxxxxxxx ldclrh. */ - return 1016; + return 1050; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00100xxxxxx100000111x1 + 1x111000001xxxxxx00100xxxxxxxxxx ldclr. */ - return 1017; + return 1051; } } else @@ -1516,26 +1538,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00100xxxxxx10100011100 + 00111000101xxxxxx00100xxxxxxxxxx ldclrab. */ - return 1018; + return 1052; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00100xxxxxx10100011110 + 01111000101xxxxxx00100xxxxxxxxxx ldclrah. */ - return 1021; + return 1055; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00100xxxxxx101000111x1 + 1x111000101xxxxxx00100xxxxxxxxxx ldclra. */ - return 1024; + return 1058; } } } @@ -1549,26 +1571,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00100xxxxxx11000011100 + 00111000011xxxxxx00100xxxxxxxxxx ldclrlb. */ - return 1019; + return 1053; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00100xxxxxx11000011110 + 01111000011xxxxxx00100xxxxxxxxxx ldclrlh. */ - return 1022; + return 1056; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00100xxxxxx110000111x1 + 1x111000011xxxxxx00100xxxxxxxxxx ldclrl. */ - return 1025; + return 1059; } } else @@ -1579,26 +1601,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00100xxxxxx11100011100 + 00111000111xxxxxx00100xxxxxxxxxx ldclralb. */ - return 1020; + return 1054; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00100xxxxxx11100011110 + 01111000111xxxxxx00100xxxxxxxxxx ldclralh. */ - return 1023; + return 1057; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00100xxxxxx111000111x1 + 1x111000111xxxxxx00100xxxxxxxxxx ldclral. */ - return 1026; + return 1060; } } } @@ -1615,26 +1637,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00101xxxxxx10000011100 + 00111000001xxxxxx10100xxxxxxxxxx ldsminb. */ - return 1063; + return 1097; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00101xxxxxx10000011110 + 01111000001xxxxxx10100xxxxxxxxxx ldsminh. */ - return 1064; + return 1098; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00101xxxxxx100000111x1 + 1x111000001xxxxxx10100xxxxxxxxxx ldsmin. */ - return 1065; + return 1099; } } else @@ -1645,26 +1667,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00101xxxxxx10100011100 + 00111000101xxxxxx10100xxxxxxxxxx ldsminab. */ - return 1066; + return 1100; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00101xxxxxx10100011110 + 01111000101xxxxxx10100xxxxxxxxxx ldsminah. */ - return 1069; + return 1103; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00101xxxxxx101000111x1 + 1x111000101xxxxxx10100xxxxxxxxxx ldsmina. */ - return 1072; + return 1106; } } } @@ -1678,26 +1700,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00101xxxxxx11000011100 + 00111000011xxxxxx10100xxxxxxxxxx ldsminlb. */ - return 1067; + return 1101; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00101xxxxxx11000011110 + 01111000011xxxxxx10100xxxxxxxxxx ldsminlh. */ - return 1070; + return 1104; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00101xxxxxx110000111x1 + 1x111000011xxxxxx10100xxxxxxxxxx ldsminl. */ - return 1073; + return 1107; } } else @@ -1708,26 +1730,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00101xxxxxx11100011100 + 00111000111xxxxxx10100xxxxxxxxxx ldsminalb. */ - return 1068; + return 1102; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00101xxxxxx11100011110 + 01111000111xxxxxx10100xxxxxxxxxx ldsminalh. */ - return 1071; + return 1105; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00101xxxxxx111000111x1 + 1x111000111xxxxxx10100xxxxxxxxxx ldsminal. */ - return 1074; + return 1108; } } } @@ -1747,26 +1769,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00110xxxxxx10000011100 + 00111000001xxxxxx01100xxxxxxxxxx ldsetb. */ - return 1039; + return 1073; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00110xxxxxx10000011110 + 01111000001xxxxxx01100xxxxxxxxxx ldseth. */ - return 1040; + return 1074; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00110xxxxxx100000111x1 + 1x111000001xxxxxx01100xxxxxxxxxx ldset. */ - return 1041; + return 1075; } } else @@ -1777,26 +1799,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00110xxxxxx10100011100 + 00111000101xxxxxx01100xxxxxxxxxx ldsetab. */ - return 1042; + return 1076; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00110xxxxxx10100011110 + 01111000101xxxxxx01100xxxxxxxxxx ldsetah. */ - return 1045; + return 1079; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00110xxxxxx101000111x1 + 1x111000101xxxxxx01100xxxxxxxxxx ldseta. */ - return 1048; + return 1082; } } } @@ -1810,26 +1832,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00110xxxxxx11000011100 + 00111000011xxxxxx01100xxxxxxxxxx ldsetlb. */ - return 1043; + return 1077; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00110xxxxxx11000011110 + 01111000011xxxxxx01100xxxxxxxxxx ldsetlh. */ - return 1046; + return 1080; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00110xxxxxx110000111x1 + 1x111000011xxxxxx01100xxxxxxxxxx ldsetl. */ - return 1049; + return 1083; } } else @@ -1840,26 +1862,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00110xxxxxx11100011100 + 00111000111xxxxxx01100xxxxxxxxxx ldsetalb. */ - return 1044; + return 1078; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00110xxxxxx11100011110 + 01111000111xxxxxx01100xxxxxxxxxx ldsetalh. */ - return 1047; + return 1081; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00110xxxxxx111000111x1 + 1x111000111xxxxxx01100xxxxxxxxxx ldsetal. */ - return 1050; + return 1084; } } } @@ -1876,26 +1898,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00111xxxxxx10000011100 + 00111000001xxxxxx11100xxxxxxxxxx lduminb. */ - return 1087; + return 1121; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00111xxxxxx10000011110 + 01111000001xxxxxx11100xxxxxxxxxx lduminh. */ - return 1088; + return 1122; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00111xxxxxx100000111x1 + 1x111000001xxxxxx11100xxxxxxxxxx ldumin. */ - return 1089; + return 1123; } } else @@ -1906,26 +1928,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00111xxxxxx10100011100 + 00111000101xxxxxx11100xxxxxxxxxx lduminab. */ - return 1090; + return 1124; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00111xxxxxx10100011110 + 01111000101xxxxxx11100xxxxxxxxxx lduminah. */ - return 1093; + return 1127; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00111xxxxxx101000111x1 + 1x111000101xxxxxx11100xxxxxxxxxx ldumina. */ - return 1096; + return 1130; } } } @@ -1939,26 +1961,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00111xxxxxx11000011100 + 00111000011xxxxxx11100xxxxxxxxxx lduminlb. */ - return 1091; + return 1125; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00111xxxxxx11000011110 + 01111000011xxxxxx11100xxxxxxxxxx lduminlh. */ - return 1094; + return 1128; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00111xxxxxx110000111x1 + 1x111000011xxxxxx11100xxxxxxxxxx lduminl. */ - return 1097; + return 1131; } } else @@ -1969,26 +1991,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00111xxxxxx11100011100 + 00111000111xxxxxx11100xxxxxxxxxx lduminalb. */ - return 1092; + return 1126; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00111xxxxxx11100011110 + 01111000111xxxxxx11100xxxxxxxxxx lduminalh. */ - return 1095; + return 1129; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00111xxxxxx111000111x1 + 1x111000111xxxxxx11100xxxxxxxxxx lduminal. */ - return 1098; + return 1132; } } } @@ -2011,26 +2033,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx00000011100 + 00111000000xxxxxxxxx10xxxxxxxxxx sttrb. */ - return 884; + return 912; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx00000011110 + 01111000000xxxxxxxxx10xxxxxxxxxx sttrh. */ - return 887; + return 915; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx000000111x1 + 1x111000000xxxxxxxxx10xxxxxxxxxx sttr. */ - return 890; + return 918; } } else @@ -2041,26 +2063,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx01000011100 + 00111000010xxxxxxxxx10xxxxxxxxxx ldtrb. */ - return 885; + return 913; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx01000011110 + 01111000010xxxxxxxxx10xxxxxxxxxx ldtrh. */ - return 888; + return 916; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx010000111x1 + 1x111000010xxxxxxxxx10xxxxxxxxxx ldtr. */ - return 891; + return 919; } } } @@ -2072,26 +2094,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx0x100011100 + 001110001x0xxxxxxxxx10xxxxxxxxxx ldtrsb. */ - return 886; + return 914; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx0x100011101 + 101110001x0xxxxxxxxx10xxxxxxxxxx ldtrsw. */ - return 892; + return 920; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx0x10001111x + x11110001x0xxxxxxxxx10xxxxxxxxxx ldtrsh. */ - return 889; + return 917; } } } @@ -2107,26 +2129,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx10000011100 + 00111000001xxxxxxxxx10xxxxxxxxxx strb. */ - return 872; + return 900; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx10000011110 + 01111000001xxxxxxxxx10xxxxxxxxxx strh. */ - return 877; + return 905; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx100000111x1 + 1x111000001xxxxxxxxx10xxxxxxxxxx str. */ - return 880; + return 908; } } else @@ -2137,26 +2159,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx11000011100 + 00111000011xxxxxxxxx10xxxxxxxxxx ldrb. */ - return 873; + return 901; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx11000011110 + 01111000011xxxxxxxxx10xxxxxxxxxx ldrh. */ - return 878; + return 906; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx110000111x1 + 1x111000011xxxxxxxxx10xxxxxxxxxx ldr. */ - return 881; + return 909; } } } @@ -2168,17 +2190,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx1x100011100 + 001110001x1xxxxxxxxx10xxxxxxxxxx ldrsb. */ - return 874; + return 902; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx1x100011101 + 101110001x1xxxxxxxxx10xxxxxxxxxx ldrsw. */ - return 882; + return 910; } } else @@ -2187,17 +2209,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx1x100011110 + 011110001x1xxxxxxxxx10xxxxxxxxxx ldrsh. */ - return 879; + return 907; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx1x100011111 + 111110001x1xxxxxxxxx10xxxxxxxxxx prfm. */ - return 883; + return 911; } } } @@ -2218,26 +2240,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1xxxxxxxxxx00000011100 + 00111000000xxxxxxxxxx1xxxxxxxxxx strb. */ - return 849; + return 869; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1xxxxxxxxxx00000011110 + 01111000000xxxxxxxxxx1xxxxxxxxxx strh. */ - return 854; + return 874; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1xxxxxxxxxx000000111x1 + 1x111000000xxxxxxxxxx1xxxxxxxxxx str. */ - return 857; + return 877; } } else @@ -2248,26 +2270,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1xxxxxxxxxx01000011100 + 00111000010xxxxxxxxxx1xxxxxxxxxx ldrb. */ - return 850; + return 870; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1xxxxxxxxxx01000011110 + 01111000010xxxxxxxxxx1xxxxxxxxxx ldrh. */ - return 855; + return 875; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1xxxxxxxxxx010000111x1 + 1x111000010xxxxxxxxxx1xxxxxxxxxx ldr. */ - return 858; + return 878; } } } @@ -2279,26 +2301,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1xxxxxxxxxx0x100011100 + 001110001x0xxxxxxxxxx1xxxxxxxxxx ldrsb. */ - return 851; + return 871; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1xxxxxxxxxx0x100011101 + 101110001x0xxxxxxxxxx1xxxxxxxxxx ldrsw. */ - return 859; + return 879; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1xxxxxxxxxx0x10001111x + x11110001x0xxxxxxxxxx1xxxxxxxxxx ldrsh. */ - return 856; + return 876; } } } @@ -2308,17 +2330,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1xxxxxxxxxx1x0000111xx + xx1110000x1xxxxxxxxxx1xxxxxxxxxx ldraa. */ - return 905; + return 934; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1xxxxxxxxxx1x1000111xx + xx1110001x1xxxxxxxxxx1xxxxxxxxxx ldrab. */ - return 906; + return 935; } } } @@ -2330,109 +2352,384 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 22) & 0x1) == 0) { - if (((word >> 31) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 10) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx0010011x00 - strb. */ - return 860; + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00011001000xxxxxxxxx00xxxxxxxxxx + stlurb. */ + return 2377; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 10011001000xxxxxxxxx00xxxxxxxxxx + stlur. */ + return 2385; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01011001000xxxxxxxxx00xxxxxxxxxx + stlurh. */ + return 2381; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 11011001000xxxxxxxxx00xxxxxxxxxx + stlur. */ + return 2388; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011001001xxxxxxxxx00xxxxxxxxxx + stzgm. */ + return 963; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx01100100xxxxxxxxxx10xxxxxxxxxx + stg. */ + return 880; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx0010011x10 - strh. */ - return 865; + xx01100100xxxxxxxxxxx1xxxxxxxxxx + stg. */ + return 884; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx0010011xx1 - str. */ - return 868; + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0011100100xxxxxxxxxxxxxxxxxxxxxx + strb. */ + return 888; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0111100100xxxxxxxxxxxxxxxxxxxxxx + strh. */ + return 893; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x11100100xxxxxxxxxxxxxxxxxxxxxx + str. */ + return 896; + } } } else { - if (((word >> 31) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 10) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx1010011x00 - ldrb. */ - return 861; + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00011001010xxxxxxxxx00xxxxxxxxxx + ldapurb. */ + return 2378; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 10011001010xxxxxxxxx00xxxxxxxxxx + ldapur. */ + return 2386; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01011001010xxxxxxxxx00xxxxxxxxxx + ldapurh. */ + return 2382; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 11011001010xxxxxxxxx00xxxxxxxxxx + ldapur. */ + return 2389; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011001011xxxxxxxxx00xxxxxxxxxx + ldg. */ + return 933; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx01100101xxxxxxxxxx10xxxxxxxxxx + stzg. */ + return 881; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx1010011x10 - ldrh. */ - return 866; + xx01100101xxxxxxxxxxx1xxxxxxxxxx + stzg. */ + return 885; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx1010011xx1 - ldr. */ - return 869; + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0011100101xxxxxxxxxxxxxxxxxxxxxx + ldrb. */ + return 889; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0111100101xxxxxxxxxxxxxxxxxxxxxx + ldrh. */ + return 894; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x11100101xxxxxxxxxxxxxxxxxxxxxx + ldr. */ + return 897; + } } } } else { - if (((word >> 30) & 0x1) == 0) - { - if (((word >> 31) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxx110011x00 - ldrsb. */ - return 862; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxx110011x01 - ldrsw. */ - return 870; - } - } - else + if (((word >> 29) & 0x1) == 0) { - if (((word >> 31) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxx110011x10 - ldrsh. */ - return 867; - } - else + if (((word >> 10) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxx110011x11 - prfm. */ - return 871; - } - } - } - } - } - } + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00011001100xxxxxxxxx00xxxxxxxxxx + ldapursb. */ + return 2380; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 10011001100xxxxxxxxx00xxxxxxxxxx + ldapursw. */ + return 2387; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011001100xxxxxxxxx00xxxxxxxxxx + ldapursh. */ + return 2384; + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011001110xxxxxxxxx00xxxxxxxxxx + ldapursb. */ + return 2379; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011001110xxxxxxxxx00xxxxxxxxxx + ldapursh. */ + return 2383; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011001101xxxxxxxxx00xxxxxxxxxx + stgm. */ + return 962; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011001111xxxxxxxxx00xxxxxxxxxx + ldgm. */ + return 961; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx01100110xxxxxxxxxx10xxxxxxxxxx + st2g. */ + return 882; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx01100111xxxxxxxxxx10xxxxxxxxxx + stz2g. */ + return 883; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx01100110xxxxxxxxxxx1xxxxxxxxxx + st2g. */ + return 886; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx01100111xxxxxxxxxxx1xxxxxxxxxx + stz2g. */ + return 887; + } + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001110011xxxxxxxxxxxxxxxxxxxxxxx + ldrsb. */ + return 890; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101110011xxxxxxxxxxxxxxxxxxxxxxx + ldrsw. */ + return 898; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011110011xxxxxxxxxxxxxxxxxxxxxxx + ldrsh. */ + return 895; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111110011xxxxxxxxxxxxxxxxxxxxxxx + prfm. */ + return 899; + } + } + } + } + } + } + } } else { @@ -2448,17 +2745,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxx00100x00x + x00x00100xxxxxxxxxxxxxxxxxxxxxxx and. */ - return 956; + return 990; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxx00100x01x + x10x00100xxxxxxxxxxxxxxxxxxxxxxx eor. */ - return 960; + return 994; } } else @@ -2467,17 +2764,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxx00100x10x + x01x00100xxxxxxxxxxxxxxxxxxxxxxx orr. */ - return 958; + return 992; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxx00100x11x + x11x00100xxxxxxxxxxxxxxxxxxxxxxx ands. */ - return 961; + return 995; } } } @@ -2489,26 +2786,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxx10100x00x + x00x00101xxxxxxxxxxxxxxxxxxxxxxx movn. */ - return 1147; + return 1181; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxx10100x01x + x10x00101xxxxxxxxxxxxxxxxxxxxxxx movz. */ - return 1149; + return 1183; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxx10100x1xx + xx1x00101xxxxxxxxxxxxxxxxxxxxxxx movk. */ - return 1151; + return 1185; } } } @@ -2524,17 +2821,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx0xx0101000x + x0001010xx0xxxxxxxxxxxxxxxxxxxxx and. */ - return 963; + return 997; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx0xx0101001x + x1001010xx0xxxxxxxxxxxxxxxxxxxxx eor. */ - return 970; + return 1004; } } else @@ -2543,17 +2840,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx0xx0101010x + x0101010xx0xxxxxxxxxxxxxxxxxxxxx orr. */ - return 965; + return 999; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx0xx0101011x + x1101010xx0xxxxxxxxxxxxxxxxxxxxx ands. */ - return 972; + return 1006; } } } @@ -2573,7 +2870,7 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxx0000101100x + x0011010000xxxxxxxxx00xxxxxxxxxx adc. */ return 0; } @@ -2581,7 +2878,7 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxx0000101101x + x1011010000xxxxxxxxx00xxxxxxxxxx sbc. */ return 2; } @@ -2592,7 +2889,7 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxx0000101110x + x0111010000xxxxxxxxx00xxxxxxxxxx adcs. */ return 1; } @@ -2600,7 +2897,7 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxx0000101111x + x1111010000xxxxxxxxx00xxxxxxxxxx sbcs. */ return 4; } @@ -2612,17 +2909,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxx00101011x0x + x0x11010100xxxxxxxxx00xxxxxxxxxx csel. */ - return 653; + return 662; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxx00101011x1x + x1x11010100xxxxxxxxx00xxxxxxxxxx csinv. */ - return 657; + return 666; } } } @@ -2634,17 +2931,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxx01001011x0x + x0x11010010xxxxxxxxx00xxxxxxxxxx ccmn. */ - return 651; + return 660; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxx01001011x1x + x1x11010010xxxxxxxxx00xxxxxxxxxx ccmp. */ - return 652; + return 661; } } else @@ -2655,21 +2952,43 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 14) & 0x1) == 0) { - if (((word >> 16) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00000x0xxxx01101011xxx - rbit. */ - return 676; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011010110xxxxxx00000xxxxxxxxxx + subp. */ + return 721; + } + else + { + if (((word >> 16) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011010110xxxx0x00000xxxxxxxxxx + rbit. */ + return 685; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011010110xxxx1x00000xxxxxxxxxx + pacia. */ + return 693; + } + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00000x1xxxx01101011xxx - pacia. */ - return 684; + xx111010110xxxxxx00000xxxxxxxxxx + subps. */ + return 722; } } else @@ -2678,17 +2997,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00001xxxxxx01101011x0x + x0x11010110xxxxxx10000xxxxxxxxxx crc32b. */ - return 713; + return 727; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00001xxxxxx01101011x1x + x1x11010110xxxxxx10000xxxxxxxxxx xpaci. */ - return 700; + return 709; } } } @@ -2698,17 +3017,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0001xxxxxxx01101011x0x + x0x11010110xxxxxxx1000xxxxxxxxxx lslv. */ - return 704; + return 713; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0001xxxxxxx01101011x1x + x1x11010110xxxxxxx1000xxxxxxxxxx paciza. */ - return 692; + return 701; } } } @@ -2718,30 +3037,41 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 14) & 0x1) == 0) { - if (((word >> 16) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00100x0xxxx01101011xxx - clz. */ - return 681; + x0x11010110xxxxxx00100xxxxxxxxxx + irg. */ + return 724; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00100x1xxxx01101011xxx - autia. */ - return 688; + if (((word >> 16) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11010110xxxx0x00100xxxxxxxxxx + clz. */ + return 690; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11010110xxxx1x00100xxxxxxxxxx + autia. */ + return 697; + } } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00101xxxxxx01101011xxx + xxx11010110xxxxxx10100xxxxxxxxxx crc32cb. */ - return 717; + return 731; } } else @@ -2750,17 +3080,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0011xxxxxxx01101011x0x + x0x11010110xxxxxxx1100xxxxxxxxxx pacga. */ - return 712; + return 726; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0011xxxxxxx01101011x1x + x1x11010110xxxxxxx1100xxxxxxxxxx autiza. */ - return 696; + return 705; } } } @@ -2769,131 +3099,153 @@ aarch64_opcode_lookup_1 (uint32_t word) } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx0x001011x0x - ccmn. */ - return 649; + xxx11010x00xxxxxx0xx10xxxxxxxxxx + setf8. */ + return 2375; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx0x001011x1x - ccmp. */ - return 650; + xxx11010x00xxxxxx1xx10xxxxxxxxxx + setf16. */ + return 2376; } } else { - if (((word >> 12) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - if (((word >> 13) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { - if (((word >> 14) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0x11010010xxxxxxxxx10xxxxxxxxxx + ccmn. */ + return 658; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11010010xxxxxxxxx10xxxxxxxxxx + ccmp. */ + return 659; + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01000xxxxxx0x101011x0x - udiv. */ - return 702; - } - else + if (((word >> 14) & 0x1) == 0) { - if (((word >> 16) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { - if (((word >> 31) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0x11010110xxxxxx00010xxxxxxxxxx + udiv. */ + return 711; + } + else + { + if (((word >> 16) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01000x0xxxx0x101011x10 - rev. */ - return 678; + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01x11010110xxxx0x00010xxxxxxxxxx + rev. */ + return 687; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 11x11010110xxxx0x00010xxxxxxxxxx + rev32. */ + return 692; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01000x0xxxx0x101011x11 - rev32. */ - return 683; + x1x11010110xxxx1x00010xxxxxxxxxx + pacda. */ + return 695; } } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01000x1xxxx0x101011x1x - pacda. */ - return 686; - } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11010110xxxxxx10010xxxxxxxxxx + crc32w. */ + return 729; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01001xxxxxx0x101011xxx - crc32w. */ - return 715; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0x11010110xxxxxxx1010xxxxxxxxxx + asrv. */ + return 717; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11010110xxxxxxx1010xxxxxxxxxx + pacdza. */ + return 703; + } } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101xxxxxxx0x101011x0x - asrv. */ - return 708; + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11010110xxxxxx00110xxxxxxxxxx + autda. */ + return 699; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11010110xxxxxx10110xxxxxxxxxx + crc32cw. */ + return 733; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0101xxxxxxx0x101011x1x - pacdza. */ - return 694; + xxx11010110xxxxxxx1110xxxxxxxxxx + autdza. */ + return 707; } } } - else - { - if (((word >> 13) & 0x1) == 0) - { - if (((word >> 14) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01100xxxxxx0x101011xxx - autda. */ - return 690; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01101xxxxxx0x101011xxx - crc32cw. */ - return 719; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0111xxxxxxx0x101011xxx - autdza. */ - return 698; - } - } } } } @@ -2903,21 +3255,32 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 22) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx10xxxxxxxxx00x01011x0x - csinc. */ - return 654; + xxx11010000xxxxxxxxx01xxxxxxxxxx + rmif. */ + return 2374; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx10xxxxxxxxx00x01011x1x - csneg. */ - return 660; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0x11010100xxxxxxxxx01xxxxxxxxxx + csinc. */ + return 663; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11010100xxxxxxxxx01xxxxxxxxxx + csneg. */ + return 669; + } } } else @@ -2932,17 +3295,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx10000x0xxxx01x01011xxx + xxx11010x10xxxx0x00001xxxxxxxxxx rev16. */ - return 677; + return 686; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx10000x1xxxx01x01011xxx + xxx11010x10xxxx1x00001xxxxxxxxxx pacib. */ - return 685; + return 694; } } else @@ -2951,17 +3314,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx10001xxxxxx01x01011x0x + x0x11010x10xxxxxx10001xxxxxxxxxx crc32h. */ - return 714; + return 728; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx10001xxxxxx01x01011x1x + x1x11010x10xxxxxx10001xxxxxxxxxx xpacd. */ - return 701; + return 710; } } } @@ -2971,17 +3334,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1001xxxxxxx01x01011x0x + x0x11010x10xxxxxxx1001xxxxxxxxxx lsrv. */ - return 706; + return 715; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1001xxxxxxx01x01011x1x + x1x11010x10xxxxxxx1001xxxxxxxxxx pacizb. */ - return 693; + return 702; } } } @@ -2991,39 +3354,50 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 14) & 0x1) == 0) { - if (((word >> 16) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx10100x0xxxx01x01011xxx - cls. */ - return 682; + x0x11010x10xxxxxx00101xxxxxxxxxx + gmi. */ + return 725; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx10100x1xxxx01x01011xxx - autib. */ - return 689; + if (((word >> 16) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11010x10xxxx0x00101xxxxxxxxxx + cls. */ + return 691; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11010x10xxxx1x00101xxxxxxxxxx + autib. */ + return 698; + } } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx10101xxxxxx01x01011xxx + xxx11010x10xxxxxx10101xxxxxxxxxx crc32ch. */ - return 718; + return 732; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1011xxxxxxx01x01011xxx + xxx11010x10xxxxxxx1101xxxxxxxxxx autizb. */ - return 697; + return 706; } } } @@ -3040,9 +3414,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx11000xxxxxx0xx01011x0x + x0x11010xx0xxxxxx00011xxxxxxxxxx sdiv. */ - return 703; + return 712; } else { @@ -3050,17 +3424,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx11000x0xxxx0xx01011x1x + x1x11010xx0xxxx0x00011xxxxxxxxxx rev. */ - return 679; + return 688; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx11000x1xxxx0xx01011x1x + x1x11010xx0xxxx1x00011xxxxxxxxxx pacdb. */ - return 687; + return 696; } } } @@ -3068,9 +3442,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx11001xxxxxx0xx01011xxx + xxx11010xx0xxxxxx10011xxxxxxxxxx crc32x. */ - return 716; + return 730; } } else @@ -3079,17 +3453,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1101xxxxxxx0xx01011x0x + x0x11010xx0xxxxxxx1011xxxxxxxxxx rorv. */ - return 710; + return 719; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1101xxxxxxx0xx01011x1x + x1x11010xx0xxxxxxx1011xxxxxxxxxx pacdzb. */ - return 695; + return 704; } } } @@ -3101,26 +3475,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx11100xxxxxx0xx01011xxx + xxx11010xx0xxxxxx00111xxxxxxxxxx autdb. */ - return 691; + return 700; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx11101xxxxxx0xx01011xxx + xxx11010xx0xxxxxx10111xxxxxxxxxx crc32cx. */ - return 720; + return 734; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1111xxxxxxx0xx01011xxx + xxx11010xx0xxxxxxx1111xxxxxxxxxx autdzb. */ - return 699; + return 708; } } } @@ -3135,17 +3509,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx1xx0101x00x + x00x1010xx1xxxxxxxxxxxxxxxxxxxxx bic. */ - return 964; + return 998; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx1xx0101x01x + x10x1010xx1xxxxxxxxxxxxxxxxxxxxx eon. */ - return 971; + return 1005; } } else @@ -3154,17 +3528,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx1xx0101x10x + x01x1010xx1xxxxxxxxxxxxxxxxxxxxx orn. */ - return 968; + return 1002; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx1xx0101x11x + x11x1010xx1xxxxxxxxxxxxxxxxxxxxx bics. */ - return 974; + return 1008; } } } @@ -3182,35 +3556,35 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxx01100x00x + x00x00110xxxxxxxxxxxxxxxxxxxxxxx sbfm. */ - return 609; + return 618; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxx01100x01x + x10x00110xxxxxxxxxxxxxxxxxxxxxxx ubfm. */ - return 620; + return 629; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxx01100x1xx + xx1x00110xxxxxxxxxxxxxxxxxxxxxxx bfm. */ - return 616; + return 625; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxx11100xxxx + xxxx00111xxxxxxxxxxxxxxxxxxxxxxx extr. */ - return 743; + return 757; } } else @@ -3225,17 +3599,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx0xx1101000x + x0001011xx0xxxxxxxxxxxxxxxxxxxxx add. */ - return 19; + return 21; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx0xx1101001x + x1001011xx0xxxxxxxxxxxxxxxxxxxxx sub. */ - return 22; + return 24; } } else @@ -3244,17 +3618,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx0xx1101010x + x0101011xx0xxxxxxxxxxxxxxxxxxxxx adds. */ - return 20; + return 22; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx0xx1101011x + x1101011xx0xxxxxxxxxxxxxxxxxxxxx subs. */ - return 24; + return 26; } } } @@ -3266,9 +3640,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx00x11011xxx + xxx11011x00xxxxx0xxxxxxxxxxxxxxx madd. */ - return 721; + return 735; } else { @@ -3276,17 +3650,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx01011011xxx + xxx11011010xxxxx0xxxxxxxxxxxxxxx smulh. */ - return 729; + return 743; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx01111011xxx + xxx11011110xxxxx0xxxxxxxxxxxxxxx umulh. */ - return 734; + return 748; } } } @@ -3294,9 +3668,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx0xx11011xxx + xxx11011xx0xxxxx1xxxxxxxxxxxxxxx msub. */ - return 723; + return 737; } } } @@ -3312,7 +3686,7 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx1x01101000x + x00010110x1xxxxxxxxxxxxxxxxxxxxx add. */ return 6; } @@ -3320,7 +3694,7 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx1x01101001x + x10010110x1xxxxxxxxxxxxxxxxxxxxx sub. */ return 9; } @@ -3331,7 +3705,7 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx1x01101010x + x01010110x1xxxxxxxxxxxxxxxxxxxxx adds. */ return 7; } @@ -3339,7 +3713,7 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx1x01101011x + x11010110x1xxxxxxxxxxxxxxxxxxxxx subs. */ return 10; } @@ -3351,17 +3725,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx1x011011xxx + xxx110110x1xxxxx0xxxxxxxxxxxxxxx smaddl. */ - return 725; + return 739; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx1x011011xxx + xxx110110x1xxxxx1xxxxxxxxxxxxxxx smsubl. */ - return 727; + return 741; } } } @@ -3371,17 +3745,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx1x11101xxxx + xxxx10111x1xxxxx0xxxxxxxxxxxxxxx umaddl. */ - return 730; + return 744; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx1x11101xxxx + xxxx10111x1xxxxx1xxxxxxxxxxxxxxx umsubl. */ - return 732; + return 746; } } } @@ -3397,9 +3771,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 24) & 0x1) == 0) { - if (((word >> 13) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { if (((word >> 14) & 0x1) == 0) { @@ -3423,17 +3797,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx000000000xx0x100000 + 000001x0xx000000000xxxxxxxxxxxxx add. */ - return 1229; + return 1275; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx000000010xx0x100000 + 000001x0xx010000000xxxxxxxxxxxxx mul. */ - return 1655; + return 1744; } } else @@ -3442,17 +3816,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx000000100xx0x100000 + 000001x0xx001000000xxxxxxxxxxxxx smax. */ - return 1728; + return 1823; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx000000110xx0x100000 + 000001x0xx011000000xxxxxxxxxxxxx orr. */ - return 1666; + return 1755; } } } @@ -3462,17 +3836,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx0000010x0xx0x100000 + 000001x0xx0x0100000xxxxxxxxxxxxx sdiv. */ - return 1722; + return 1814; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx0000011x0xx0x100000 + 000001x0xx0x1100000xxxxxxxxxxxxx sabd. */ - return 1716; + return 1805; } } } @@ -3484,9 +3858,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx0000100x0xx0x100000 + 000001x0xx0x0010000xxxxxxxxxxxxx smulh. */ - return 1733; + return 1828; } else { @@ -3494,17 +3868,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx000010100xx0x100000 + 000001x0xx001010000xxxxxxxxxxxxx smin. */ - return 1731; + return 1826; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx000010110xx0x100000 + 000001x0xx011010000xxxxxxxxxxxxx and. */ - return 1237; + return 1283; } } } @@ -3512,9 +3886,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx000011xx0xx0x100000 + 000001x0xx0xx110000xxxxxxxxxxxxx sdivr. */ - return 1723; + return 1815; } } } @@ -3528,9 +3902,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx0001000x0xx0x100000 + 000001x0xx0x0001000xxxxxxxxxxxxx sub. */ - return 1849; + return 1944; } else { @@ -3538,17 +3912,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx000100100xx0x100000 + 000001x0xx001001000xxxxxxxxxxxxx umax. */ - return 1871; + return 1972; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx000100110xx0x100000 + 000001x0xx011001000xxxxxxxxxxxxx eor. */ - return 1324; + return 1370; } } } @@ -3558,17 +3932,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx0001010x0xx0x100000 + 000001x0xx0x0101000xxxxxxxxxxxxx udiv. */ - return 1868; + return 1966; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx0001011x0xx0x100000 + 000001x0xx0x1101000xxxxxxxxxxxxx uabd. */ - return 1862; + return 1957; } } } @@ -3582,17 +3956,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx000110000xx0x100000 + 000001x0xx000011000xxxxxxxxxxxxx subr. */ - return 1851; + return 1946; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx000110010xx0x100000 + 000001x0xx010011000xxxxxxxxxxxxx umulh. */ - return 1876; + return 1977; } } else @@ -3601,17 +3975,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx000110100xx0x100000 + 000001x0xx001011000xxxxxxxxxxxxx umin. */ - return 1874; + return 1975; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx000110110xx0x100000 + 000001x0xx011011000xxxxxxxxxxxxx bic. */ - return 1249; + return 1295; } } } @@ -3619,9 +3993,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx000111xx0xx0x100000 + 000001x0xx0xx111000xxxxxxxxxxxxx udivr. */ - return 1869; + return 1967; } } } @@ -3632,37 +4006,92 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx000xxxxx0x00x100001 + 100001x00x0xxxxx000xxxxxxxxxxxxx ld1sb. */ - return 1484; + return 1557; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx000xxxxx0x10x100001 + 100001x01x0xxxxx000xxxxxxxxxxxxx ld1sh. */ - return 1495; + return 1568; } } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx000xxxxx0x00x10001x - ld1sb. */ - return 1488; + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx0xxxxx000000xxxxxxxxxx + sdot. */ + return 1816; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx0xxxxx000010xxxxxxxxxx + sqdmlalbt. */ + return 2166; + } + } + else + { + if (((word >> 11) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx0xxxxx000001xxxxxxxxxx + udot. */ + return 1968; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx0xxxxx000011xxxxxxxxxx + sqdmlslbt. */ + return 2173; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx0xxxxx0001xxxxxxxxxxxx + cdot. */ + return 2055; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx000xxxxx0x10x10001x - ld1sh. */ - return 1499; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x00x0xxxxx000xxxxxxxxxxxxx + ld1sb. */ + return 1561; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x01x0xxxxx000xxxxxxxxxxxxx + ld1sh. */ + return 1572; + } } } } @@ -3680,26 +4109,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000000xxxxx1xx0x100000 + 000001x0xx1xxxxx000000xxxxxxxxxx add. */ - return 1227; + return 1273; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx001000xxxxx1xx0x100000 + 000001x0xx1xxxxx000100xxxxxxxxxx sqadd. */ - return 1735; + return 1830; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01x000xxxxx1xx0x100000 + 000001x0xx1xxxxx000x10xxxxxxxxxx sqsub. */ - return 1765; + return 1860; } } else @@ -3710,26 +4139,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx100000xxxxx1xx0x100000 + 000001x0xx1xxxxx000001xxxxxxxxxx sub. */ - return 1847; + return 1942; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx101000xxxxx1xx0x100000 + 000001x0xx1xxxxx000101xxxxxxxxxx uqadd. */ - return 1877; + return 1978; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx11x000xxxxx1xx0x100000 + 000001x0xx1xxxxx000x11xxxxxxxxxx uqsub. */ - return 1907; + return 2008; } } } @@ -3739,17 +4168,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx000xxxxx1x00x100001 + 100001x00x1xxxxx000xxxxxxxxxxxxx prfb. */ - return 1674; + return 1763; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx000xxxxx1x10x100001 + 100001x01x1xxxxx000xxxxxxxxxxxxx ld1sh. */ - return 1496; + return 1569; } } } @@ -3757,954 +4186,1026 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 23) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx000xxxxx1x00x10001x - prfb. */ - return 1675; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx000xxxxx1x10x10001x - ld1sh. */ - return 1500; - } - } - } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - if (((word >> 31) & 0x1) == 0) - { - if (((word >> 21) & 0x1) == 0) - { - if (((word >> 16) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) + if (((word >> 10) & 0x1) == 0) { - if (((word >> 19) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0010x0000xx0x100000 - asr. */ - return 1245; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0010x0010xx0x100000 - asr. */ - return 1243; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x00x1xxxxx000x00xxxxxxxxxx + sqrdmlah. */ + return 2191; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx0010x01x0xx0x100000 - asr. */ - return 1244; + 010001x00x1xxxxx000x10xxxxxxxxxx + mla. */ + return 2098; } } else { - if (((word >> 20) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx0010x1x00xx0x100000 - asrd. */ - return 1246; + 010001x00x1xxxxx000x01xxxxxxxxxx + sqrdmlsh. */ + return 2195; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx0010x1x10xx0x100000 - asrr. */ - return 1247; + 010001x00x1xxxxx000x11xxxxxxxxxx + mls. */ + return 2101; } } } else { - if (((word >> 17) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x00x1xxxxx000xxxxxxxxxxxxx + prfb. */ + return 1764; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 10) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - if (((word >> 19) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx001100000xx0x100000 - lsr. */ - return 1646; + 010001x0101xxxxx000000xxxxxxxxxx + sdot. */ + return 1817; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx001100010xx0x100000 - lsr. */ - return 1644; + 010001x0111xxxxx000000xxxxxxxxxx + sdot. */ + return 1818; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0011001x0xx0x100000 - lsr. */ - return 1645; + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0101xxxxx000100xxxxxxxxxx + sqrdmlah. */ + return 2192; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0111xxxxx000100xxxxxxxxxx + sqrdmlah. */ + return 2193; + } } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx001101xx0xx0x100000 - lsrr. */ - return 1647; + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0101xxxxx000010xxxxxxxxxx + mla. */ + return 2099; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0111xxxxx000010xxxxxxxxxx + mla. */ + return 2100; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x01x1xxxxx000110xxxxxxxxxx + usdot. */ + return 2395; + } } } else { - if (((word >> 18) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - if (((word >> 19) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx001110000xx0x100000 - lsl. */ - return 1640; + 010001x0101xxxxx000001xxxxxxxxxx + udot. */ + return 1969; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx001110010xx0x100000 - lsl. */ - return 1638; + 010001x0111xxxxx000001xxxxxxxxxx + udot. */ + return 1970; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0011101x0xx0x100000 - lsl. */ - return 1639; + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0101xxxxx000101xxxxxxxxxx + sqrdmlsh. */ + return 2196; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0111xxxxx000101xxxxxxxxxx + sqrdmlsh. */ + return 2197; + } } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx001111xx0xx0x100000 - lslr. */ - return 1641; + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0101xxxxx000011xxxxxxxxxx + mls. */ + return 2102; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0111xxxxx000011xxxxxxxxxx + mls. */ + return 2103; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x01x1xxxxx000111xxxxxxxxxx + sudot. */ + return 2396; + } } } } - } - else - { - if (((word >> 10) & 0x1) == 0) - { - if (((word >> 12) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x0001xxxxx1xx0x100000 - asr. */ - return 1241; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x1001xxxxx1xx0x100000 - asr. */ - return 1242; - } - } - else - { - if (((word >> 11) & 0x1) == 0) - { - if (((word >> 12) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx100001xxxxx1xx0x100000 - lsr. */ - return 1642; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101001xxxxx1xx0x100000 - lsr. */ - return 1643; - } - } - else - { - if (((word >> 12) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx110001xxxxx1xx0x100000 - lsl. */ - return 1636; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx111001xxxxx1xx0x100000 - lsl. */ - return 1637; - } - } - } - } - } - else - { - if (((word >> 22) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx001xxxxxx000x100001 - ld1sb. */ - return 1490; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx001xxxxxx010x100001 - ld1sh. */ - return 1503; - } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx001xxxxxx100x100001 - ld1rb. */ - return 1468; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx001xxxxxx110x100001 - ld1rsw. */ - return 1481; - } - } - } - } - else - { - if (((word >> 21) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx001xxxxx0x00x10001x - ld1sb. */ - return 1489; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx001xxxxx0x10x10001x - ld1sh. */ - return 1501; - } - } - else - { - if (((word >> 22) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx001xxxxx1000x10001x - ld1sb. */ - return 1494; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx001xxxxx1010x10001x - ld1sh. */ - return 1506; - } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx001xxxxx1100x10001x - prfb. */ - return 1676; - } - else + else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx001xxxxx1110x10001x + 110001x01x1xxxxx000xxxxxxxxxxxxx ld1sh. */ - return 1502; + return 1573; } } } } } - } - else - { - if (((word >> 15) & 0x1) == 0) + else { - if (((word >> 21) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - if (((word >> 31) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxx0xx0x100000 - mla. */ - return 1649; - } - else - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxx0x00x100001 - ld1b. */ - return 1434; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxx0x10x100001 - ld1h. */ - return 1454; - } - } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxx0x00x10001x - ld1b. */ - return 1439; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxx0x10x10001x - ld1h. */ - return 1459; - } - } - } - else + if (((word >> 31) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 21) & 0x1) == 0) { - if (((word >> 31) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - if (((word >> 11) & 0x1) == 0) + if (((word >> 17) & 0x1) == 0) { - if (((word >> 12) & 0x1) == 0) + if (((word >> 18) & 0x1) == 0) { - if (((word >> 10) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000010xxxxx1xx0x100000 - index. */ - return 1425; + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0001x0xx000000100xxxxxxxxxxxxx + asr. */ + return 1291; + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx010000100xxxxxxxxxxxxx + asr. */ + return 1289; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx010000100xxxxxxxxxxxxx + shadd. */ + return 2132; + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx100010xxxxx1xx0x100000 - index. */ - return 1426; + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0001x0xx001000100xxxxxxxxxxxxx + sqshl. */ + return 2210; + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx011000100xxxxxxxxxxxxx + asr. */ + return 1290; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx011000100xxxxxxxxxxxxx + sqadd. */ + return 2161; + } + } } } else { - if (((word >> 22) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxx01010xxxxx1000x100000 - addvl. */ - return 1231; + 0x0001x0xx000100100xxxxxxxxxxxxx + asrd. */ + return 1292; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxx01010xxxxx1010x100000 - rdvl. */ - return 1710; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx010100100xxxxxxxxxxxxx + asrr. */ + return 1293; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx010100100xxxxxxxxxxxxx + srhadd. */ + return 2223; + } } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxx01010xxxxx11x0x100000 - addpl. */ - return 1230; - } - } - } - else - { - if (((word >> 10) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01x010xxxxx1xx0x100000 - index. */ - return 1427; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx11x010xxxxx1xx0x100000 - index. */ - return 1424; + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx001100100xxxxxxxxxxxxx + srshr. */ + return 2227; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx001100100xxxxxxxxxxxxx + sqshlr. */ + return 2211; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0001x0xx011100100xxxxxxxxxxxxx + suqadd. */ + return 2247; + } + } } } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxx1x00x100001 - prfw. */ - return 1694; - } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxx1x10x100001 - ld1h. */ - return 1455; + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0001x0xx000010100xxxxxxxxxxxxx + srshl. */ + return 2225; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0001x0xx010010100xxxxxxxxxxxxx + shsub. */ + return 2135; + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0001x0xx001010100xxxxxxxxxxxxx + sqrshl. */ + return 2203; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0001x0xx011010100xxxxxxxxxxxxx + sqsub. */ + return 2217; + } + } + } + else + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx000110100xxxxxxxxxxxxx + sqshl. */ + return 2209; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx000110100xxxxxxxxxxxxx + srshlr. */ + return 2226; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0001x0xx010110100xxxxxxxxxxxxx + shsubr. */ + return 2136; + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0001x0xx001110100xxxxxxxxxxxxx + sqrshlr. */ + return 2204; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0001x0xx011110100xxxxxxxxxxxxx + sqsubr. */ + return 2218; + } + } + } } } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxx1x00x10001x - prfw. */ - return 1696; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxx1x10x10001x - ld1h. */ - return 1460; - } - } - } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - if (((word >> 31) & 0x1) == 0) - { - if (((word >> 21) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxx0xx0x100000 - mad. */ - return 1648; - } else { - if (((word >> 10) & 0x1) == 0) + if (((word >> 17) & 0x1) == 0) { - if (((word >> 11) & 0x1) == 0) + if (((word >> 18) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00x011xxxx010x0x100000 - sqincw. */ - return 1762; + 0x0001x0xx000001100xxxxxxxxxxxxx + lsr. */ + return 1735; } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00x011xxxx01100x100000 - sqinch. */ - return 1756; + 000001x0xx010001100xxxxxxxxxxxxx + lsr. */ + return 1733; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00x011xxxx01110x100000 - sqincd. */ - return 1753; + 010001x0xx010001100xxxxxxxxxxxxx + uhadd. */ + return 2260; } } } else { - if (((word >> 22) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00x011xxxx110x0x100000 - incw. */ - return 1422; + 0x0001x0xx001001100xxxxxxxxxxxxx + uqshl. */ + return 2290; } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00x011xxxx11100x100000 - inch. */ - return 1418; + 000001x0xx011001100xxxxxxxxxxxxx + lsr. */ + return 1734; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00x011xxxx11110x100000 - incd. */ - return 1416; + 010001x0xx011001100xxxxxxxxxxxxx + uqadd. */ + return 2284; } } } } else { - if (((word >> 22) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01x011xxxxx10x0x100000 - sqdecw. */ - return 1748; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x0101100xxxxxxxxxxxxx + lsrr. */ + return 1736; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx0x0101100xxxxxxxxxxxxx + urhadd. */ + return 2299; + } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01x011xxxxx1100x100000 - sqdech. */ - return 1742; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx001101100xxxxxxxxxxxxx + urshr. */ + return 2302; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx001101100xxxxxxxxxxxxx + uqshlr. */ + return 2291; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01x011xxxxx1110x100000 - sqdecd. */ - return 1739; + 0x0001x0xx011101100xxxxxxxxxxxxx + usqadd. */ + return 2307; } } } } else { - if (((word >> 11) & 0x1) == 0) + if (((word >> 18) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx10x011xxxx010x0x100000 - uqincw. */ - return 1904; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx000011100xxxxxxxxxxxxx + lsl. */ + return 1729; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx000011100xxxxxxxxxxxxx + urshl. */ + return 2300; + } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx10x011xxxx01100x100000 - uqinch. */ - return 1898; + 000001x0xx010011100xxxxxxxxxxxxx + lsl. */ + return 1727; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx10x011xxxx01110x100000 - uqincd. */ - return 1895; + 010001x0xx010011100xxxxxxxxxxxxx + uhsub. */ + return 2261; } } } else { - if (((word >> 22) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx10x011xxxx110x0x100000 - decw. */ - return 1316; + 0x0001x0xx001011100xxxxxxxxxxxxx + uqrshl. */ + return 2285; } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx10x011xxxx11100x100000 - dech. */ - return 1312; + 000001x0xx011011100xxxxxxxxxxxxx + lsl. */ + return 1728; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx10x011xxxx11110x100000 - decd. */ - return 1310; + 010001x0xx011011100xxxxxxxxxxxxx + uqsub. */ + return 2294; } } } } else { - if (((word >> 22) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx11x011xxxxx10x0x100000 - uqdecw. */ - return 1890; - } - else + if (((word >> 19) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx11x011xxxxx1100x100000 - uqdech. */ - return 1884; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx000111100xxxxxxxxxxxxx + uqshl. */ + return 2289; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx000111100xxxxxxxxxxxxx + urshlr. */ + return 2301; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx11x011xxxxx1110x100000 - uqdecd. */ - return 1881; - } - } - } - } - } - } - else - { - if (((word >> 22) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx010111100xxxxxxxxxxxxx + lslr. */ + return 1730; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx010111100xxxxxxxxxxxxx + uhsubr. */ + return 2262; + } + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx001111100xxxxxxxxxxxxx + sqshlu. */ + return 2212; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx001111100xxxxxxxxxxxxx + uqrshlr. */ + return 2286; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0001x0xx011111100xxxxxxxxxxxxx + uqsubr. */ + return 2295; + } + } + } + } + } + } + else + { + if (((word >> 10) & 0x1) == 0) { - if (((word >> 21) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxx0000x100001 - prfb. */ - return 1673; + 000001x0xx1xxxxx1000x0xxxxxxxxxx + asr. */ + return 1287; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxx0010x100001 - prfh. */ - return 1688; + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0x01xxxxx1000x0xxxxxxxxxx + smlalb. */ + return 2140; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0x11xxxxx1000x0xxxxxxxxxx + smlalb. */ + return 2141; + } } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxx1000x100001 - ld1b. */ - return 1441; + 000001x0xx1xxxxx1001x0xxxxxxxxxx + asr. */ + return 1288; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxx1010x100001 - ld1h. */ - return 1463; + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0x01xxxxx1001x0xxxxxxxxxx + umlalb. */ + return 2265; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0x11xxxxx1001x0xxxxxxxxxx + umlalb. */ + return 2266; + } } } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxxx100x100001 - ld1rb. */ - return 1470; + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx100001xxxxxxxxxx + lsr. */ + return 1731; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx100011xxxxxxxxxx + lsl. */ + return 1725; + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0x01xxxxx1000x1xxxxxxxxxx + smlalt. */ + return 2143; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0x11xxxxx1000x1xxxxxxxxxx + smlalt. */ + return 2144; + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxxx110x100001 - ld1rh. */ - return 1474; + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx100101xxxxxxxxxx + lsr. */ + return 1732; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx100111xxxxxxxxxx + lsl. */ + return 1726; + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0x01xxxxx1001x1xxxxxxxxxx + umlalt. */ + return 2268; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0x11xxxxx1001x1xxxxxxxxxx + umlalt. */ + return 2269; + } + } } } } } else { - if (((word >> 21) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxx0x00x10001x - ld1b. */ - return 1440; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxx0x10x10001x - ld1h. */ - return 1461; - } - } - else + if (((word >> 22) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) + if (((word >> 21) & 0x1) == 0) { if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxx1000x10001x - ld1b. */ - return 1446; + 1x0001x0000xxxxx100xxxxxxxxxxxxx + ldnt1sb. */ + return 2092; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxx1010x10001x - ld1h. */ - return 1467; + 1x0001x0100xxxxx100xxxxxxxxxxxxx + ldnt1sh. */ + return 2093; } } else { if (((word >> 23) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxx1100x10001x - prfw. */ - return 1697; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x0001xxxxx100xxxxxxxxxxxxx + ld1sb. */ + return 1563; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x0001xxxxx100xxxxxxxxxxxxx + ld1sb. */ + return 1567; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxx1110x10001x - ld1h. */ - return 1462; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x0101xxxxx100xxxxxxxxxxxxx + ld1sh. */ + return 1576; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x0101xxxxx100xxxxxxxxxxxxx + ld1sh. */ + return 1579; + } } } } - } - } - } - } - else - { - if (((word >> 21) & 0x1) == 0) - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 14) & 0x1) == 0) - { - if (((word >> 4) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx0xxxxxxxx000xxxxx0xx0x1001xx - cmphs. */ - return 1282; - } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx1xxxxxxxx000xxxxx0xx0x1001xx - cmphi. */ - return 1279; - } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - if (((word >> 31) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - if (((word >> 4) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx0xxxxxxxx010xxxxx0xx0x100100 - cmpge. */ - return 1273; + 100001x001xxxxxx100xxxxxxxxxxxxx + ld1rb. */ + return 1533; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx1xxxxxxxx010xxxxx0xx0x100100 - cmpgt. */ - return 1276; - } - } - else - { - if (((word >> 22) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) + if (((word >> 21) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxx0000x100101 - ld1b. */ - return 1435; + 110001x0010xxxxx100xxxxxxxxxxxxx + ld1sb. */ + return 1562; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxx0010x100101 - ld1sw. */ - return 1507; + 110001x0011xxxxx100xxxxxxxxxxxxx + prfb. */ + return 1765; } } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x011xxxxxx100xxxxxxxxxxxxx + ld1rsw. */ + return 1554; + } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 21) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxx0100x100101 - ld1b. */ - return 1437; + 110001x0110xxxxx100xxxxxxxxxxxxx + ld1sh. */ + return 1574; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxx0110x100101 - ld1h. */ - return 1457; + 110001x0111xxxxx100xxxxxxxxxxxxx + ld1sh. */ + return 1575; } } } } - else + } + } + } + else + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxx00x0x10011x - st1b. */ - return 1767; + 000001x0xx0xxxxx010xxxxxxxxxxxxx + mla. */ + return 1738; } else { @@ -4712,256 +5213,264 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxx0100x10011x - st1b. */ - return 1771; + 100001x00x0xxxxx010xxxxxxxxxxxxx + ld1b. */ + return 1499; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxx0110x10011x - st1h. */ - return 1792; + 100001x01x0xxxxx010xxxxxxxxxxxxx + ld1h. */ + return 1519; } } } - } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - if (((word >> 14) & 0x1) == 0) + else { - if (((word >> 4) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx0xxxxxxxx001xxxxx0xx0x10010x - cmpge. */ - return 1274; + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx0xxxxx010000xxxxxxxxxx + smlalb. */ + return 2142; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx0xxxxx010100xxxxxxxxxx + smlslb. */ + return 2148; + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx0xxxxx010010xxxxxxxxxx + umlalb. */ + return 2267; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx0xxxxx010110xxxxxxxxxx + umlslb. */ + return 2273; + } + } + } + else + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx0xxxxx010001xxxxxxxxxx + smlalt. */ + return 2145; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx0xxxxx010101xxxxxxxxxx + smlslt. */ + return 2151; + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx0xxxxx010011xxxxxxxxxx + umlalt. */ + return 2270; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx0xxxxx010111xxxxxxxxxx + umlslt. */ + return 2276; + } + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx1xxxxxxxx001xxxxx0xx0x10010x - cmpgt. */ - return 1277; - } - } - else - { - if (((word >> 31) & 0x1) == 0) - { - if (((word >> 4) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx0xxxxxxxx011xxxxx0xx0x100100 - cmphs. */ - return 1283; + 110001x00x0xxxxx010xxxxxxxxxxxxx + ld1b. */ + return 1504; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx1xxxxxxxx011xxxxx0xx0x100100 - cmphi. */ - return 1280; + 110001x01x0xxxxx010xxxxxxxxxxxxx + ld1h. */ + return 1524; } } - else + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxx0000x100101 - ldnt1b. */ - return 1626; + if (((word >> 10) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx010000xxxxxxxxxx + index. */ + return 1490; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx010001xxxxxxxxxx + index. */ + return 1491; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxx0010x100101 - ldnt1h. */ - return 1630; + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0001xxxxx01010xxxxxxxxxxx + addvl. */ + return 1277; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0101xxxxx01010xxxxxxxxxxx + rdvl. */ + return 1799; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0x11xxxxx01010xxxxxxxxxxx + addpl. */ + return 1276; + } } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 10) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxx0100x100101 - ld3b. */ - return 1534; + 000001x0xx1xxxxx010x10xxxxxxxxxx + index. */ + return 1492; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxx0110x100101 - ld3h. */ - return 1538; + 000001x0xx1xxxxx010x11xxxxxxxxxx + index. */ + return 1489; } } } - } - } - else - { - if (((word >> 22) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0x1xxxxx0000x10011x - st1b. */ - return 1768; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0x1xxxxx0010x10011x - st1h. */ - return 1787; - } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0x1xxxxx0100x10011x - st1b. */ - return 1772; - } else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0x1xxxxx0110x10011x - st1h. */ - return 1793; - } - } - } - } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - if (((word >> 31) & 0x1) == 0) - { - if (((word >> 4) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx0xxxxxxxx0xxxxxxx1xx0x100100 - cmphs. */ - return 1284; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx1xxxxxxxx0xxxxxxx1xx0x100100 - cmphi. */ - return 1281; - } - } - else - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 22) & 0x1) == 0) { if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx0x0xxxxx1000x100101 - ld1b. */ - return 1436; + 100001x00x1xxxxx010xxxxxxxxxxxxx + prfw. */ + return 1783; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx0x0xxxxx1010x100101 + 100001x01x1xxxxx010xxxxxxxxxxxxx ld1h. */ - return 1456; + return 1520; } } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x00x1xxxxx010xxxxxxxxxxxxx + prfw. */ + return 1785; + } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0x0xxxxx1100x100101 - ld1b. */ - return 1438; + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0101xxxxx010xxxxxxxxxxxxx + cdot. */ + return 2057; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0111xxxxx010xxxxxxxxxxxxx + cdot. */ + return 2056; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx0x0xxxxx1110x100101 + 110001x01x1xxxxx010xxxxxxxxxxxxx ld1h. */ - return 1458; - } - } - } - else - { - if (((word >> 22) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0x1xxxxx1000x100101 - ld2b. */ - return 1526; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0x1xxxxx1010x100101 - ld2h. */ - return 1530; - } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0x1xxxxx1100x100101 - ld4b. */ - return 1542; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0x1xxxxx1110x100101 - ld4h. */ - return 1546; + return 1525; } } } @@ -4969,629 +5478,610 @@ aarch64_opcode_lookup_1 (uint32_t word) } else { - if (((word >> 15) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0x0xxxxx1000x10011x - st1b. */ - return 1770; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0x0xxxxx1010x10011x - st1h. */ - return 1789; - } - } - else + if (((word >> 31) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 21) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx0x0xxxxx1100x10011x - st1b. */ - return 1773; + 000001x0xx0xxxxx110xxxxxxxxxxxxx + mad. */ + return 1737; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0x0xxxxx1110x10011x - st1h. */ - return 1794; - } - } - } - else - { - if (((word >> 22) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0x1xxxxx10x0x10011x - st1h. */ - return 1790; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0x1xxxxx11x0x10011x - st1h. */ - return 1795; - } - } - } - } - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 14) & 0x1) == 0) - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 21) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - if (((word >> 31) & 0x1) == 0) - { - if (((word >> 17) & 0x1) == 0) + if (((word >> 10) & 0x1) == 0) { - if (((word >> 19) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { if (((word >> 20) & 0x1) == 0) { - if (((word >> 16) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx10000x000xx0x100000 - saddv. */ - return 1717; + 000001x0x010xxxx110x00xxxxxxxxxx + sqincw. */ + return 1857; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx10010x000xx0x100000 - uaddv. */ - return 1863; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00110xxxx110x00xxxxxxxxxx + sqinch. */ + return 1851; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01110xxxx110x00xxxxxxxxxx + sqincd. */ + return 1848; + } } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx100x0x010xx0x100000 - movprfx. */ - return 1652; + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0x011xxxx110x00xxxxxxxxxx + incw. */ + return 1487; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00111xxxx110x00xxxxxxxxxx + inch. */ + return 1483; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01111xxxx110x00xxxxxxxxxx + incd. */ + return 1481; + } + } } } else { - if (((word >> 16) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0x01xxxxx110x10xxxxxxxxxx + sqdecw. */ + return 1843; + } + else + { + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx10000x100xx0x100000 - smaxv. */ - return 1729; + 000001x0011xxxxx110x10xxxxxxxxxx + sqdech. */ + return 1837; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx10000x110xx0x100000 - orv. */ - return 1669; + 000001x0111xxxxx110x10xxxxxxxxxx + sqdecd. */ + return 1834; } } - else + } + } + else + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx10010x100xx0x100000 - umaxv. */ - return 1872; + 000001x0x010xxxx110x01xxxxxxxxxx + uqincw. */ + return 2005; } else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00110xxxx110x01xxxxxxxxxx + uqinch. */ + return 1999; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01110xxxx110x01xxxxxxxxxx + uqincd. */ + return 1996; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx10010x110xx0x100000 - eorv. */ - return 1327; + 000001x0x011xxxx110x01xxxxxxxxxx + decw. */ + return 1362; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00111xxxx110x01xxxxxxxxxx + dech. */ + return 1358; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01111xxxx110x01xxxxxxxxxx + decd. */ + return 1356; + } } } } - } - else - { - if (((word >> 16) & 0x1) == 0) + else { - if (((word >> 20) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx10001xx00xx0x100000 - sminv. */ - return 1732; + 000001x0x01xxxxx110x11xxxxxxxxxx + uqdecw. */ + return 1991; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx10001xx10xx0x100000 - andv. */ - return 1240; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0011xxxxx110x11xxxxxxxxxx + uqdech. */ + return 1985; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0111xxxxx110x11xxxxxxxxxx + uqdecd. */ + return 1982; + } } } + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x0000xxxxx110xxxxxxxxxxxxx + prfb. */ + return 1762; + } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx10011xxx0xx0x100000 - uminv. */ - return 1875; + 100001x0100xxxxx110xxxxxxxxxxxxx + prfh. */ + return 1777; } } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx100xxxxx0x00x100001 - ldff1sb. */ - return 1576; - } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx100xxxxx0x10x100001 - ldff1sh. */ - return 1584; - } - } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx100xxxxx0x00x10001x - ldff1sb. */ - return 1580; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx100xxxxx0x10x10001x - ldff1sh. */ - return 1588; - } - } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - if (((word >> 31) & 0x1) == 0) - { - if (((word >> 22) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx100xxxxx1000x100000 - and. */ - return 1235; + 100001x0001xxxxx110xxxxxxxxxxxxx + ld1b. */ + return 1506; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx100xxxxx1100x100000 - orr. */ - return 1664; + 100001x0101xxxxx110xxxxxxxxxxxxx + ld1h. */ + return 1528; } } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x001xxxxxx110xxxxxxxxxxxxx + ld1rb. */ + return 1535; + } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx100xxxxx1x00x100001 - prfh. */ - return 1687; + 100001x011xxxxxx110xxxxxxxxxxxxx + ld1rh. */ + return 1539; } } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx100xxxxx1x00x10001x - prfh. */ - return 1689; - } } - else + } + else + { + if (((word >> 21) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - if (((word >> 31) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx100xxxxx1010x100000 - eor. */ - return 1322; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx100xxxxx1110x100000 - bic. */ - return 1248; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x0000xxxxx110xxxxxxxxxxxxx + ldnt1b. */ + return 2088; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx100xxxxx1x10x100001 - ldff1sh. */ - return 1585; + x10001x0100xxxxx110xxxxxxxxxxxxx + ldnt1h. */ + return 2091; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx100xxxxx1x10x10001x - ldff1sh. */ - return 1589; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x0010xxxxx110xxxxxxxxxxxxx + ld1b. */ + return 1505; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x0110xxxxx110xxxxxxxxxxxxx + ld1h. */ + return 1526; + } } } - } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - if (((word >> 31) & 0x1) == 0) + else { - if (((word >> 21) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - if (((word >> 16) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - if (((word >> 17) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x0001xxxxx110xxxxxxxxxxxxx + ld1b. */ + return 1511; + } + else + { + if (((word >> 31) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) + if (((word >> 10) & 0x1) == 0) { - if (((word >> 19) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx1010000x0xx0x100000 - sxtb. */ - return 1854; + 010001x0101xxxxx1100x0xxxxxxxxxx + smullb. */ + return 2153; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx1010001x0xx0x100000 - cls. */ - return 1268; + 010001x0101xxxxx1101x0xxxxxxxxxx + umullb. */ + return 2278; } } else { - if (((word >> 19) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx1010010x0xx0x100000 - sxtw. */ - return 1856; + 010001x0101xxxxx1100x1xxxxxxxxxx + smullt. */ + return 2156; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx1010011x0xx0x100000 - fabs. */ - return 1330; + 010001x0101xxxxx1101x1xxxxxxxxxx + umullt. */ + return 2281; } } } else { - if (((word >> 18) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x0101xxxxx110xxxxxxxxxxxxx + ld1h. */ + return 1532; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x0011xxxxx110xxxxxxxxxxxxx + prfw. */ + return 1786; + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 10) & 0x1) == 0) { - if (((word >> 19) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx1010100x0xx0x100000 - sxth. */ - return 1855; + 010001x0111xxxxx1100x0xxxxxxxxxx + smullb. */ + return 2154; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx1010101x0xx0x100000 - cnt. */ - return 1297; + 010001x0111xxxxx1101x0xxxxxxxxxx + umullb. */ + return 2279; } } else { - if (((word >> 19) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx1010110x0xx0x100000 - abs. */ - return 1226; + 010001x0111xxxxx1100x1xxxxxxxxxx + smullt. */ + return 2157; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx1010111x0xx0x100000 - not. */ - return 1661; + 010001x0111xxxxx1101x1xxxxxxxxxx + umullt. */ + return 2282; } } } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x0111xxxxx110xxxxxxxxxxxxx + ld1h. */ + return 1527; + } } - else + } + } + } + } + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 17) & 0x1) == 0) { - if (((word >> 17) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { - if (((word >> 19) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx1011000x0xx0x100000 - uxtb. */ - return 1911; + 000001x0xx000x00001xxxxxxxxxxxxx + saddv. */ + return 1806; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx1011001x0xx0x100000 - clz. */ - return 1269; + 000001x0xx000x01001xxxxxxxxxxxxx + uaddv. */ + return 1958; } } else { - if (((word >> 19) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx010x0x001xxxxxxxxxxxxx + movprfx. */ + return 1741; + } + } + else + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx1011010x0xx0x100000 - uxtw. */ - return 1913; + 000001x0xx001x00001xxxxxxxxxxxxx + smaxv. */ + return 1824; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx1011011x0xx0x100000 - fneg. */ - return 1388; + 000001x0xx011x00001xxxxxxxxxxxxx + orv. */ + return 1758; } } - } - else - { - if (((word >> 18) & 0x1) == 0) + else { - if (((word >> 19) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx1011100x0xx0x100000 - uxth. */ - return 1912; + 000001x0xx001x01001xxxxxxxxxxxxx + umaxv. */ + return 1973; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx1011101x0xx0x100000 - cnot. */ - return 1296; + 000001x0xx011x01001xxxxxxxxxxxxx + eorv. */ + return 1373; } } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx101111xx0xx0x100000 - neg. */ - return 1658; - } - } - } - } - else - { - if (((word >> 12) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 22) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxx0101xxxxx1000x100000 - adr. */ - return 1232; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxx0101xxxxx1100x100000 - adr. */ - return 1233; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxx0101xxxxx1x10x100000 - adr. */ - return 1234; } } else { - if (((word >> 10) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - if (((word >> 11) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx001101xxxxx1xx0x100000 - ftssel. */ - return 1414; + 000001x0xx00xx10001xxxxxxxxxxxxx + sminv. */ + return 1827; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx011101xxxxx1xx0x100000 - fexpa. */ - return 1367; + 000001x0xx01xx10001xxxxxxxxxxxxx + andv. */ + return 1286; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1x1101xxxxx1xx0x100000 - movprfx. */ - return 1651; + 000001x0xx0xxx11001xxxxxxxxxxxxx + uminv. */ + return 1976; } } } - } - else - { - if (((word >> 22) & 0x1) == 0) + else { if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxxxx000x100001 + 100001x00x0xxxxx001xxxxxxxxxxxxx ldff1sb. */ - return 1582; + return 1657; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxxxx010x100001 + 100001x01x0xxxxx001xxxxxxxxxxxxx ldff1sh. */ - return 1592; + return 1668; } } - else - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxxxx100x100001 - ld1rb. */ - return 1469; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxxxx110x100001 - ld1rh. */ - return 1473; - } - } - } - } - else - { - if (((word >> 21) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxxx0x00x10001x - ldff1sb. */ - return 1581; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxxx0x10x10001x - ldff1sh. */ - return 1590; - } } else { - if (((word >> 22) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxxx1000x10001x - ldff1sb. */ - return 1583; + 010001x0xx0xxxxx0010xxxxxxxxxxxx + cmla. */ + return 2058; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxxx1010x10001x - ldff1sh. */ - return 1593; + 010001x0xx0xxxxx0011xxxxxxxxxxxx + sqrdcmlah. */ + return 2190; } } else @@ -5600,38 +6090,142 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxxx1100x10001x - prfh. */ - return 1690; + 110001x00x0xxxxx001xxxxxxxxxxxxx + ldff1sb. */ + return 1664; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxxx1110x10001x + 110001x01x0xxxxx001xxxxxxxxxxxxx ldff1sh. */ - return 1591; + return 1674; } } } } - } - } - else - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 21) & 0x1) == 0) + else { if (((word >> 30) & 0x1) == 0) { if (((word >> 31) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx0xx0x100000 - mls. */ - return 1650; + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0001xxxxx001x00xxxxxxxxxx + and. */ + return 1281; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0101xxxxx001x00xxxxxxxxxx + eor. */ + return 1368; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0011xxxxx001x00xxxxxxxxxx + orr. */ + return 1753; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0111xxxxx001x00xxxxxxxxxx + bic. */ + return 1294; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0x01xxxxx001x10xxxxxxxxxx + eor3. */ + return 2061; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0x11xxxxx001x10xxxxxxxxxx + bcax. */ + return 2050; + } + } + } + else + { + if (((word >> 11) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx001x01xxxxxxxxxx + xar. */ + return 2323; + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0001xxxxx001x11xxxxxxxxxx + bsl. */ + return 2051; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0101xxxxx001x11xxxxxxxxxx + bsl2n. */ + return 2053; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0011xxxxx001x11xxxxxxxxxx + bsl1n. */ + return 2052; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0111xxxxx001x11xxxxxxxxxx + nbsl. */ + return 2108; + } + } + } + } } else { @@ -5639,17 +6233,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx0x00x100001 - ldff1b. */ - return 1550; + 100001x00x1xxxxx001xxxxxxxxxxxxx + prfh. */ + return 1776; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx0x10x100001 - ldff1h. */ - return 1565; + 100001x01x1xxxxx001xxxxxxxxxxxxx + ldff1sh. */ + return 1669; } } } @@ -5659,58 +6253,105 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx0x00x10001x - ldff1b. */ - return 1555; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx0x10x10001x - ldff1h. */ - return 1570; - } - } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx1x00x10000x - prfd. */ - return 1680; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx1x00x10001x - prfd. */ - return 1682; - } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx1x10x10000x - ldff1h. */ - return 1566; + x10001x00x1xxxxx001xxxxxxxxxxxxx + prfh. */ + return 1778; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx1x10x10001x - ldff1h. */ - return 1571; + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0101xxxxx0010x0xxxxxxxxxx + sqdmlalb. */ + return 2163; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0111xxxxx0010x0xxxxxxxxxx + sqdmlalb. */ + return 2164; + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0101xxxxx0011x0xxxxxxxxxx + sqdmlslb. */ + return 2170; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0111xxxxx0011x0xxxxxxxxxx + sqdmlslb. */ + return 2171; + } + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0101xxxxx0010x1xxxxxxxxxx + sqdmlalt. */ + return 2167; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0111xxxxx0010x1xxxxxxxxxx + sqdmlalt. */ + return 2168; + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0101xxxxx0011x1xxxxxxxxxx + sqdmlslt. */ + return 2174; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0111xxxxx0011x1xxxxxxxxxx + sqdmlslt. */ + return 2175; + } + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x01x1xxxxx001xxxxxxxxxxxxx + ldff1sh. */ + return 1675; + } } } } @@ -5723,515 +6364,3105 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 21) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx0xx0x100000 - msb. */ - return 1653; - } - else - { - if (((word >> 10) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - if (((word >> 11) & 0x1) == 0) + if (((word >> 17) & 0x1) == 0) { - if (((word >> 12) & 0x1) == 0) + if (((word >> 18) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000111xxxx01000x100000 - cntb. */ - return 1298; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000111xxxx01010x100000 - cntw. */ - return 1302; - } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000111xxxx01100x100000 - cnth. */ - return 1300; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000111xxxx01110x100000 - cntd. */ - return 1299; - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x0000101xxxxxxxxxxxxx + sxtb. */ + return 1949; } else { - if (((word >> 22) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000111xxxx11000x100000 - incb. */ - return 1415; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000111xxxx11010x100000 - incw. */ - return 1423; - } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000111xxxx11100x100000 - inch. */ - return 1419; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000111xxxx11110x100000 - incd. */ - return 1417; - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x1000101xxxxxxxxxxxxx + cls. */ + return 1314; } } else { - if (((word >> 20) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx001111xxxx01000x100000 - sqincb. */ - return 1752; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx001111xxxx01010x100000 - sqincw. */ - return 1764; - } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx001111xxxx01100x100000 - sqinch. */ - return 1758; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx001111xxxx01110x100000 - sqincd. */ - return 1755; - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x0100101xxxxxxxxxxxxx + sxtw. */ + return 1951; } else { - if (((word >> 22) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx001111xxxx11000x100000 - sqincb. */ - return 1751; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx001111xxxx11010x100000 - sqincw. */ - return 1763; - } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx001111xxxx11100x100000 - sqinch. */ - return 1757; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx001111xxxx11110x100000 - sqincd. */ - return 1754; - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x1100101xxxxxxxxxxxxx + fabs. */ + return 1376; } } } else { - if (((word >> 20) & 0x1) == 0) + if (((word >> 18) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01x111xxxx01000x100000 - sqdecb. */ - return 1738; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01x111xxxx01010x100000 - sqdecw. */ - return 1750; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x0010101xxxxxxxxxxxxx + sxth. */ + return 1950; } else { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01x111xxxx01100x100000 - sqdech. */ - return 1744; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01x111xxxx01110x100000 - sqdecd. */ - return 1741; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x1010101xxxxxxxxxxxxx + cnt. */ + return 1343; } } else { - if (((word >> 22) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01x111xxxx11000x100000 - sqdecb. */ - return 1737; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01x111xxxx11010x100000 - sqdecw. */ - return 1749; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x0110101xxxxxxxxxxxxx + abs. */ + return 1272; } else { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01x111xxxx11100x100000 - sqdech. */ - return 1743; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01x111xxxx11110x100000 - sqdecd. */ - return 1740; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x1110101xxxxxxxxxxxxx + not. */ + return 1750; } } } } else { - if (((word >> 11) & 0x1) == 0) + if (((word >> 17) & 0x1) == 0) { - if (((word >> 12) & 0x1) == 0) + if (((word >> 18) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx100111xxxxx1000x100000 - decb. */ - return 1309; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx100111xxxxx1010x100000 - decw. */ - return 1317; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x0001101xxxxxxxxxxxxx + uxtb. */ + return 2012; } else { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx100111xxxxx1100x100000 - dech. */ - return 1313; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx100111xxxxx1110x100000 - decd. */ - return 1311; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x1001101xxxxxxxxxxxxx + clz. */ + return 1315; } } else { - if (((word >> 20) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101111xxxx01000x100000 - uqincb. */ - return 1893; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101111xxxx01010x100000 - uqincw. */ - return 1905; - } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101111xxxx01100x100000 - uqinch. */ - return 1899; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101111xxxx01110x100000 - uqincd. */ - return 1896; - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x0101101xxxxxxxxxxxxx + uxtw. */ + return 2014; } else { - if (((word >> 22) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101111xxxx11000x100000 - uqincb. */ - return 1894; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101111xxxx11010x100000 - uqincw. */ - return 1906; - } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101111xxxx11100x100000 - uqinch. */ - return 1900; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101111xxxx11110x100000 - uqincd. */ - return 1897; - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x1101101xxxxxxxxxxxxx + fneg. */ + return 1453; } } } else { - if (((word >> 20) & 0x1) == 0) + if (((word >> 18) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx11x111xxxx01000x100000 - uqdecb. */ - return 1879; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx11x111xxxx01010x100000 - uqdecw. */ - return 1891; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x0011101xxxxxxxxxxxxx + uxth. */ + return 2013; } else { - if (((word >> 23) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x1011101xxxxxxxxxxxxx + cnot. */ + return 1342; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0xx111101xxxxxxxxxxxxx + neg. */ + return 1747; + } + } + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0001xxxxx1010xxxxxxxxxxxx + adr. */ + return 1278; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0011xxxxx1010xxxxxxxxxxxx + adr. */ + return 1279; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01x1xxxxx1010xxxxxxxxxxxx + adr. */ + return 1280; + } + } + else + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx101100xxxxxxxxxx + ftssel. */ + return 1479; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx101110xxxxxxxxxx + fexpa. */ + return 1423; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx1011x1xxxxxxxxxx + movprfx. */ + return 1740; + } + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x0000xxxxx101xxxxxxxxxxxxx + ldnt1b. */ + return 2087; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x0100xxxxx101xxxxxxxxxxxxx + ldnt1h. */ + return 2090; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x0001xxxxx101xxxxxxxxxxxxx + ldff1sb. */ + return 1666; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x0101xxxxx101xxxxxxxxxxxxx + ldff1sh. */ + return 1678; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x001xxxxxx101xxxxxxxxxxxxx + ld1rb. */ + return 1534; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x011xxxxxx101xxxxxxxxxxxxx + ld1rh. */ + return 1538; + } + } + } + } + else + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 17) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx0x0000101xxxxxxxxxxxxx + urecpe. */ + return 2298; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx0x1000101xxxxxxxxxxxxx + sqabs. */ + return 2160; + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx00x100101xxxxxxxxxxxxx + sadalp. */ + return 2124; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx01x100101xxxxxxxxxxxxx + smaxp. */ + return 2138; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx0xxx10101xxxxxxxxxxxxx + sminp. */ + return 2139; + } + } + else + { + if (((word >> 17) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx11x111xxxx01100x100000 - uqdech. */ - return 1885; + 010001x0xx000001101xxxxxxxxxxxxx + ursqrte. */ + return 2303; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx11x111xxxx01110x100000 - uqdecd. */ - return 1882; + 010001x0xx010001101xxxxxxxxxxxxx + addp. */ + return 2049; } } - } - else - { - if (((word >> 22) & 0x1) == 0) + else { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx11x111xxxx11000x100000 - uqdecb. */ - return 1880; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx11x111xxxx11010x100000 - uqdecw. */ - return 1892; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx0x1001101xxxxxxxxxxxxx + sqneg. */ + return 2187; + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx00x101101xxxxxxxxxxxxx + uadalp. */ + return 2255; } else { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx11x111xxxx11100x100000 - uqdech. */ - return 1886; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx11x111xxxx11110x100000 - uqdecd. */ - return 1883; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx01x101101xxxxxxxxxxxxx + umaxp. */ + return 2263; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx0xxx11101xxxxxxxxxxxxx + uminp. */ + return 2264; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x00x0xxxxx101xxxxxxxxxxxxx + ldff1sb. */ + return 1665; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x01x0xxxxx101xxxxxxxxxxxxx + ldff1sh. */ + return 1676; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x0001xxxxx101xxxxxxxxxxxxx + ldff1sb. */ + return 1667; + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0101xxxxx1010x0xxxxxxxxxx + smlslb. */ + return 2146; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0101xxxxx1011x0xxxxxxxxxx + umlslb. */ + return 2271; + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0101xxxxx1010x1xxxxxxxxxx + smlslt. */ + return 2149; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0101xxxxx1011x1xxxxxxxxxx + umlslt. */ + return 2274; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x0101xxxxx101xxxxxxxxxxxxx + ldff1sh. */ + return 1679; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x0011xxxxx101xxxxxxxxxxxxx + prfh. */ + return 1779; + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0111xxxxx1010x0xxxxxxxxxx + smlslb. */ + return 2147; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0111xxxxx1011x0xxxxxxxxxx + umlslb. */ + return 2272; + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0111xxxxx1010x1xxxxxxxxxx + smlslt. */ + return 2150; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0111xxxxx1011x1xxxxxxxxxx + umlslt. */ + return 2275; } } } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x0111xxxxx101xxxxxxxxxxxxx + ldff1sh. */ + return 1677; + } + } + } + } + } + } + } + else + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0xxxxx011xxxxxxxxxxxxx + mls. */ + return 1739; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x00x0xxxxx011xxxxxxxxxxxxx + ldff1b. */ + return 1623; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x01x0xxxxx011xxxxxxxxxxxxx + ldff1h. */ + return 1643; + } + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx0xxxxx011000xxxxxxxxxx + sqdmlalb. */ + return 2165; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx0xxxxx011100xxxxxxxxxx + sqrdmlah. */ + return 2194; + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx0xxxxx011010xxxxxxxxxx + sqdmlslb. */ + return 2172; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx0xxxxx011110xxxxxxxxxx + usdot. */ + return 2394; + } + } + } + else + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx0xxxxx011001xxxxxxxxxx + sqdmlalt. */ + return 2169; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx0xxxxx011101xxxxxxxxxx + sqrdmlsh. */ + return 2198; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx0xxxxx011x11xxxxxxxxxx + sqdmlslt. */ + return 2176; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x00x0xxxxx011xxxxxxxxxxxxx + ldff1b. */ + return 1632; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x01x0xxxxx011xxxxxxxxxxxxx + ldff1h. */ + return 1651; + } + } + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx011000xxxxxxxxxx + mul. */ + return 2107; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx011100xxxxxxxxxx + sqdmulh. */ + return 2180; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx011x10xxxxxxxxxx + smulh. */ + return 2152; + } + } + else + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx011001xxxxxxxxxx + pmul. */ + return 2110; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx011101xxxxxxxxxx + sqrdmulh. */ + return 2202; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx011x11xxxxxxxxxx + umulh. */ + return 2277; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x00x1xxxxx011xxxxxxxxxxxxx + prfd. */ + return 1769; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x01x1xxxxx011xxxxxxxxxxxxx + ldff1h. */ + return 1644; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x00x1xxxxx011xxxxxxxxxxxxx + prfd. */ + return 1771; + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0101xxxxx0110xxxxxxxxxxxx + cmla. */ + return 2059; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0111xxxxx0110xxxxxxxxxxxx + cmla. */ + return 2060; + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0101xxxxx0111xxxxxxxxxxxx + sqrdcmlah. */ + return 2188; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0111xxxxx0111xxxxxxxxxxxx + sqrdcmlah. */ + return 2189; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x01x1xxxxx011xxxxxxxxxxxxx + ldff1h. */ + return 1652; + } + } + } + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0xxxxx111xxxxxxxxxxxxx + msb. */ + return 1742; + } + else + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00010xxxx111000xxxxxxxxxx + cntb. */ + return 1344; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01010xxxx111000xxxxxxxxxx + cntw. */ + return 1348; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00110xxxx111000xxxxxxxxxx + cnth. */ + return 1346; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01110xxxx111000xxxxxxxxxx + cntd. */ + return 1345; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00011xxxx111000xxxxxxxxxx + incb. */ + return 1480; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01011xxxx111000xxxxxxxxxx + incw. */ + return 1488; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00111xxxx111000xxxxxxxxxx + inch. */ + return 1484; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01111xxxx111000xxxxxxxxxx + incd. */ + return 1482; + } + } + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00010xxxx111100xxxxxxxxxx + sqincb. */ + return 1847; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01010xxxx111100xxxxxxxxxx + sqincw. */ + return 1859; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00110xxxx111100xxxxxxxxxx + sqinch. */ + return 1853; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01110xxxx111100xxxxxxxxxx + sqincd. */ + return 1850; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00011xxxx111100xxxxxxxxxx + sqincb. */ + return 1846; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01011xxxx111100xxxxxxxxxx + sqincw. */ + return 1858; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00111xxxx111100xxxxxxxxxx + sqinch. */ + return 1852; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01111xxxx111100xxxxxxxxxx + sqincd. */ + return 1849; + } + } + } + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00010xxxx111x10xxxxxxxxxx + sqdecb. */ + return 1833; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01010xxxx111x10xxxxxxxxxx + sqdecw. */ + return 1845; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00110xxxx111x10xxxxxxxxxx + sqdech. */ + return 1839; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01110xxxx111x10xxxxxxxxxx + sqdecd. */ + return 1836; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00011xxxx111x10xxxxxxxxxx + sqdecb. */ + return 1832; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01011xxxx111x10xxxxxxxxxx + sqdecw. */ + return 1844; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00111xxxx111x10xxxxxxxxxx + sqdech. */ + return 1838; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01111xxxx111x10xxxxxxxxxx + sqdecd. */ + return 1835; + } + } + } + } + } + else + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0001xxxxx111001xxxxxxxxxx + decb. */ + return 1355; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0101xxxxx111001xxxxxxxxxx + decw. */ + return 1363; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0011xxxxx111001xxxxxxxxxx + dech. */ + return 1359; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0111xxxxx111001xxxxxxxxxx + decd. */ + return 1357; + } + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00010xxxx111101xxxxxxxxxx + uqincb. */ + return 1994; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01010xxxx111101xxxxxxxxxx + uqincw. */ + return 2006; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00110xxxx111101xxxxxxxxxx + uqinch. */ + return 2000; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01110xxxx111101xxxxxxxxxx + uqincd. */ + return 1997; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00011xxxx111101xxxxxxxxxx + uqincb. */ + return 1995; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01011xxxx111101xxxxxxxxxx + uqincw. */ + return 2007; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00111xxxx111101xxxxxxxxxx + uqinch. */ + return 2001; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01111xxxx111101xxxxxxxxxx + uqincd. */ + return 1998; + } + } + } + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00010xxxx111x11xxxxxxxxxx + uqdecb. */ + return 1980; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01010xxxx111x11xxxxxxxxxx + uqdecw. */ + return 1992; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00110xxxx111x11xxxxxxxxxx + uqdech. */ + return 1986; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01110xxxx111x11xxxxxxxxxx + uqdecd. */ + return 1983; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00011xxxx111x11xxxxxxxxxx + uqdecb. */ + return 1981; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01011xxxx111x11xxxxxxxxxx + uqdecw. */ + return 1993; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00111xxxx111x11xxxxxxxxxx + uqdech. */ + return 1987; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01111xxxx111x11xxxxxxxxxx + uqdecd. */ + return 1984; + } + } + } + } + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x0000xxxxx111xxxxxxxxxxxxx + prfb. */ + return 1766; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x0100xxxxx111xxxxxxxxxxxxx + prfh. */ + return 1780; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x0001xxxxx111xxxxxxxxxxxxx + ldff1b. */ + return 1634; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x0101xxxxx111xxxxxxxxxxxxx + ldff1h. */ + return 1655; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x001xxxxxx111xxxxxxxxxxxxx + ld1rb. */ + return 1536; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x011xxxxxx111xxxxxxxxxxxxx + ld1rh. */ + return 1540; + } + } + } + } + else + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x0000xxxxx111xxxxxxxxxxxxx + prfb. */ + return 1768; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x0100xxxxx111xxxxxxxxxxxxx + prfh. */ + return 1782; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x0010xxxxx111xxxxxxxxxxxxx + ldff1b. */ + return 1633; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x0110xxxxx111xxxxxxxxxxxxx + ldff1h. */ + return 1653; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x00x1xxxxx111x00xxxxxxxxxx + sqdmulh. */ + return 2177; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x00x1xxxxx111x10xxxxxxxxxx + mul. */ + return 2104; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x00x1xxxxx111xx1xxxxxxxxxx + sqrdmulh. */ + return 2199; + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x0001xxxxx111xxxxxxxxxxxxx + ldff1b. */ + return 1635; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x0011xxxxx111xxxxxxxxxxxxx + prfd. */ + return 1772; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0101xxxxx1110x0xxxxxxxxxx + sqdmullb. */ + return 2181; + } + else + { + if (((word >> 11) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0101xxxxx111100xxxxxxxxxx + sqdmulh. */ + return 2178; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0101xxxxx111110xxxxxxxxxx + mul. */ + return 2105; + } + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0101xxxxx1110x1xxxxxxxxxx + sqdmullt. */ + return 2184; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0101xxxxx1111x1xxxxxxxxxx + sqrdmulh. */ + return 2200; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x0101xxxxx111xxxxxxxxxxxxx + ldff1h. */ + return 1656; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0111xxxxx1110x0xxxxxxxxxx + sqdmullb. */ + return 2182; + } + else + { + if (((word >> 11) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0111xxxxx111100xxxxxxxxxx + sqdmulh. */ + return 2179; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0111xxxxx111110xxxxxxxxxx + mul. */ + return 2106; + } + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0111xxxxx1110x1xxxxxxxxxx + sqdmullt. */ + return 2185; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0111xxxxx1111x1xxxxxxxxxx + sqrdmulh. */ + return 2201; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x0111xxxxx111xxxxxxxxxxxxx + ldff1h. */ + return 1654; + } + } + } + } + } + } + } + } + } + else + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx0xxxxx000xxxxxxxx0xxxx + cmphs. */ + return 1328; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx0xxxxx000xxxxxxxx1xxxx + cmphi. */ + return 1325; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x00x0xxxxx000xxxxxxxxxxxxx + ld1rqb. */ + return 1542; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x01x0xxxxx000xxxxxxxxxxxxx + ld1rqh. */ + return 1546; + } + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx0xxxxx010xxxxxxxx0xxxx + cmpge. */ + return 1319; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx0xxxxx010xxxxxxxx1xxxx + cmpgt. */ + return 1322; + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0000xxxxx010xxxxxxxxxxxxx + ld1b. */ + return 1500; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0100xxxxx010xxxxxxxxxxxxx + ld1sw. */ + return 1580; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0010xxxxx010xxxxxxxxxxxxx + ld1b. */ + return 1502; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0110xxxxx010xxxxxxxxxxxxx + ld1h. */ + return 1522; + } + } + } + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx0xxxxx001xxxxxxxx0xxxx + cmpeq. */ + return 1316; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx0xxxxx001xxxxxxxx1xxxx + cmpne. */ + return 1339; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x00x0xxxxx001xxxxxxxxxxxxx + ld1rqb. */ + return 1541; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x01x0xxxxx001xxxxxxxxxxxxx + ld1rqh. */ + return 1545; + } + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx0xxxxx011xxxxxxxx0xxxx + cmplt. */ + return 1337; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx0xxxxx011xxxxxxxx1xxxx + cmple. */ + return 1331; + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0000xxxxx011xxxxxxxxxxxxx + ldff1b. */ + return 1624; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0100xxxxx011xxxxxxxxxxxxx + ldff1sw. */ + return 1680; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0010xxxxx011xxxxxxxxxxxxx + ldff1b. */ + return 1628; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0110xxxxx011xxxxxxxxxxxxx + ldff1h. */ + return 1647; + } + } + } + } + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0xx0xxxxx0xxxxxxxxxxxxxxx + fcmla. */ + return 1385; + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0x00xxxxx0x0xxxxxxxxxxxxx + st1b. */ + return 1862; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0010xxxxx0x0xxxxxxxxxxxxx + st1b. */ + return 1866; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0110xxxxx0x0xxxxxxxxxxxxx + st1h. */ + return 1887; + } + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0000xxxxx001xxxxxxxxxxxxx + stnt1b. */ + return 2239; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0100xxxxx001xxxxxxxxxxxxx + stnt1h. */ + return 2242; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0010xxxxx001xxxxxxxxxxxxx + stnt1b. */ + return 2238; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0110xxxxx001xxxxxxxxxxxxx + stnt1h. */ + return 2241; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0000xxxxx011xxxxxxxxxxxxx + stnt1b. */ + return 1932; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0100xxxxx011xxxxxxxxxxxxx + stnt1h. */ + return 1936; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0010xxxxx011xxxxxxxxxxxxx + st3b. */ + return 1916; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0110xxxxx011xxxxxxxxxxxxx + st3h. */ + return 1920; + } + } + } + } + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x0xx0xxxxx100xxxxxxxx0xxxx + cmpge. */ + return 1320; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x0xx0xxxxx100xxxxxxxx1xxxx + cmpgt. */ + return 1323; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx0xxxxx110xxxxxxxx0xxxx + cmphs. */ + return 1329; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx0xxxxx110xxxxxxxx1xxxx + cmphi. */ + return 1326; + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0000xxxxx110xxxxxxxxxxxxx + ldnt1b. */ + return 1715; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0100xxxxx110xxxxxxxxxxxxx + ldnt1h. */ + return 1719; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0010xxxxx110xxxxxxxxxxxxx + ld3b. */ + return 1607; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0110xxxxx110xxxxxxxxxxxxx + ld3h. */ + return 1611; + } + } + } + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 17) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0xx00x00x1x0xxxxxxxxxxxxx + fcadd. */ + return 1384; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0xx01x00x1x0xxxxxxxxxxxxx + faddp. */ + return 2065; + } + } + else + { + if (((word >> 16) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0xx0xx1001x0xxxxxxxxxxxxx + fmaxnmp. */ + return 2073; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0xx0xx1011x0xxxxxxxxxxxxx + fminnmp. */ + return 2075; + } + } + } + else + { + if (((word >> 16) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0xx0xxx101x0xxxxxxxxxxxxx + fmaxp. */ + return 2074; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0xx0xxx111x0xxxxxxxxxxxxx + fminp. */ + return 2076; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0000xxxxx1x0xxxxxxxxxxxxx + st1b. */ + return 1863; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0100xxxxx1x0xxxxxxxxxxxxx + st1h. */ + return 1882; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0010xxxxx1x0xxxxxxxxxxxxx + st1b. */ + return 1867; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0110xxxxx1x0xxxxxxxxxxxxx + st1h. */ + return 1888; + } + } + } + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx0xxxxx101xxxxxxxx0xxxx + cmpeq. */ + return 1317; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx0xxxxx101xxxxxxxx1xxxx + cmpne. */ + return 1340; + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x00000xxxx101xxxxxxxxxxxxx + ld1b. */ + return 1507; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x01000xxxx101xxxxxxxxxxxxx + ld1sw. */ + return 1585; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x00100xxxx101xxxxxxxxxxxxx + ld1b. */ + return 1509; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x01100xxxx101xxxxxxxxxxxxx + ld1h. */ + return 1530; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x00001xxxx101xxxxxxxxxxxxx + ldnf1b. */ + return 1699; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x01001xxxx101xxxxxxxxxxxxx + ldnf1sw. */ + return 1712; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x00101xxxx101xxxxxxxxxxxxx + ldnf1b. */ + return 1701; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x01101xxxx101xxxxxxxxxxxxx + ldnf1h. */ + return 1705; + } + } + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0000xxxxx101xxxxxxxxxxxxx + fcvtxnt. */ + return 2071; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0000xxxxx101xxxxxxxxxxxxx + st1b. */ + return 1864; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 17) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0100xxx00101xxxxxxxxxxxxx + fcvtnt. */ + return 2068; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0100xxx10101xxxxxxxxxxxxx + bfcvtnt. */ + return 2423; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0100xxxx1101xxxxxxxxxxxxx + fcvtlt. */ + return 2066; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0100xxxxx101xxxxxxxxxxxxx + st1h. */ + return 1883; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0010xxxxx101xxxxxxxxxxxxx + st1b. */ + return 1871; + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0110xxxx0101xxxxxxxxxxxxx + fcvtnt. */ + return 2069; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0110xxxx1101xxxxxxxxxxxxx + fcvtlt. */ + return 2067; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0110xxxxx101xxxxxxxxxxxxx + st1h. */ + return 1892; + } + } + } + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx0xxxxx111xxxxxxxx0xxxx + cmplo. */ + return 1333; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx0xxxxx111xxxxxxxx1xxxx + cmpls. */ + return 1335; + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0000xxxxx111xxxxxxxxxxxxx + ldnt1b. */ + return 1716; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0100xxxxx111xxxxxxxxxxxxx + ldnt1h. */ + return 1720; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0010xxxxx111xxxxxxxxxxxxx + ld3b. */ + return 1608; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0110xxxxx111xxxxxxxxxxxxx + ld3h. */ + return 1612; + } + } + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0x000xxxx111xxxxxxxxxxxxx + st1b. */ + return 1869; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x00100xxxx111xxxxxxxxxxxxx + st1b. */ + return 1872; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x01100xxxx111xxxxxxxxxxxxx + st1h. */ + return 1893; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x00001xxxx111xxxxxxxxxxxxx + stnt1b. */ + return 1933; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x01001xxxx111xxxxxxxxxxxxx + stnt1h. */ + return 1937; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x00101xxxx111xxxxxxxxxxxxx + st3b. */ + return 1917; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x01101xxxx111xxxxxxxxxxxxx + st3h. */ + return 1921; + } + } + } + } + } + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx1xxxxxxx0xxxxxxxx0xxxx + cmphs. */ + return 1330; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx1xxxxxxx0xxxxxxxx1xxxx + cmphi. */ + return 1327; + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x00x1xxxxxx00xxxxxxxxxxxxx + ld1rob. */ + return 2399; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x01x1xxxxxx00xxxxxxxxxxxxx + ld1roh. */ + return 2400; + } + } + else + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0001xxxxx010xxxxxxxxxxxxx + ld1b. */ + return 1501; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0101xxxxx010xxxxxxxxxxxxx + ld1h. */ + return 1521; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0011xxxxx010xxxxxxxxxxxxx + ld1b. */ + return 1503; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0111xxxxx010xxxxxxxxxxxxx + ld1h. */ + return 1523; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0001xxxxx110xxxxxxxxxxxxx + ld2b. */ + return 1599; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0101xxxxx110xxxxxxxxxxxxx + ld2h. */ + return 1603; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0011xxxxx110xxxxxxxxxxxxx + ld4b. */ + return 1615; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0111xxxxx110xxxxxxxxxxxxx + ld4h. */ + return 1619; + } + } + } + } + } + } + else + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x00x1xxxxx0000x0xxxxxxxxxx + fmla. */ + return 1438; + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0101xxxxx0000x0xxxxxxxxxx + fmla. */ + return 1439; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0111xxxxx0000x0xxxxxxxxxx + fmla. */ + return 1440; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x00x1xxxxx0000x1xxxxxxxxxx + fmls. */ + return 1442; + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0101xxxxx0000x1xxxxxxxxxx + fmls. */ + return 1443; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0111xxxxx0000x1xxxxxxxxxx + fmls. */ + return 1444; + } + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0x01xxxxx0001xxxxxxxxxxxx + fcmla. */ + return 1386; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0x11xxxxx0001xxxxxxxxxxxx + fcmla. */ + return 1387; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0001xxxxx010xxxxxxxxxxxxx + st1b. */ + return 1865; + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 10) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0101xxxxx010xx0xxxxxxxxxx + fmlalb. */ + return 2077; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0101xxxxx010xx1xxxxxxxxxx + fmlalt. */ + return 2079; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0101xxxxx010xxxxxxxxxxxxx + st1h. */ + return 1884; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0011xxxxx010xxxxxxxxxxxxx + bfdot. */ + return 2420; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0011xxxxx010xxxxxxxxxxxxx + st1b. */ + return 1868; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 10) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0111xxxxx010xx0xxxxxxxxxx + bfmlalb. */ + return 2427; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0111xxxxx010xx1xxxxxxxxxx + bfmlalt. */ + return 2426; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0111xxxxx010xxxxxxxxxxxxx + st1h. */ + return 1889; + } + } + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 10) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0x01xxxxx1x0xx0xxxxxxxxxx + fmlalb. */ + return 2078; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0x01xxxxx1x0xx1xxxxxxxxxx + fmlalt. */ + return 2080; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0x01xxxxx1x0xxxxxxxxxxxxx + st1h. */ + return 1885; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0011xxxxx1x0xxxxxxxxxxxxx + bfdot. */ + return 2419; + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 10) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0111xxxxx1x0xx0xxxxxxxxxx + bfmlalb. */ + return 2425; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0111xxxxx1x0xx1xxxxxxxxxx + bfmlalt. */ + return 2424; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0111xxxxx1x0xxxxxxxxxxxxx + st1h. */ + return 1890; + } + } + } + } + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx1xxxxxxx1xxxxxxxx0xxxx + cmplo. */ + return 1334; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx1xxxxxxx1xxxxxxxx1xxxx + cmpls. */ + return 1336; + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x00x1xxxxx001xxxxxxxxxxxxx + ld1rob. */ + return 2403; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x01x1xxxxx001xxxxxxxxxxxxx + ld1roh. */ + return 2404; + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x00010xxxx101xxxxxxxxxxxxx + ld1b. */ + return 1508; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x01010xxxx101xxxxxxxxxxxxx + ld1h. */ + return 1529; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x00110xxxx101xxxxxxxxxxxxx + ld1b. */ + return 1510; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x01110xxxx101xxxxxxxxxxxxx + ld1h. */ + return 1531; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x00011xxxx101xxxxxxxxxxxxx + ldnf1b. */ + return 1700; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x01011xxxx101xxxxxxxxxxxxx + ldnf1h. */ + return 1704; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x00111xxxx101xxxxxxxxxxxxx + ldnf1b. */ + return 1702; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x01111xxxx101xxxxxxxxxxxxx + ldnf1h. */ + return 1706; + } + } } } } else { - if (((word >> 22) & 0x1) == 0) + if (((word >> 15) & 0x1) == 0) { - if (((word >> 21) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx0000x100001 - prfb. */ - return 1677; + 101001x0001xxxxx011xxxxxxxxxxxxx + ldff1b. */ + return 1626; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx0010x100001 - prfh. */ - return 1691; + 101001x0101xxxxx011xxxxxxxxxxxxx + ldff1h. */ + return 1645; } } else @@ -6240,18 +9471,128 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx1000x100001 + 101001x0011xxxxx011xxxxxxxxxxxxx ldff1b. */ - return 1557; + return 1630; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx1010x100001 + 101001x0111xxxxx011xxxxxxxxxxxxx ldff1h. */ - return 1574; + return 1649; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0001xxxxx111xxxxxxxxxxxxx + ld2b. */ + return 1600; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0101xxxxx111xxxxxxxxxxxxx + ld2h. */ + return 1604; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0011xxxxx111xxxxxxxxxxxxx + ld4b. */ + return 1616; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0111xxxxx111xxxxxxxxxxxxx + ld4h. */ + return 1620; + } + } + } + } + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x00x1xxxxx001xxxxxxxxxxxxx + fmul. */ + return 1449; + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0101xxxxx001xxxxxxxxxxxxx + fmul. */ + return 1450; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0111xxxxx001xxxxxxxxxxxxx + fmul. */ + return 1451; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 10) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0x01xxxxx101xx0xxxxxxxxxx + fmlslb. */ + return 2082; } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0x01xxxxx101xx1xxxxxxxxxx + fmlslt. */ + return 2084; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0x01xxxxx101xxxxxxxxxxxxx + st1h. */ + return 1886; } } else @@ -6260,24 +9601,24 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxxx100x100001 - ld1rb. */ - return 1471; + x11001x0011xxxxx101xxxxxxxxxxxxx + st1b. */ + return 1873; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxxx110x100001 - ld1rh. */ - return 1475; + x11001x0111xxxxx101xxxxxxxxxxxxx + st1h. */ + return 1894; } } } } else { - if (((word >> 21) & 0x1) == 0) + if (((word >> 15) & 0x1) == 0) { if (((word >> 22) & 0x1) == 0) { @@ -6285,704 +9626,996 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx0000x10001x - prfb. */ - return 1679; + x11001x0001xxxxx011xxxxxxxxxxxxx + st2b. */ + return 1908; + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 10) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0101xxxxx011xx0xxxxxxxxxx + fmlslb. */ + return 2081; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0101xxxxx011xx1xxxxxxxxxx + fmlslt. */ + return 2083; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0101xxxxx011xxxxxxxxxxxxx + st2h. */ + return 1912; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0011xxxxx011xxxxxxxxxxxxx + st4b. */ + return 1924; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx0010x10001x - prfh. */ - return 1693; + x11001x0111xxxxx011xxxxxxxxxxxxx + st4h. */ + return 1928; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x00010xxxx111xxxxxxxxxxxxx + st1b. */ + return 1870; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x00011xxxx111xxxxxxxxxxxxx + st2b. */ + return 1909; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0101xxxxx111xxxxxxxxxxxxx + fmmla. */ + return 2397; + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x01010xxxx111xxxxxxxxxxxxx + st1h. */ + return 1891; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x01011xxxx111xxxxxxxxxxxxx + st2h. */ + return 1913; + } + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0011xxxxx111xxxxxxxxxxxxx + bfmmla. */ + return 2421; + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x00110xxxx111xxxxxxxxxxxxx + st1b. */ + return 1874; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x00111xxxx111xxxxxxxxxxxxx + st4b. */ + return 1925; + } + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0111xxxxx111xxxxxxxxxxxxx + fmmla. */ + return 2398; + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x01110xxxx111xxxxxxxxxxxxx + st1h. */ + return 1895; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x01111xxxx111xxxxxxxxxxxxx + st4h. */ + return 1929; + } + } } } + } + } + } + } + } + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x10000xxxxxxxxxxxxxxxxxxxx + orr. */ + return 1754; + } else { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx0100x10001x - ldff1b. */ - return 1556; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx0110x10001x - ldff1h. */ - return 1572; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x11000xxxxxxxxxxxxxxxxxxxx + and. */ + return 1282; } } else { - if (((word >> 22) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx1000x10001x - ldff1b. */ - return 1558; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx1010x10001x - ldff1h. */ - return 1575; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x10100xxxxxxxxxxxxxxxxxxxx + eor. */ + return 1369; } else { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx1100x10001x - prfd. */ - return 1683; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx1110x10001x - ldff1h. */ - return 1573; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x11100xxxxxxxxxxxxxxxxxxxx + dupm. */ + return 1367; } } } - } - } - } - else - { - if (((word >> 21) & 0x1) == 0) - { - if (((word >> 14) & 0x1) == 0) - { - if (((word >> 15) & 0x1) == 0) + else { - if (((word >> 4) & 0x1) == 0) + if (((word >> 15) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx0xxxxxxxx100xxxxx0xx0x1001xx - cmpeq. */ - return 1270; + 000001x1xx01xxxx0xxxxxxxxxxxxxxx + cpy. */ + return 1352; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx1xxxxxxxx100xxxxx0xx0x1001xx - cmpne. */ - return 1293; + 000001x1xx01xxxx1xxxxxxxxxxxxxxx + fcpy. */ + return 1399; } } - else + } + else + { + if (((word >> 14) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 31) & 0x1) == 0) + if (((word >> 15) & 0x1) == 0) { - if (((word >> 4) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx0xxxxxxxx101xxxxx0xx0x100100 - cmpeq. */ - return 1271; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1001xxxxx000xxxxxxxxxxxxx + ext. */ + return 1374; + } + else + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1101xxxxx000x00xxxxxxxxxx + zip1. */ + return 2407; + } + else + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1101xxxxx000010xxxxxxxxxx + uzp1. */ + return 2409; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1101xxxxx000110xxxxxxxxxx + trn1. */ + return 2411; + } + } + } + else + { + if (((word >> 11) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1101xxxxx000x01xxxxxxxxxx + zip2. */ + return 2408; + } + else + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1101xxxxx000011xxxxxxxxxx + uzp2. */ + return 2410; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1101xxxxx000111xxxxxxxxxx + trn2. */ + return 2412; + } + } + } + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx1xxxxxxxx101xxxxx0xx0x100100 - cmpne. */ - return 1294; + 000001x1x11xxxxx000xxxxxxxxxxxxx + ext. */ + return 2064; } } else { - if (((word >> 20) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) + if (((word >> 17) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 18) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxx00000x100101 - ld1b. */ - return 1442; + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1x0000100xxxxxxxxxxxxx + cpy. */ + return 1350; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1x1000100xxxxxxxxxxxxx + clasta. */ + return 1308; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxx00010x100101 - ld1sw. */ - return 1512; + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1x0100100xxxxxxxxxxxxx + revb. */ + return 1802; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1x1100100xxxxxxxxxxxxx + splice. */ + return 1829; + } } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1x0010100xxxxxxxxxxxxx + lasta. */ + return 1496; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1x1010100xxxxxxxxxxxxx + clasta. */ + return 1309; + } + } + else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxx00100x100101 - ld1b. */ - return 1444; + 000001x1xx1xx110100xxxxxxxxxxxxx + revw. */ + return 1804; + } + } + } + else + { + if (((word >> 17) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1x0001100xxxxxxxxxxxxx + compact. */ + return 1349; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1x1001100xxxxxxxxxxxxx + clastb. */ + return 1311; + } + } + else + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1x0101100xxxxxxxxxxxxx + revh. */ + return 1803; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1x1101100xxxxxxxxxxxxx + splice. */ + return 2159; + } + } + } + else + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1x0011100xxxxxxxxxxxxx + lastb. */ + return 1498; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1x1011100xxxxxxxxxxxxx + clastb. */ + return 1312; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxx00110x100101 - ld1h. */ - return 1465; + 000001x1xx1xx111100xxxxxxxxxxxxx + rbit. */ + return 1795; } } } - else + } + } + else + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 10) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxx10000x100101 - ldnf1b. */ - return 1610; + 000001x1xx1xxxxx001000xxxxxxxxxx + dup. */ + return 1365; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxx10010x100101 - ldnf1sw. */ - return 1623; + 000001x1xx1xxxxx001100xxxxxxxxxx + tbl. */ + return 1952; } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxx10100x100101 - ldnf1b. */ - return 1612; + 000001x1xx1xxxxx001010xxxxxxxxxx + tbl. */ + return 2248; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxx10110x100101 - ldnf1h. */ - return 1616; + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 17) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx100000001110xxxxxxxxxx + dup. */ + return 1364; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx110000001110xxxxxxxxxx + sunpklo. */ + return 1948; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1x1000001110xxxxxxxxxx + rev. */ + return 1801; + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx10x100001110xxxxxxxxxx + insr. */ + return 1493; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx11x100001110xxxxxxxxxx + insr. */ + return 1494; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1xxx10001110xxxxxxxxxx + uunpklo. */ + return 2011; + } + } + else + { + if (((word >> 17) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1xxx01001110xxxxxxxxxx + sunpkhi. */ + return 1947; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1xxx11001110xxxxxxxxxx + uunpkhi. */ + return 2010; + } + } } } } - } - } - else - { - if (((word >> 22) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxxx0000x10011x - st1b. */ - return 1769; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxxx0010x10011x - st1h. */ - return 1788; - } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxxx0100x10011x - st1b. */ - return 1776; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxxx0110x10011x - st1h. */ - return 1797; - } - } - } - } - } - else - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - if (((word >> 31) & 0x1) == 0) - { - if (((word >> 4) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx0xxxxxxxx110xxxxx0xx0x100100 - cmplt. */ - return 1291; - } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx1xxxxxxxx110xxxxx0xx0x100100 - cmple. */ - return 1285; + 000001x1xx1xxxxx001xx1xxxxxxxxxx + tbx. */ + return 2249; } } else { - if (((word >> 22) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx0000x100101 - ldff1b. */ - return 1551; + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx100xx0101xxxxxxxxxxxxx + lasta. */ + return 1495; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx110xx0101xxxxxxxxxxxxx + clasta. */ + return 1310; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx0010x100101 - ldff1sw. */ - return 1594; + 000001x1xx1x1xx0101xxxxxxxxxxxxx + cpy. */ + return 1351; } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx0100x100101 - ldff1b. */ - return 1553; + 000001x1xx10xxx1101xxxxxxxxxxxxx + lastb. */ + return 1497; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx0110x100101 - ldff1h. */ - return 1568; + 000001x1xx11xxx1101xxxxxxxxxxxxx + clastb. */ + return 1313; } } } } - else - { - if (((word >> 22) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx0000x10011x - stnt1b. */ - return 1837; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx0010x10011x - stnt1h. */ - return 1841; - } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx0100x10011x - st3b. */ - return 1821; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx0110x10011x - st3h. */ - return 1825; - } - } - } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 15) & 0x1) == 0) { - if (((word >> 31) & 0x1) == 0) - { - if (((word >> 4) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx0xxxxxxxx111xxxxx0xx0x100100 - cmplo. */ - return 1287; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx1xxxxxxxx111xxxxx0xx0x100100 - cmpls. */ - return 1289; - } - } - else + if (((word >> 10) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx0000x100101 - ldnt1b. */ - return 1627; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx0010x100101 - ldnt1h. */ - return 1631; - } - } - else + if (((word >> 11) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx0100x100101 - ld3b. */ - return 1535; + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx10xxxx010000xxxxxxxxxx + zip1. */ + return 2028; + } + else + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx11x0x0010000xxxxxxxxxx + punpklo. */ + return 1794; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx11x1x0010000xxxxxxxxxx + rev. */ + return 1800; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx11xxx1010000xxxxxxxxxx + punpkhi. */ + return 1793; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1xxxxx011000xxxxxxxxxx + zip1. */ + return 2029; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx0110x100101 - ld3h. */ - return 1539; + if (((word >> 13) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1xxxxx010100xxxxxxxxxx + trn1. */ + return 1953; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1xxxxx011100xxxxxxxxxx + trn1. */ + return 1954; + } } } - } - } - else - { - if (((word >> 20) & 0x1) == 0) - { - if (((word >> 22) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxx000x0x10011x - st1b. */ - return 1774; - } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxx00100x10011x - st1b. */ - return 1777; + 000001x1xx1xxxxx010x10xxxxxxxxxx + uzp1. */ + return 2015; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxx00110x10011x - st1h. */ - return 1798; + 000001x1xx1xxxxx011x10xxxxxxxxxx + uzp1. */ + return 2016; } } } else { - if (((word >> 22) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxx10000x10011x - stnt1b. */ - return 1838; + if (((word >> 13) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1xxxxx010001xxxxxxxxxx + zip2. */ + return 2030; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1xxxxx011001xxxxxxxxxx + zip2. */ + return 2031; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxx10010x10011x - stnt1h. */ - return 1842; + if (((word >> 13) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1xxxxx010101xxxxxxxxxx + trn2. */ + return 1955; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1xxxxx011101xxxxxxxxxx + trn2. */ + return 1956; + } } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxx10100x10011x - st3b. */ - return 1822; + 000001x1xx1xxxxx010x11xxxxxxxxxx + uzp2. */ + return 2017; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxx10110x10011x - st3h. */ - return 1826; + 000001x1xx1xxxxx011x11xxxxxxxxxx + uzp2. */ + return 2018; } } } } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1xxxxx11xxxxxxxxxxxxxx + sel. */ + return 1819; + } } } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 31) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 4) & 0x1) == 0) + if (((word >> 15) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx0xxxxxxxx1xxxxxxx1xx0x100100 - cmplo. */ - return 1288; + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x1x0xxxxxx000xxxxxxxxxxxxx + ldr. */ + return 1723; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x1x1xxxxxx000xxxxxxxxxxxxx + prfb. */ + return 1767; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx1xxxxxxxx1xxxxxxx1xx0x100100 - cmpls. */ - return 1290; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x10xxxxxxx100xxxxxxxxxxxxx + ld1rsh. */ + return 1552; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x11xxxxxxx100xxxxxxxxxxxxx + ld1rsb. */ + return 1549; + } } } else { - if (((word >> 14) & 0x1) == 0) + if (((word >> 15) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) + if (((word >> 21) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx10xxxxx01000x100101 - ld1b. */ - return 1443; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx10xxxxx01010x100101 - ld1h. */ - return 1464; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x10x0xxxxx010xxxxxxxxxxxxx + ld1w. */ + return 1587; } else { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx10xxxxx01100x100101 - ld1b. */ - return 1445; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx10xxxxx01110x100101 - ld1h. */ - return 1466; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x10x1xxxxx010xxxxxxxxxxxxx + ld1w. */ + return 1588; } } else { if (((word >> 22) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx10xxxxx11000x100101 - ldnf1b. */ - return 1611; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx10xxxxx11010x100101 - ldnf1h. */ - return 1615; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x110xxxxxx010xxxxxxxxxxxxx + ldr. */ + return 1724; } else { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx10xxxxx11100x100101 - ldnf1b. */ - return 1613; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx10xxxxx11110x100101 - ldnf1h. */ - return 1617; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x111xxxxxx010xxxxxxxxxxxxx + prfw. */ + return 1788; } } } else { - if (((word >> 15) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) + if (((word >> 21) & 0x1) == 0) { if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx1000x100101 - ldff1b. */ - return 1552; + 100001x1000xxxxx110xxxxxxxxxxxxx + prfw. */ + return 1784; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx1010x100101 - ldff1h. */ - return 1567; + 100001x1100xxxxx110xxxxxxxxxxxxx + prfd. */ + return 1770; } } else { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx1100x100101 - ldff1b. */ - return 1554; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx1110x100101 - ldff1h. */ - return 1569; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x1x01xxxxx110xxxxxxxxxxxxx + ld1w. */ + return 1595; } } else { - if (((word >> 22) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx1000x100101 - ld2b. */ - return 1527; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx1010x100101 - ld2h. */ - return 1531; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x101xxxxxx110xxxxxxxxxxxxx + ld1rw. */ + return 1555; } else { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx1100x100101 - ld4b. */ - return 1543; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx1110x100101 - ld4h. */ - return 1547; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x111xxxxxx110xxxxxxxxxxxxx + ld1rsb. */ + return 1551; } } } @@ -6992,55 +10625,107 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 14) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) + if (((word >> 15) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx10xxxxxx10x0x10011x - st1h. */ - return 1791; + 100001x1xxxxxxxx001xxxxxxxxxxxxx + prfh. */ + return 1781; + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x1x0xxxxxx101xxxxxxxxxxxxx + ldnt1w. */ + return 2095; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x101xxxxxx101xxxxxxxxxxxxx + ld1rsh. */ + return 1553; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x111xxxxxx101xxxxxxxxxxxxx + ld1rsb. */ + return 1550; + } + } } - else + } + else + { + if (((word >> 15) & 0x1) == 0) { if (((word >> 23) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx10xxxxxx1100x10011x - st1b. */ - return 1778; + if (((word >> 21) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x10x0xxxxx011xxxxxxxxxxxxx + ldff1w. */ + return 1687; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x10x1xxxxx011xxxxxxxxxxxxx + ldff1w. */ + return 1688; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx10xxxxxx1110x10011x - st1h. */ - return 1799; + 100001x11xxxxxxx011xxxxxxxxxxxxx + prfd. */ + return 1774; } } - } - else - { - if (((word >> 15) & 0x1) == 0) + else { if (((word >> 22) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 21) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx1000x10011x - st2b. */ - return 1813; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x1000xxxxx111xxxxxxxxxxxxx + prfw. */ + return 1787; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x1100xxxxx111xxxxxxxxxxxxx + prfd. */ + return 1773; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx1010x10011x - st2h. */ - return 1817; + 100001x1x01xxxxx111xxxxxxxxxxxxx + ldff1w. */ + return 1697; } } else @@ -7049,940 +10734,783 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx1100x10011x - st4b. */ - return 1829; + 100001x101xxxxxx111xxxxxxxxxxxxx + ld1rw. */ + return 1556; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx1110x10011x - st4h. */ - return 1833; + 100001x111xxxxxx111xxxxxxxxxxxxx + ld1rd. */ + return 1537; + } + } + } + } + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx000000xxxxxxxxxx + saddlb. */ + return 2125; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx000100xxxxxxxxxx + ssublb. */ + return 2232; + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx000010xxxxxxxxxx + uaddlb. */ + return 2256; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx000110xxxxxxxxxx + usublb. */ + return 2309; + } + } + } + else + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx000001xxxxxxxxxx + saddlt. */ + return 2127; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx000101xxxxxxxxxx + ssublt. */ + return 2234; + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx000011xxxxxxxxxx + uaddlt. */ + return 2257; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx000111xxxxxxxxxx + usublt. */ + return 2310; + } + } } } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x1xx0xxxxx000xxxxxxxxxxxxx + ld1sw. */ + return 1581; + } } else { - if (((word >> 20) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) + if (((word >> 10) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxx01000x10011x - st1b. */ - return 1775; + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx1xxxxx000000xxxxxxxxxx + sqshrunb. */ + return 2215; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx1xxxxx000100xxxxxxxxxx + shrnb. */ + return 2133; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxx01010x10011x - st1h. */ - return 1796; + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx1xxxxx000010xxxxxxxxxx + sqrshrunb. */ + return 2207; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx1xxxxx000110xxxxxxxxxx + rshrnb. */ + return 2115; + } } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxx01100x10011x - st1b. */ - return 1779; + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx1xxxxx000001xxxxxxxxxx + sqshrunt. */ + return 2216; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx1xxxxx000101xxxxxxxxxx + shrnt. */ + return 2134; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxx01110x10011x - st1h. */ - return 1800; + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx1xxxxx000011xxxxxxxxxx + sqrshrunt. */ + return 2208; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx1xxxxx000111xxxxxxxxxx + rshrnt. */ + return 2116; + } } } } else { - if (((word >> 22) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x1xx1xxxxx000xxxxxxxxxxxxx + ld1sw. */ + return 1582; + } + } + } + else + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 10) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxx11000x10011x - st2b. */ - return 1814; + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx100000xxxxxxxxxx + saddlbt. */ + return 2126; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx100100xxxxxxxxxx + eorbt. */ + return 2062; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxx11010x10011x - st2h. */ - return 1818; + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx100010xxxxxxxxxx + ssublbt. */ + return 2233; + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1000xxxxx100110xxxxxxxxxx + smmla. */ + return 2391; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1100xxxxx100110xxxxxxxxxx + usmmla. */ + return 2393; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1x10xxxxx100110xxxxxxxxxx + ummla. */ + return 2392; + } + } } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxx11100x10011x - st4b. */ - return 1830; + 010001x1xx0xxxxx100x01xxxxxxxxxx + eortb. */ + return 2063; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxx11110x10011x - st4h. */ - return 1834; + 010001x1xx0xxxxx100x11xxxxxxxxxx + ssubltb. */ + return 2235; } } } - } - } - } - } - } - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - if (((word >> 31) & 0x1) == 0) - { - if (((word >> 21) & 0x1) == 0) - { - if (((word >> 20) & 0x1) == 0) - { - if (((word >> 22) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxx00001x100000 - orr. */ - return 1665; - } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxx00011x100000 - and. */ - return 1236; + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x1x00xxxxx100xxxxxxxxxxxxx + ldnt1sw. */ + return 2094; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x1x10xxxxx100xxxxxxxxxxxxx + ld1sw. */ + return 1583; + } } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxx00101x100000 - eor. */ - return 1323; + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx1xxxxx100xxxxxxxx0xxxx + match. */ + return 2097; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx1xxxxx100xxxxxxxx1xxxx + nmatch. */ + return 2109; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxx00111x100000 - dupm. */ - return 1321; + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x1x01xxxxx100xxxxxxxxxxxxx + ld1sw. */ + return 1586; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x1x11xxxxx100xxxxxxxxxxxxx + ld1sw. */ + return 1584; + } } } } - else - { - if (((word >> 15) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxx10xx1x100000 - cpy. */ - return 1306; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxx10xx1x100000 - fcpy. */ - return 1349; - } - } } else { - if (((word >> 14) & 0x1) == 0) + if (((word >> 15) & 0x1) == 0) { - if (((word >> 13) & 0x1) == 0) + if (((word >> 21) & 0x1) == 0) { - if (((word >> 15) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx000xxxxx1xx1x100000 - ext. */ - return 1328; - } - else + if (((word >> 31) & 0x1) == 0) { - if (((word >> 16) & 0x1) == 0) + if (((word >> 10) & 0x1) == 0) { - if (((word >> 17) & 0x1) == 0) - { - if (((word >> 18) & 0x1) == 0) - { - if (((word >> 19) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0010000x1xx1x100000 - cpy. */ - return 1304; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0010001x1xx1x100000 - clasta. */ - return 1262; - } - } - else - { - if (((word >> 19) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0010010x1xx1x100000 - revb. */ - return 1713; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0010011x1xx1x100000 - splice. */ - return 1734; - } - } - } - else + if (((word >> 11) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) - { - if (((word >> 19) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0010100x1xx1x100000 - lasta. */ - return 1431; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0010101x1xx1x100000 - clasta. */ - return 1263; - } - } - else + if (((word >> 12) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx001011xx1xx1x100000 - revw. */ - return 1715; - } - } - } - else - { - if (((word >> 17) & 0x1) == 0) - { - if (((word >> 18) & 0x1) == 0) - { - if (((word >> 19) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0011000x1xx1x100000 - compact. */ - return 1303; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0011001x1xx1x100000 - clastb. */ - return 1265; - } + 010001x1xx0xxxxx010000xxxxxxxxxx + saddwb. */ + return 2128; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx001101xx1xx1x100000 - revh. */ - return 1714; + 010001x1xx0xxxxx010100xxxxxxxxxx + ssubwb. */ + return 2236; } } else { - if (((word >> 18) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - if (((word >> 19) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0011100x1xx1x100000 - lastb. */ - return 1433; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0011101x1xx1x100000 - clastb. */ - return 1266; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx010010xxxxxxxxxx + uaddwb. */ + return 2258; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx001111xx1xx1x100000 - rbit. */ - return 1706; + 010001x1xx0xxxxx010110xxxxxxxxxx + usubwb. */ + return 2311; } } } - } - } - else - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 11) & 0x1) == 0) - { - if (((word >> 12) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxx00100xxxxx1xx1x100000 - dup. */ - return 1319; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxx01100xxxxx1xx1x100000 - tbl. */ - return 1857; - } - } else { - if (((word >> 16) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - if (((word >> 17) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) - { - if (((word >> 19) & 0x1) == 0) - { - if (((word >> 20) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxx1x100000001xx1x100000 - dup. */ - return 1318; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxx1x100000011xx1x100000 - sunpklo. */ - return 1853; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxx1x1000001x1xx1x100000 - rev. */ - return 1712; - } - } - else - { - if (((word >> 20) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxx1x100001x01xx1x100000 - insr. */ - return 1428; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxx1x100001x11xx1x100000 - insr. */ - return 1429; - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx010001xxxxxxxxxx + saddwt. */ + return 2129; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxx1x10001xxx1xx1x100000 - uunpklo. */ - return 1910; + 010001x1xx0xxxxx010101xxxxxxxxxx + ssubwt. */ + return 2237; } } else { - if (((word >> 17) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxx1x10010xxx1xx1x100000 - sunpkhi. */ - return 1852; + 010001x1xx0xxxxx010011xxxxxxxxxx + uaddwt. */ + return 2259; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxx1x10011xxx1xx1x100000 - uunpkhi. */ - return 1909; + 010001x1xx0xxxxx010111xxxxxxxxxx + usubwt. */ + return 2312; } } } } else { - if (((word >> 16) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - if (((word >> 19) & 0x1) == 0) - { - if (((word >> 20) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx1010xx001xx1x100000 - lasta. */ - return 1430; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx1010xx011xx1x100000 - clasta. */ - return 1264; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx1010xx1x1xx1x100000 - cpy. */ - return 1305; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x10x0xxxxx010xxxxxxxxxxxxx + ld1w. */ + return 1591; } else { - if (((word >> 20) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx1011xxx01xx1x100000 - lastb. */ - return 1432; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx1011xxx11xx1x100000 - clastb. */ - return 1267; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x11x0xxxxx010xxxxxxxxxxxxx + ld1d. */ + return 1513; } } } - } - else - { - if (((word >> 15) & 0x1) == 0) + else { - if (((word >> 10) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - if (((word >> 11) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - if (((word >> 12) & 0x1) == 0) + if (((word >> 10) & 0x1) == 0) { - if (((word >> 13) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000010xxxx01xx1x100000 - zip1. */ - return 1927; + 010001x10x1xxxxx010000xxxxxxxxxx + sqxtnb. */ + return 2219; } else { - if (((word >> 16) & 0x1) == 0) - { - if (((word >> 18) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0000100x0x11xx1x100000 - punpklo. */ - return 1705; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0000100x1x11xx1x100000 - rev. */ - return 1711; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0000101xxx11xx1x100000 - punpkhi. */ - return 1704; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x10x1xxxxx010100xxxxxxxxxx + sqxtunb. */ + return 2221; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000110xxxxx1xx1x100000 - zip1. */ - return 1928; + 010001x10x1xxxxx010x10xxxxxxxxxx + uqxtnb. */ + return 2296; } } else { - if (((word >> 13) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx001010xxxxx1xx1x100000 - trn1. */ - return 1858; + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x10x1xxxxx010001xxxxxxxxxx + sqxtnt. */ + return 2220; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x10x1xxxxx010101xxxxxxxxxx + sqxtunt. */ + return 2222; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx001110xxxxx1xx1x100000 - trn1. */ - return 1859; + 010001x10x1xxxxx010x11xxxxxxxxxx + uqxtnt. */ + return 2297; } } } else { - if (((word >> 13) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01x010xxxxx1xx1x100000 - uzp1. */ - return 1914; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01x110xxxxx1xx1x100000 - uzp1. */ - return 1915; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x10x1xxxxx010xxxxxxxxxxxxx + ld1w. */ + return 1592; } } else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x11x1xxxxx010xxxxxxxxxxxxx + ld1d. */ + return 1514; + } + } + } + else + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) { if (((word >> 11) & 0x1) == 0) { - if (((word >> 12) & 0x1) == 0) + if (((word >> 10) & 0x1) == 0) { - if (((word >> 13) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx100010xxxxx1xx1x100000 - zip2. */ - return 1929; + 010001x1xx0xxxxx110000xxxxxxxxxx + sabalb. */ + return 2120; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx100110xxxxx1xx1x100000 - zip2. */ - return 1930; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x10x0xxxxx110100xxxxxxxxxx + adclb. */ + return 2045; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x11x0xxxxx110100xxxxxxxxxx + sbclb. */ + return 2130; + } } } else { - if (((word >> 13) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx101010xxxxx1xx1x100000 - trn2. */ - return 1860; + 010001x1xx0xxxxx110001xxxxxxxxxx + sabalt. */ + return 2121; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101110xxxxx1xx1x100000 - trn2. */ - return 1861; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x10x0xxxxx110101xxxxxxxxxx + adclt. */ + return 2046; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x11x0xxxxx110101xxxxxxxxxx + sbclt. */ + return 2131; + } } } } else { - if (((word >> 13) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx11x010xxxxx1xx1x100000 - uzp2. */ - return 1916; + if (((word >> 10) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx110010xxxxxxxxxx + uabalb. */ + return 2251; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx110011xxxxxxxxxx + uabalt. */ + return 2252; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx11x110xxxxx1xx1x100000 - uzp2. */ - return 1917; - } - } - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxx11xxxxx1xx1x100000 - sel. */ - return 1724; - } - } - } - } - else - { - if (((word >> 13) & 0x1) == 0) - { - if (((word >> 14) & 0x1) == 0) - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 22) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx000xxxxxx0x1x100001 - ldr. */ - return 1634; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx000xxxxxx1x1x100001 - prfb. */ - return 1678; - } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx001xxxxxxx01x100001 - ld1rsh. */ - return 1479; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx001xxxxxxx11x100001 - ld1rsb. */ - return 1476; - } - } - } - else - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 21) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxx0x01x100001 - ld1w. */ - return 1514; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxx1x01x100001 - ld1w. */ - return 1515; + if (((word >> 16) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxx011011xxxxxxxxxxx + cadd. */ + return 2054; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxx111011xxxxxxxxxxx + sqcadd. */ + return 2162; + } + } } } else { if (((word >> 22) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxxx011x100001 - ldr. */ - return 1635; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxxx111x100001 - prfw. */ - return 1699; - } - } - } - else - { - if (((word >> 22) & 0x1) == 0) - { - if (((word >> 21) & 0x1) == 0) { if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxx0001x100001 - prfw. */ - return 1695; + 110001x1000xxxxx110xxxxxxxxxxxxx + ldnt1w. */ + return 2096; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxx0011x100001 - prfd. */ - return 1681; + 110001x1100xxxxx110xxxxxxxxxxxxx + ldnt1d. */ + return 2089; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxx10x1x100001 - ld1w. */ - return 1522; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x1010xxxxx110xxxxxxxxxxxxx + ld1w. */ + return 1593; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x1110xxxxx110xxxxxxxxxxxxx + ld1d. */ + return 1515; + } } } - else + } + else + { + if (((word >> 23) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxxx101x100001 - ld1rw. */ - return 1482; + x10001x1001xxxxx110xxxxxxxxxxxxx + ld1w. */ + return 1598; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxxx111x100001 - ld1rsb. */ - return 1478; + x10001x1011xxxxx110xxxxxxxxxxxxx + ld1w. */ + return 1594; } } - } - } - } - else - { - if (((word >> 14) & 0x1) == 0) - { - if (((word >> 15) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx100xxxxxxxx1x100001 - prfh. */ - return 1692; - } - else - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxxxxx01x100001 - ld1rsh. */ - return 1480; - } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxxxxx11x100001 - ld1rsb. */ - return 1477; - } - } - } - else - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 21) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx0x01x100001 - ldff1w. */ - return 1600; + 010001x11x1xxxxx110xxxxxxxxxxxxx + histcnt. */ + return 2085; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx1x01x100001 - ldff1w. */ - return 1601; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxxxx11x100001 - prfd. */ - return 1685; - } - } - else - { - if (((word >> 22) & 0x1) == 0) - { - if (((word >> 21) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx0001x100001 - prfw. */ - return 1698; + 110001x1101xxxxx110xxxxxxxxxxxxx + ld1d. */ + return 1518; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx0011x100001 - prfd. */ - return 1684; + 110001x1111xxxxx110xxxxxxxxxxxxx + ld1d. */ + return 1516; } } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx10x1x100001 - ldff1w. */ - return 1608; - } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxxx101x100001 - ld1rw. */ - return 1483; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxxx111x100001 - ld1rd. */ - return 1472; - } } } } } } - } - else - { - if (((word >> 13) & 0x1) == 0) + else { if (((word >> 14) & 0x1) == 0) { @@ -7990,92 +11518,150 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 21) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx000xxxxx0xx1x10001x - ld1sw. */ - return 1508; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx000xxxxx1xx1x10001x - ld1sw. */ - return 1509; - } - } - else - { - if (((word >> 21) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx001xxxxx0xx1x10001x - ld1sw. */ - return 1510; - } - else - { - if (((word >> 22) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx001xxxxx10x1x10001x - ld1sw. */ - return 1513; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx001xxxxx11x1x10001x - ld1sw. */ - return 1511; - } - } - } - } - else - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 21) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxx0x01x10001x - ld1w. */ - return 1518; + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx001x00xxxxxxxxxx + sabdlb. */ + return 2122; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx001x10xxxxxxxxxx + uabdlb. */ + return 2253; + } + } + else + { + if (((word >> 11) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx001x01xxxxxxxxxx + sabdlt. */ + return 2123; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx001x11xxxxxxxxxx + uabdlt. */ + return 2254; + } + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxx0x11x10001x - ld1d. */ - return 1448; + 110001x1xx0xxxxx001xxxxxxxxxxxxx + ldff1sw. */ + return 1682; } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxx1x01x10001x - ld1w. */ - return 1519; + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx1xxxxx001000xxxxxxxxxx + sqshrnb. */ + return 2213; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx1xxxxx001100xxxxxxxxxx + uqshrnb. */ + return 2292; + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx1xxxxx001010xxxxxxxxxx + sqrshrnb. */ + return 2205; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx1xxxxx001110xxxxxxxxxx + uqrshrnb. */ + return 2287; + } + } + } + else + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx1xxxxx001001xxxxxxxxxx + sqshrnt. */ + return 2214; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx1xxxxx001101xxxxxxxxxx + uqshrnt. */ + return 2293; + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx1xxxxx001011xxxxxxxxxx + sqrshrnt. */ + return 2206; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx1xxxxx001111xxxxxxxxxx + uqrshrnt. */ + return 2288; + } + } + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxx1x11x10001x - ld1d. */ - return 1449; + 110001x1xx1xxxxx001xxxxxxxxxxxxx + ldff1sw. */ + return 1683; } } } @@ -8083,117 +11669,117 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 21) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxx0x01x10001x - ld1w. */ - return 1520; + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx101000xxxxxxxxxx + sshllb. */ + return 2229; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx101100xxxxxxxxxx + bext. */ + return 2334; + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx101010xxxxxxxxxx + ushllb. */ + return 2305; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx101110xxxxxxxxxx + bgrp. */ + return 2335; + } + } + } + else + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx101001xxxxxxxxxx + sshllt. */ + return 2230; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx101101xxxxxxxxxx + bdep. */ + return 2333; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx101x11xxxxxxxxxx + ushllt. */ + return 2306; + } + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxx0x11x10001x - ld1d. */ - return 1450; + 110001x1xx0xxxxx101xxxxxxxxxxxxx + ldff1sw. */ + return 1684; } } else { if (((word >> 22) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxx1001x10001x - ld1w. */ - return 1525; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxx1011x10001x - ld1d. */ - return 1453; - } - } - else - { - if (((word >> 23) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxx1101x10001x - ld1w. */ - return 1521; + 010001x1x01xxxxx101xxxxxxxxxxxxx + histseg. */ + return 2086; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxx1111x10001x - ld1d. */ - return 1451; + 110001x1x01xxxxx101xxxxxxxxxxxxx + ldff1sw. */ + return 1686; } } - } - } - } - } - else - { - if (((word >> 14) & 0x1) == 0) - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 21) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx100xxxxx0xx1x10001x - ldff1sw. */ - return 1595; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx100xxxxx1xx1x10001x - ldff1sw. */ - return 1596; - } - } - else - { - if (((word >> 21) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxxx0xx1x10001x - ldff1sw. */ - return 1597; - } - else - { - if (((word >> 22) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxxx10x1x10001x - ldff1sw. */ - return 1599; - } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxxx11x1x10001x + x10001x1x11xxxxx101xxxxxxxxxxxxx ldff1sw. */ - return 1598; + return 1685; } } } @@ -8204,40 +11790,238 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 21) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx0x01x10001x - ldff1w. */ - return 1604; + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx011000xxxxxxxxxx + sqdmullb. */ + return 2183; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx011100xxxxxxxxxx + smullb. */ + return 2155; + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1x00xxxxx011010xxxxxxxxxx + pmullb. */ + return 2330; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1x10xxxxx011010xxxxxxxxxx + pmullb. */ + return 2111; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx011110xxxxxxxxxx + umullb. */ + return 2280; + } + } + } + else + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx011001xxxxxxxxxx + sqdmullt. */ + return 2186; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx011101xxxxxxxxxx + smullt. */ + return 2158; + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1x00xxxxx011011xxxxxxxxxx + pmullt. */ + return 2331; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1x10xxxxx011011xxxxxxxxxx + pmullt. */ + return 2112; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx011111xxxxxxxxxx + umullt. */ + return 2283; + } + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx0x11x10001x - ldff1d. */ - return 1560; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x10x0xxxxx011xxxxxxxxxxxxx + ldff1w. */ + return 1693; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x11x0xxxxx011xxxxxxxxxxxxx + ldff1d. */ + return 1638; + } } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx1x01x10001x - ldff1w. */ - return 1605; + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx1xxxxx011000xxxxxxxxxx + addhnb. */ + return 2047; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx1xxxxx011100xxxxxxxxxx + subhnb. */ + return 2245; + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx1xxxxx011010xxxxxxxxxx + raddhnb. */ + return 2113; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx1xxxxx011110xxxxxxxxxx + rsubhnb. */ + return 2117; + } + } + } + else + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx1xxxxx011001xxxxxxxxxx + addhnt. */ + return 2048; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx1xxxxx011101xxxxxxxxxx + subhnt. */ + return 2246; + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx1xxxxx011011xxxxxxxxxx + raddhnt. */ + return 2114; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx1xxxxx011111xxxxxxxxxx + rsubhnt. */ + return 2118; + } + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx1x11x10001x - ldff1d. */ - return 1561; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x10x1xxxxx011xxxxxxxxxxxxx + ldff1w. */ + return 1694; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x11x1xxxxx011xxxxxxxxxxxxx + ldff1d. */ + return 1639; + } } } } @@ -8245,42 +12029,130 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 21) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 10) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx0001x10001x - prfw. */ - return 1700; + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx111000xxxxxxxxxx + ssra. */ + return 2231; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx111100xxxxxxxxxx + sri. */ + return 2224; + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx111010xxxxxxxxxx + srsra. */ + return 2228; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx111110xxxxxxxxxx + saba. */ + return 2119; + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx0011x10001x - prfd. */ - return 1686; + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx111001xxxxxxxxxx + usra. */ + return 2308; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx111101xxxxxxxxxx + sli. */ + return 2137; + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx111011xxxxxxxxxx + ursra. */ + return 2304; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1xx0xxxxx111111xxxxxxxxxx + uaba. */ + return 2250; + } + } } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx0101x10001x - ldff1w. */ - return 1606; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x1000xxxxx111xxxxxxxxxxxxx + prfw. */ + return 1789; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x1100xxxxx111xxxxxxxxxxxxx + prfd. */ + return 1775; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx0111x10001x - ldff1d. */ - return 1562; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x1010xxxxx111xxxxxxxxxxxxx + ldff1w. */ + return 1695; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x1110xxxxx111xxxxxxxxxxxxx + ldff1d. */ + return 1640; + } } } } @@ -8290,19 +12162,96 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 23) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx1001x10001x - ldff1w. */ - return 1609; + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 17) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1001xxx001110x0xxxxxxxxxx + aesmc. */ + return 2329; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1001xxx101110x0xxxxxxxxxx + aese. */ + return 2327; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1001xxxx11110x0xxxxxxxxxx + sm4e. */ + return 2324; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1001xxxxx1111x0xxxxxxxxxx + sm4ekey. */ + return 2325; + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 17) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1001xxx0x1110x1xxxxxxxxxx + aesimc. */ + return 2328; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1001xxx1x1110x1xxxxxxxxxx + aesd. */ + return 2326; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x1001xxxxx1111x1xxxxxxxxxx + rax1. */ + return 2332; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x1001xxxxx111xxxxxxxxxxxxx + ldff1w. */ + return 1698; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx1011x10001x + x10001x1101xxxxx111xxxxxxxxxxxxx ldff1d. */ - return 1564; + return 1642; } } else @@ -8311,17 +12260,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx1101x10001x + x10001x1011xxxxx111xxxxxxxxxxxxx ldff1w. */ - return 1607; + return 1696; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx1111x10001x + x10001x1111xxxxx111xxxxxxxxxxxxx ldff1d. */ - return 1563; + return 1641; } } } @@ -8340,109 +12289,241 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 30) & 0x1) == 0) { - if (((word >> 4) & 0x1) == 0) + if (((word >> 21) & 0x1) == 0) { - if (((word >> 21) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx0xxxxxxxx000xxxxx0xx1x10010x - cmpge. */ - return 1275; - } - else + if (((word >> 31) & 0x1) == 0) { - if (((word >> 11) & 0x1) == 0) + if (((word >> 4) & 0x1) == 0) { - if (((word >> 12) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx0xxxxxx00000xxxxx1xx1x10010x - whilelt. */ - return 1924; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx0xxxxxx01000xxxxx1xx1x10010x - whilelt. */ - return 1925; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx0xxxxx000xxxxxxxx0xxxx + cmpge. */ + return 1321; } else { - if (((word >> 12) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx0xxxxxx10000xxxxx1xx1x10010x - whilelo. */ - return 1920; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx0xxxxxx11000xxxxx1xx1x10010x - whilelo. */ - return 1921; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx0xxxxx000xxxxxxxx1xxxx + cmpgt. */ + return 1324; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x10x0xxxxx000xxxxxxxxxxxxx + ld1rqw. */ + return 1548; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x11x0xxxxx000xxxxxxxxxxxxx + ld1rqd. */ + return 1544; } } } else { - if (((word >> 21) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx1xxxxxxxx000xxxxx0xx1x10010x - cmpgt. */ - return 1278; - } - else + if (((word >> 31) & 0x1) == 0) { - if (((word >> 11) & 0x1) == 0) + if (((word >> 4) & 0x1) == 0) { - if (((word >> 12) & 0x1) == 0) + if (((word >> 10) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx1xxxxxx00000xxxxx1xx1x10010x - whilele. */ - return 1918; + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx1xxxxx000000xxxxx0xxxx + whilege. */ + return 2313; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx1xxxxx000100xxxxx0xxxx + whilege. */ + return 2314; + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx1xxxxx000010xxxxx0xxxx + whilehs. */ + return 2319; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx1xxxxx000110xxxxx0xxxx + whilehs. */ + return 2320; + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx1xxxxxx01000xxxxx1xx1x10010x - whilele. */ - return 1919; + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx1xxxxx000001xxxxx0xxxx + whilelt. */ + return 2025; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx1xxxxx000101xxxxx0xxxx + whilelt. */ + return 2026; + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx1xxxxx000011xxxxx0xxxx + whilelo. */ + return 2021; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx1xxxxx000111xxxxx0xxxx + whilelo. */ + return 2022; + } + } } } else { - if (((word >> 12) & 0x1) == 0) + if (((word >> 10) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx1xxxxxx10000xxxxx1xx1x10010x - whilels. */ - return 1922; + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx1xxxxx000000xxxxx1xxxx + whilegt. */ + return 2315; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx1xxxxx000100xxxxx1xxxx + whilegt. */ + return 2316; + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx1xxxxx000010xxxxx1xxxx + whilehi. */ + return 2317; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx1xxxxx000110xxxxx1xxxx + whilehi. */ + return 2318; + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx1xxxxxx11000xxxxx1xx1x10010x - whilels. */ - return 1923; + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx1xxxxx000001xxxxx1xxxx + whilele. */ + return 2019; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx1xxxxx000101xxxxx1xxxx + whilele. */ + return 2020; + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx1xxxxx000011xxxxx1xxxx + whilels. */ + return 2023; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx1xxxxx000111xxxxx1xxxx + whilels. */ + return 2024; + } + } } } } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x10x1xxxxx000xxxxxxxxxxxxx + ld1row. */ + return 2401; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x11x1xxxxx000xxxxxxxxxxxxx + ld1rod. */ + return 2402; + } + } } } else @@ -8457,9 +12538,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00x000xxxxx0xx1x100110 + 011001x1xx0xxxxx000x00xxxxxxxxxx fadd. */ - return 1333; + return 1379; } else { @@ -8467,17 +12548,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx010000xxxxx0xx1x100110 + 011001x1xx0xxxxx000010xxxxxxxxxx fmul. */ - return 1384; + return 1446; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx011000xxxxx0xx1x100110 + 011001x1xx0xxxxx000110xxxxxxxxxx frecps. */ - return 1394; + return 1459; } } } @@ -8487,9 +12568,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx10x000xxxxx0xx1x100110 + 011001x1xx0xxxxx000x01xxxxxxxxxx fsub. */ - return 1407; + return 1472; } else { @@ -8497,17 +12578,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110000xxxxx0xx1x100110 + 011001x1xx0xxxxx000011xxxxxxxxxx ftsmul. */ - return 1413; + return 1478; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx111000xxxxx0xx1x100110 + 011001x1xx0xxxxx000111xxxxxxxxxx frsqrts. */ - return 1404; + return 1469; } } } @@ -8516,18 +12597,18 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx000xxxxx1xx1x100110 + 011001x1xx1xxxxx000xxxxxxxxxxxxx fmla. */ - return 1381; + return 1437; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx000xxxxxxxx1x100111 + 111001x1xxxxxxxx000xxxxxxxxxxxxx str. */ - return 1845; + return 1940; } } } @@ -8537,488 +12618,400 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 30) & 0x1) == 0) { - if (((word >> 4) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx0xxxxxxxx100xxxxx0xx1x10010x - cmplt. */ - return 1292; + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx0xxxxx001xxxxxxxx0xxxx + cmplt. */ + return 1338; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx0xxxxx001xxxxxxxx1xxxx + cmple. */ + return 1332; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx1xxxxxxxx100xxxxx0xx1x10010x - cmple. */ - return 1286; - } - } - else - { - if (((word >> 16) & 0x1) == 0) - { - if (((word >> 17) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) - { - if (((word >> 19) & 0x1) == 0) - { - if (((word >> 20) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx100000000xx1x10011x - faddv. */ - return 1337; - } - else - { - if (((word >> 4) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx0xxxxxxxx100000010xx1x10011x - fcmge. */ - return 1340; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx1xxxxxxxx100000010xx1x10011x - fcmgt. */ - return 1342; - } - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx1000001x0xx1x10011x - fadda. */ - return 1336; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx100001xx0xx1x10011x - fmaxnmv. */ - return 1373; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x10x0xxxxx001xxxxxxxxxxxxx + ld1rqw. */ + return 1547; } else { - if (((word >> 18) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx100010xx0xx1x10011x - fcmeq. */ - return 1338; - } - else - { - if (((word >> 19) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx1000110x0xx1x10011x - fmaxv. */ - return 1374; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx1000111x0xx1x10011x - frecpe. */ - return 1393; - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x11x0xxxxx001xxxxxxxxxxxxx + ld1rqd. */ + return 1543; } } - else + } + else + { + if (((word >> 31) & 0x1) == 0) { - if (((word >> 17) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) + if (((word >> 17) & 0x1) == 0) { - if (((word >> 4) & 0x1) == 0) + if (((word >> 18) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx0xxxxxxxx100100xx0xx1x10011x - fcmlt. */ - return 1345; + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx000000001xxxxxxxxxxxxx + faddv. */ + return 1383; + } + else + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx010000001xxxxxxxx0xxxx + fcmge. */ + return 1390; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx010000001xxxxxxxx1xxxx + fcmgt. */ + return 1392; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx0x1000001xxxxxxxxxxxxx + fadda. */ + return 1382; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx1xxxxxxxx100100xx0xx1x10011x - fcmle. */ - return 1344; + 011001x1xx0xx100001xxxxxxxxxxxxx + fmaxnmv. */ + return 1429; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx100101xx0xx1x10011x - fminnmv. */ - return 1379; - } - } - else - { - if (((word >> 18) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx100110xx0xx1x10011x - fcmne. */ - return 1346; - } - else - { - if (((word >> 19) & 0x1) == 0) + if (((word >> 18) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx1001110x0xx1x10011x - fminv. */ - return 1380; + 011001x1xx0xx010001xxxxxxxxxxxxx + fcmeq. */ + return 1388; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx1001111x0xx1x10011x - frsqrte. */ - return 1403; - } - } - } - } - } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - if (((word >> 4) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx0xxxxxxxx100xxxxx1xx1x10010x - ctermeq. */ - return 1307; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx1xxxxxxxx100xxxxx1xx1x10010x - ctermne. */ - return 1308; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx100xxxxx1xx1x10011x - fmls. */ - return 1382; - } - } - } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 21) & 0x1) == 0) - { - if (((word >> 22) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - if (((word >> 31) & 0x1) == 0) - { - if (((word >> 9) & 0x1) == 0) - { - if (((word >> 20) & 0x1) == 0) - { - if (((word >> 4) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx0xxxx0xxxx10xxxx00001x100100 - and. */ - return 1238; + 011001x1xx0x0110001xxxxxxxxxxxxx + fmaxv. */ + return 1430; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx1xxxx0xxxx10xxxx00001x100100 - bic. */ - return 1250; + 011001x1xx0x1110001xxxxxxxxxxxxx + frecpe. */ + return 1458; } } - else + } + } + else + { + if (((word >> 17) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) { - if (((word >> 19) & 0x1) == 0) + if (((word >> 4) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxx0xxxx10xxx010001x100100 - brka. */ - return 1252; + 011001x1xx0xx001001xxxxxxxx0xxxx + fcmlt. */ + return 1395; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxx0xxxx10xxx110001x100100 - brkn. */ - return 1256; + 011001x1xx0xx001001xxxxxxxx1xxxx + fcmle. */ + return 1394; } } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx0xx101001xxxxxxxxxxxxx + fminnmv. */ + return 1435; + } } else { - if (((word >> 4) & 0x1) == 0) + if (((word >> 18) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx0xxxx1xxxx10xxxxx0001x100100 - eor. */ - return 1325; + 011001x1xx0xx011001xxxxxxxxxxxxx + fcmne. */ + return 1396; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx1xxxx1xxxx10xxxxx0001x100100 - sel. */ - return 1725; + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx0x0111001xxxxxxxxxxxxx + fminv. */ + return 1436; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx0x1111001xxxxxxxxxxxxx + frsqrte. */ + return 1468; + } } } } - else + } + else + { + if (((word >> 22) & 0x1) == 0) { - if (((word >> 13) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxx0001x100101 - ld1sh. */ - return 1497; + 111001x1000xxxxx001xxxxxxxxxxxxx + stnt1w. */ + return 2244; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx0001x100101 - ldff1sh. */ - return 1586; + 111001x1100xxxxx001xxxxxxxxxxxxx + stnt1d. */ + return 2240; } } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxx10xxxxx0001x10011x - stnt1w. */ - return 1843; + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1x10xxxxx001xxxxxxxxxxxxx + stnt1w. */ + return 2243; + } } } - else + } + else + { + if (((word >> 30) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - if (((word >> 31) & 0x1) == 0) + if (((word >> 4) & 0x1) == 0) { - if (((word >> 4) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - if (((word >> 9) & 0x1) == 0) - { - if (((word >> 20) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx0xxxx0xxxx10xxxx00101x100100 - ands. */ - return 1239; - } - else - { - if (((word >> 19) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx0xxxx0xxxx10xxx010101x100100 - brkas. */ - return 1253; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx0xxxx0xxxx10xxx110101x100100 - brkns. */ - return 1257; - } - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx0xxxx1xxxx10xxxxx0101x100100 - eors. */ - return 1326; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx1xxxxx0010xxxxxxx0xxxx + ctermeq. */ + return 1353; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx1xxxxxxxxx10xxxxx0101x100100 - bics. */ - return 1251; + 001001x1xx1xxxxx0011xxxxxxx0xxxx + whilewr. */ + return 2322; } } else { - if (((word >> 13) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxx0101x100101 - ld1w. */ - return 1516; + 001001x1xx1xxxxx0010xxxxxxx1xxxx + ctermne. */ + return 1354; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx0101x100101 - ldff1w. */ - return 1602; + 001001x1xx1xxxxx0011xxxxxxx1xxxx + whilerw. */ + return 2321; } } } else { - if (((word >> 13) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxx0101x10011x - st1w. */ - return 1805; + 101001x10x1xxxxx001xxxxxxxxxxxxx + ld1row. */ + return 2405; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx0101x10011x - st3w. */ - return 1827; + 101001x11x1xxxxx001xxxxxxxxxxxxx + ld1rod. */ + return 2406; } } } - } - else - { - if (((word >> 13) & 0x1) == 0) + else { - if (((word >> 22) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxx1001x1001xx - ld1sh. */ - return 1498; - } - else - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxx1101x10010x - ld1w. */ - return 1517; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxx1101x10011x - st1w. */ - return 1807; - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x1xx1xxxxx001xxxxxxxxxxxxx + fmls. */ + return 1441; } - else + } + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx1001x10010x - ldff1sh. */ - return 1587; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx1001x10011x - st2w. */ - return 1819; - } - } - else + if (((word >> 23) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx1101x10010x - ldff1w. */ - return 1603; + if (((word >> 9) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x10000xxxx01xxxx0xxxx0xxxx + and. */ + return 1284; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x10000xxxx01xxxx0xxxx1xxxx + bic. */ + return 1296; + } + } + else + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x100010xxx01xxxx0xxxxxxxxx + brka. */ + return 1298; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x100011xxx01xxxx0xxxxxxxxx + brkn. */ + return 1302; + } + } + } + else + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1000xxxxx01xxxx1xxxx0xxxx + eor. */ + return 1371; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1000xxxxx01xxxx1xxxx1xxxx + sel. */ + return 1820; + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx1101x10011x - st4w. */ - return 1835; + if (((word >> 13) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x1000xxxxx010xxxxxxxxxxxxx + ld1sh. */ + return 1570; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x1000xxxxx011xxxxxxxxxxxxx + ldff1sh. */ + return 1670; + } } } - } - } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - if (((word >> 21) & 0x1) == 0) - { - if (((word >> 22) & 0x1) == 0) + else { if (((word >> 31) & 0x1) == 0) { @@ -9030,26 +13023,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx0xxxx0xxxx10xxxx00011x100100 + 001001x11000xxxx01xxxx0xxxx0xxxx orr. */ - return 1667; + return 1756; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx1xxxx0xxxx10xxxx00011x100100 + 001001x11000xxxx01xxxx0xxxx1xxxx orn. */ - return 1662; + return 1751; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxx0xxxx10xxxx10011x100100 + 001001x11001xxxx01xxxx0xxxxxxxxx brkb. */ - return 1254; + return 1300; } } else @@ -9058,17 +13051,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx0xxxx1xxxx10xxxxx0011x100100 + 001001x1100xxxxx01xxxx1xxxx0xxxx nor. */ - return 1659; + return 1748; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx1xxxx1xxxx10xxxxx0011x100100 + 001001x1100xxxxx01xxxx1xxxx1xxxx nand. */ - return 1656; + return 1745; } } } @@ -9078,17 +13071,94 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxx0011x100101 + 101001x1100xxxxx010xxxxxxxxxxxxx ld1sb. */ - return 1485; + return 1558; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx0011x100101 + 101001x1100xxxxx011xxxxxxxxxxxxx ldff1sb. */ - return 1577; + return 1658; + } + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + if (((word >> 9) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x10100xxxx01xxxx0xxxx0xxxx + ands. */ + return 1285; + } + else + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x101010xxx01xxxx0xxxx0xxxx + brkas. */ + return 1299; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x101011xxx01xxxx0xxxx0xxxx + brkns. */ + return 1303; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1010xxxxx01xxxx1xxxx0xxxx + eors. */ + return 1372; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1010xxxxx01xxxxxxxxx1xxxx + bics. */ + return 1297; + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x1010xxxxx010xxxxxxxxxxxxx + ld1w. */ + return 1589; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x1010xxxxx011xxxxxxxxxxxxx + ldff1w. */ + return 1689; } } } @@ -9104,26 +13174,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx0xxxx0xxxx10xxxx00111x100100 + 001001x11100xxxx01xxxx0xxxx0xxxx orrs. */ - return 1668; + return 1757; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx0xxxx0xxxx10xxxx10111x100100 + 001001x11101xxxx01xxxx0xxxx0xxxx brkbs. */ - return 1255; + return 1301; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx0xxxx1xxxx10xxxxx0111x100100 + 001001x1110xxxxx01xxxx1xxxx0xxxx nors. */ - return 1660; + return 1749; } } else @@ -9132,17 +13202,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx1xxxx0xxxx10xxxxx0111x100100 + 001001x1110xxxxx01xxxx0xxxx1xxxx orns. */ - return 1663; + return 1752; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx1xxxx1xxxx10xxxxx0111x100100 + 001001x1110xxxxx01xxxx1xxxx1xxxx nands. */ - return 1657; + return 1746; } } } @@ -9152,187 +13222,297 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxx0111x100101 + 101001x1110xxxxx010xxxxxxxxxxxxx ld1sb. */ - return 1487; + return 1560; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx0111x100101 + 101001x1110xxxxx011xxxxxxxxxxxxx ldff1sb. */ - return 1579; + return 1662; } } } } - else + } + else + { + if (((word >> 13) & 0x1) == 0) { - if (((word >> 13) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x1001xxxxx010xxxxxxxxxxxxx + ld1sh. */ + return 1571; + } + else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxx1011x10010x + x01001x1101xxxxx010xxxxxxxxxxxxx ld1sb. */ - return 1486; + return 1559; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x1011xxxxx010xxxxxxxxxxxxx + ld1w. */ + return 1590; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxx1111x10010x + x01001x1111xxxxx010xxxxxxxxxxxxx ld1d. */ - return 1447; + return 1512; } } - else + } + else + { + if (((word >> 22) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x1001xxxxx011xxxxxxxxxxxxx + ldff1sh. */ + return 1672; + } + else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx1011x10010x + x01001x1101xxxxx011xxxxxxxxxxxxx ldff1sb. */ - return 1578; + return 1660; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x1011xxxxx011xxxxxxxxxxxxx + ldff1w. */ + return 1691; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx1111x10010x + x01001x1111xxxxx011xxxxxxxxxxxxx ldff1d. */ - return 1559; + return 1636; } } } } - else + } + else + { + if (((word >> 13) & 0x1) == 0) { - if (((word >> 13) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - if (((word >> 31) & 0x1) == 0) + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx0xxxxx010xxxxxxxx0xxxx + fcmge. */ + return 1391; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx0xxxxx010xxxxxxxx1xxxx + fcmgt. */ + return 1393; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx1xxxxx010xxxxxxxxxxxxx + fnmla. */ + return 1455; + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1x0xxxxxx010xxxxxxxxxxxxx + str. */ + return 1941; + } + else { if (((word >> 21) & 0x1) == 0) { - if (((word >> 4) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1x10xxxxx010xxxxxxxxxxxxx + st1w. */ + return 1900; + } + else + { + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx0xxxxxxxx010xxxxx0x11x100110 - fcmge. */ - return 1341; + 111001x1011xxxxx010xxxxxxxxxxxxx + st1w. */ + return 1902; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx1xxxxxxxx010xxxxx0x11x100110 - fcmgt. */ - return 1343; + 111001x1111xxxxx010xxxxxxxxxxxxx + st1d. */ + return 1879; } } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxx1x11x100110 - fnmla. */ - return 1390; - } } - else + } + } + else + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) + if (((word >> 4) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxxx011x100111 - str. */ - return 1846; + 011001x1xx0xxxxx011xxxxxxxx0xxxx + fcmeq. */ + return 1389; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx010xxxxxx111x100111 - st1d. */ - return 1784; + 011001x1xx0xxxxx011xxxxxxxx1xxxx + fcmne. */ + return 1397; } } - } - else - { - if (((word >> 21) & 0x1) == 0) + else { - if (((word >> 31) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - if (((word >> 4) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx0xxxxxxxx110xxxxx0x11x100110 - fcmeq. */ - return 1339; + 111001x1000xxxxx011xxxxxxxxxxxxx + stnt1w. */ + return 1938; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx1xxxxxxxx110xxxxx0x11x100110 - fcmne. */ - return 1347; + 111001x1100xxxxx011xxxxxxxxxxxxx + stnt1d. */ + return 1934; } } else { - if (((word >> 22) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx0011x100111 - stnt1d. */ - return 1839; + 111001x1010xxxxx011xxxxxxxxxxxxx + st3w. */ + return 1922; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx0111x100111 + 111001x1110xxxxx011xxxxxxxxxxxxx st3d. */ - return 1823; + return 1918; } } } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx1xxxxx011xxxxxxxxxxxxx + fnmls. */ + return 1456; + } else { - if (((word >> 31) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx1x11x100110 - fnmls. */ - return 1391; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1001xxxxx011xxxxxxxxxxxxx + st2w. */ + return 1914; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1101xxxxx011xxxxxxxxxxxxx + st2d. */ + return 1910; + } } else { - if (((word >> 22) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx1011x100111 - st2d. */ - return 1815; + 111001x1011xxxxx011xxxxxxxxxxxxx + st4w. */ + return 1930; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx110xxxxx1111x100111 + 111001x1111xxxxx011xxxxxxxxxxxxx st4d. */ - return 1831; + return 1926; } } } @@ -9355,17 +13535,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx0xxxxxxxx001xxxxx0xx1x10010x + x01001x1xx0xxxxx100xxxxxxxx0xxxx cmpeq. */ - return 1272; + return 1318; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx1xxxxxxxx001xxxxx0xx1x10010x + x01001x1xx0xxxxx100xxxxxxxx1xxxx cmpne. */ - return 1295; + return 1341; } } else @@ -9378,17 +13558,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxx00001x10010x + x01001x10000xxxx101xxxxxxxxxxxxx ld1sh. */ - return 1504; + return 1577; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxx00011x10010x + x01001x11000xxxx101xxxxxxxxxxxxx ld1sb. */ - return 1491; + return 1564; } } else @@ -9397,17 +13577,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxx00101x10010x + x01001x10100xxxx101xxxxxxxxxxxxx ld1w. */ - return 1523; + return 1596; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxx00111x10010x + x01001x11100xxxx101xxxxxxxxxxxxx ld1sb. */ - return 1493; + return 1566; } } } @@ -9419,17 +13599,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxx10001x10010x + x01001x10001xxxx101xxxxxxxxxxxxx ldnf1sh. */ - return 1621; + return 1710; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxx10011x10010x + x01001x11001xxxx101xxxxxxxxxxxxx ldnf1sb. */ - return 1618; + return 1707; } } else @@ -9438,17 +13618,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxx10101x10010x + x01001x10101xxxx101xxxxxxxxxxxxx ldnf1w. */ - return 1624; + return 1713; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxx10111x10010x + x01001x11101xxxx101xxxxxxxxxxxxx ldnf1sb. */ - return 1620; + return 1709; } } } @@ -9466,17 +13646,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx0xxxxxxxxx11xxxx000x1x100100 + 001001x1x000xxxx11xxxxxxxxx0xxxx brkpa. */ - return 1258; + return 1304; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx0xxxxxxxxx11xxxx001x1x100100 + 001001x1x100xxxx11xxxxxxxxx0xxxx brkpas. */ - return 1259; + return 1305; } } else @@ -9487,9 +13667,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx0xxxxxxxxx110xx010xx1x100100 + 001001x1xx010xx011xxxxxxxxx0xxxx ptest. */ - return 1701; + return 1790; } else { @@ -9501,17 +13681,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx0xxxxx0x00110xx110xx1x100100 + 001001x1xx011xx01100x0xxxxx0xxxx pfirst. */ - return 1671; + return 1760; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx0xxxxx0x01110xx110xx1x100100 + 001001x1xx011xx01110x0xxxxx0xxxx ptrue. */ - return 1702; + return 1791; } } else @@ -9520,17 +13700,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx0xxxxx0x1x110xx1100x1x100100 + 001001x1x0011xx011x1x0xxxxx0xxxx rdffr. */ - return 1708; + return 1797; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx0xxxxx0x1x110xx1101x1x100100 + 001001x1x1011xx011x1x0xxxxx0xxxx rdffrs. */ - return 1709; + return 1798; } } } @@ -9538,9 +13718,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx0xxxxx1xxx110xx110xx1x100100 + 001001x1xx011xx011xxx1xxxxx0xxxx pfalse. */ - return 1670; + return 1759; } } } @@ -9552,26 +13732,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx0xxxxx0x0x111xxx10xx1x100100 + 001001x1xx01xxx111x0x0xxxxx0xxxx ptrues. */ - return 1703; + return 1792; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx0xxxxx0x1x111xxx10xx1x100100 + 001001x1xx01xxx111x1x0xxxxx0xxxx rdffr. */ - return 1707; + return 1796; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx0xxxxx1xxx111xxx10xx1x100100 + 001001x1xx01xxx111xxx1xxxxx0xxxx pnext. */ - return 1672; + return 1761; } } } @@ -9582,17 +13762,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx1xxxxxxxxx11xxxxx00x1x100100 + 001001x1x00xxxxx11xxxxxxxxx1xxxx brkpb. */ - return 1260; + return 1306; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx1xxxxxxxxx11xxxxx01x1x100100 + 001001x1x10xxxxx11xxxxxxxxx1xxxx brkpbs. */ - return 1261; + return 1307; } } } @@ -9606,17 +13786,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxx0001x100101 + 101001x1000xxxxx110xxxxxxxxxxxxx ldnt1w. */ - return 1632; + return 1721; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxx0011x100101 + 101001x1100xxxxx110xxxxxxxxxxxxx ldnt1d. */ - return 1628; + return 1717; } } else @@ -9625,17 +13805,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxx0101x100101 + 101001x1010xxxxx110xxxxxxxxxxxxx ld3w. */ - return 1540; + return 1613; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxx0111x100101 + 101001x1110xxxxx110xxxxxxxxxxxxx ld3d. */ - return 1536; + return 1609; } } } @@ -9647,17 +13827,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx0001x100101 + 101001x1000xxxxx111xxxxxxxxxxxxx ldnt1w. */ - return 1633; + return 1722; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx0011x100101 + 101001x1100xxxxx111xxxxxxxxxxxxx ldnt1d. */ - return 1629; + return 1718; } } else @@ -9666,762 +13846,927 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx0101x100101 + 101001x1010xxxxx111xxxxxxxxxxxxx ld3w. */ - return 1541; + return 1614; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx0111x100101 + 101001x1110xxxxx111xxxxxxxxxxxxx ld3d. */ - return 1537; + return 1610; + } + } + } + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 17) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx000000100xxxxxxxxxxxxx + fadd. */ + return 1380; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx000100100xxxxxxxxxxxxx + fmaxnm. */ + return 1427; + } + } + else + { + if (((word >> 18) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx000010100xxxxxxxxxxxxx + fmul. */ + return 1447; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx000110100xxxxxxxxxxxxx + fmax. */ + return 1425; + } + } + } + else + { + if (((word >> 17) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx000001100xxxxxxxxxxxxx + fsub. */ + return 1473; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx000101100xxxxxxxxxxxxx + fminnm. */ + return 1433; + } + } + else + { + if (((word >> 18) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx000011100xxxxxxxxxxxxx + fsubr. */ + return 1475; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx000111100xxxxxxxxxxxxx + fmin. */ + return 1431; + } + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx010xxx100xxxxxxxxxxxxx + ftmad. */ + return 1477; + } + } + else + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 17) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx001000100xxxxxxxxxxxxx + fabd. */ + return 1375; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx011000100xxxxxxxxxxxxx + fadd. */ + return 1381; + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx001100100xxxxxxxxxxxxx + fdivr. */ + return 1421; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx011100100xxxxxxxxxxxxx + fmaxnm. */ + return 1428; + } + } + } + else + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx001010100xxxxxxxxxxxxx + fmulx. */ + return 1452; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx011010100xxxxxxxxxxxxx + fmul. */ + return 1448; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx0x1110100xxxxxxxxxxxxx + fmax. */ + return 1426; + } + } + } + else + { + if (((word >> 17) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx001001100xxxxxxxxxxxxx + fscale. */ + return 1470; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx011001100xxxxxxxxxxxxx + fsub. */ + return 1474; + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx001101100xxxxxxxxxxxxx + fdiv. */ + return 1420; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx011101100xxxxxxxxxxxxx + fminnm. */ + return 1434; + } + } + } + else + { + if (((word >> 18) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx0x1011100xxxxxxxxxxxxx + fsubr. */ + return 1476; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx0x1111100xxxxxxxxxxxxx + fmin. */ + return 1432; + } + } } } } + else + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx0xxxxx110xxxxxxxx0xxxx + fcmuo. */ + return 1398; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx0xxxxx110xxxxxxxx1xxxx + facge. */ + return 1377; + } + } } - } - } - else - { - if (((word >> 13) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) + else { if (((word >> 22) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0x1xxxxx0001x10011x - st1w. */ - return 1801; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1000xxxxx1x0xxxxxxxxxxxxx + st1w. */ + return 1896; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1100xxxxx1x0xxxxxxxxxxxxx + st1d. */ + return 1875; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx0x1xxxxx0101x10011x + 111001x1x10xxxxx1x0xxxxxxxxxxxxx st1w. */ - return 1806; + return 1901; } } - else + } + else + { + if (((word >> 14) & 0x1) == 0) { if (((word >> 31) & 0x1) == 0) { - if (((word >> 14) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { if (((word >> 19) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) + if (((word >> 17) & 0x1) == 0) { - if (((word >> 16) & 0x1) == 0) + if (((word >> 18) & 0x1) == 0) { - if (((word >> 17) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx001000000x11x100110 - fadd. */ - return 1334; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx001001000x11x100110 - fmaxnm. */ - return 1371; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx000000101xxxxxxxxxxxxx + frintn. */ + return 1464; } else { - if (((word >> 18) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx001010000x11x100110 - fmul. */ - return 1385; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx001011000x11x100110 - fmax. */ - return 1369; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx010000101xxxxxxxxxxxxx + scvtf. */ + return 1810; } } else { - if (((word >> 17) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx001100000x11x100110 - fsub. */ - return 1408; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx001101000x11x100110 - fminnm. */ - return 1377; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx000100101xxxxxxxxxxxxx + frinta. */ + return 1461; } else { - if (((word >> 18) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx001110000x11x100110 - fsubr. */ - return 1410; + 011001x1x0010100101xxxxxxxxxxxxx + scvtf. */ + return 1809; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx001111000x11x100110 - fmin. */ - return 1375; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x101010100101xxxxxxxxxxxxx + scvtf. */ + return 1808; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x111010100101xxxxxxxxxxxxx + scvtf. */ + return 1812; + } } } } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx001xxx010x11x100110 - ftmad. */ - return 1412; - } - } - else - { - if (((word >> 16) & 0x1) == 0) - { - if (((word >> 17) & 0x1) == 0) + if (((word >> 18) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx001000100x11x100110 - fabd. */ - return 1329; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx001000110x11x100110 - fadd. */ - return 1335; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx000010101xxxxxxxxxxxxx + frintm. */ + return 1463; } else { - if (((word >> 20) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx001001100x11x100110 - fdivr. */ - return 1365; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx001001110x11x100110 - fmaxnm. */ - return 1372; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx010010101xxxxxxxxxxxxx + scvtf. */ + return 1807; } } else { - if (((word >> 18) & 0x1) == 0) - { - if (((word >> 20) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx001010100x11x100110 - fmulx. */ - return 1387; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx001010110x11x100110 - fmul. */ - return 1386; - } - } - else + if (((word >> 20) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx0010111x0x11x100110 - fmax. */ - return 1370; - } - } - } - else - { - if (((word >> 17) & 0x1) == 0) - { - if (((word >> 18) & 0x1) == 0) - { - if (((word >> 20) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx001100100x11x100110 - fscale. */ - return 1405; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx001100110x11x100110 - fsub. */ - return 1409; - } + 011001x1xx000110101xxxxxxxxxxxxx + frintx. */ + return 1466; } else { - if (((word >> 20) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx001101100x11x100110 - fdiv. */ - return 1364; + 011001x10x010110101xxxxxxxxxxxxx + scvtf. */ + return 1811; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx001101110x11x100110 - fminnm. */ - return 1378; + 011001x11x010110101xxxxxxxxxxxxx + scvtf. */ + return 1813; } } } - else - { - if (((word >> 18) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0011101x0x11x100110 - fsubr. */ - return 1411; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0011111x0x11x100110 - fmin. */ - return 1376; - } - } } } - } - else - { - if (((word >> 4) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx0xxxxxxxx011xxxxx0x11x100110 - fcmuo. */ - return 1348; - } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx1xxxxxxxx011xxxxx0x11x100110 - facge. */ - return 1331; - } - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0x1xxxxx0x11x100111 - st1d. */ - return 1780; - } - } - } - else - { - if (((word >> 14) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 22) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxxx0001x10011x - st1w. */ - return 1802; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxxx0101x10011x - st1w. */ - return 1809; - } - } - else - { - if (((word >> 31) & 0x1) == 0) - { - if (((word >> 16) & 0x1) == 0) - { - if (((word >> 17) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) + if (((word >> 17) & 0x1) == 0) { - if (((word >> 19) & 0x1) == 0) + if (((word >> 18) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101000000x11x100110 - frintn. */ - return 1399; + 011001x1x0001000101xxxxxxxxxxxxx + fcvt. */ + return 1400; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101000010x11x100110 - scvtf. */ - return 1719; + 011001x1x1001000101xxxxxxxxxxxxx + fcvt. */ + return 1402; } } else { - if (((word >> 20) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx001100101xxxxxxxxxxxxx + frecpx. */ + return 1460; + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx101000100011x100110 - fcvt. */ - return 1350; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx101000100111x100110 - fcvt. */ - return 1352; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x100001x10101xxxxxxxxxxxxx + fcvtx. */ + return 2070; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101000110x11x100110 - fcvtzs. */ - return 1357; + 011001x110001x10101xxxxxxxxxxxxx + bfcvt. */ + return 2422; } } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1x1001x10101xxxxxxxxxxxxx + fcvt. */ + return 1404; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x100011xx0101xxxxxxxxxxxxx + flogb. */ + return 2072; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x110011xx0101xxxxxxxxxxxxx + fcvtzs. */ + return 1409; + } } else { - if (((word >> 19) & 0x1) == 0) + if (((word >> 17) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) + if (((word >> 18) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101001000x11x100110 - frinta. */ - return 1396; + 011001x1x1011000101xxxxxxxxxxxxx + fcvtzs. */ + return 1410; } else { - if (((word >> 22) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101001010011x100110 - scvtf. */ - return 1718; + 011001x101011100101xxxxxxxxxxxxx + fcvtzs. */ + return 1407; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101001010111x100110 - scvtf. */ - return 1720; + 011001x111011100101xxxxxxxxxxxxx + fcvtzs. */ + return 1411; } } } else { - if (((word >> 20) & 0x1) == 0) + if (((word >> 18) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101001100x11x100110 - frecpx. */ - return 1395; + 011001x1x1011010101xxxxxxxxxxxxx + fcvtzs. */ + return 1406; } else { - if (((word >> 22) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101001110011x100110 + 011001x101011110101xxxxxxxxxxxxx fcvtzs. */ - return 1356; + return 1408; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101001110111x100110 + 011001x111011110101xxxxxxxxxxxxx fcvtzs. */ - return 1358; + return 1412; } } } } } - else + } + } + else + { + if (((word >> 17) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - if (((word >> 19) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx1010100x0x11x100110 - frintm. */ - return 1398; + 011001x1xx000001101xxxxxxxxxxxxx + frintp. */ + return 1465; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx1010101x0x11x100110 - fcvt. */ - return 1354; + 011001x1xx010001101xxxxxxxxxxxxx + ucvtf. */ + return 1962; } } else { - if (((word >> 19) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101011000x11x100110 - frintx. */ + 011001x1x0001001101xxxxxxxxxxxxx + fcvt. */ return 1401; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101011010x11x100110 - scvtf. */ - return 1721; + 011001x1x1001001101xxxxxxxxxxxxx + fcvt. */ + return 1403; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx1010111x0x11x100110 - fcvtzs. */ - return 1359; + 011001x1xx011001101xxxxxxxxxxxxx + fcvtzu. */ + return 1417; } } } - } - else - { - if (((word >> 17) & 0x1) == 0) + else { - if (((word >> 18) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - if (((word >> 19) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx101100000x11x100110 - frintp. */ - return 1400; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx101100010x11x100110 - ucvtf. */ - return 1865; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1x00x0101101xxxxxxxxxxxxx + ucvtf. */ + return 1961; } else { - if (((word >> 20) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx101100100011x100110 - fcvt. */ - return 1351; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx101100100111x100110 - fcvt. */ - return 1353; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1010x0101101xxxxxxxxxxxxx + ucvtf. */ + return 1960; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101100110x11x100110 - fcvtzu. */ - return 1361; + 011001x1110x0101101xxxxxxxxxxxxx + ucvtf. */ + return 1964; } } } else { - if (((word >> 19) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx1011010x0011x100110 - ucvtf. */ - return 1864; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx1011010x0111x100110 - ucvtf. */ - return 1866; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx001101101xxxxxxxxxxxxx + fsqrt. */ + return 1471; } else { - if (((word >> 20) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101101100x11x100110 - fsqrt. */ - return 1406; + 011001x1x0011101101xxxxxxxxxxxxx + fcvtzu. */ + return 1416; } else { - if (((word >> 22) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101101110011x100110 + 011001x101011101101xxxxxxxxxxxxx fcvtzu. */ - return 1360; + return 1414; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101101110111x100110 + 011001x111011101101xxxxxxxxxxxxx fcvtzu. */ - return 1362; + return 1418; } } } } } - else + } + else + { + if (((word >> 18) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - if (((word >> 19) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx1011100x0x11x100110 + 011001x1xx000011101xxxxxxxxxxxxx frintz. */ - return 1402; + return 1467; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx1011101x0x11x100110 - fcvt. */ - return 1355; + 011001x1xx010011101xxxxxxxxxxxxx + ucvtf. */ + return 1959; } } else { - if (((word >> 19) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx001011101xxxxxxxxxxxxx + fcvt. */ + return 1405; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx011011101xxxxxxxxxxxxx + fcvtzu. */ + return 1413; + } + } + } + else + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx000111101xxxxxxxxxxxxx + frinti. */ + return 1462; + } + else { - if (((word >> 20) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101111000x11x100110 - frinti. */ - return 1397; + 011001x10x010111101xxxxxxxxxxxxx + ucvtf. */ + return 1963; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101111010x11x100110 + 011001x11x010111101xxxxxxxxxxxxx ucvtf. */ - return 1867; + return 1965; } } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x10x0x1111101xxxxxxxxxxxxx + fcvtzu. */ + return 1415; + } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx1011111x0x11x100110 + 011001x11x0x1111101xxxxxxxxxxxxx fcvtzu. */ - return 1363; + return 1419; } } } } } - else + } + else + { + if (((word >> 22) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxxx0011x100111 - st1d. */ - return 1781; + 111001x1000xxxxx101xxxxxxxxxxxxx + st1w. */ + return 1897; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxxx0111x100111 + 111001x1100xxxxx101xxxxxxxxxxxxx st1d. */ - return 1785; + return 1876; } } - } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 20) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxx00x01x10011x - st1w. */ - return 1810; - } else { - if (((word >> 22) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxx10001x10011x - stnt1w. */ - return 1844; + 111001x1010xxxxx101xxxxxxxxxxxxx + st1w. */ + return 1904; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxx10101x10011x - st3w. */ - return 1828; + 111001x1110xxxxx101xxxxxxxxxxxxx + st1d. */ + return 1880; } } } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx0xxxxx111xxxxxxxxxxxxx + facgt. */ + return 1378; + } else { - if (((word >> 31) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx0x11x100110 - facgt. */ - return 1332; + 111001x1xx00xxxx111xxxxxxxxxxxxx + st1w. */ + return 1905; } else { if (((word >> 22) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx0011x100111 - stnt1d. */ - return 1840; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x10001xxxx111xxxxxxxxxxxxx + stnt1w. */ + return 1939; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x11001xxxx111xxxxxxxxxxxxx + stnt1d. */ + return 1935; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx0111x100111 - st3d. */ - return 1824; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x10101xxxx111xxxxxxxxxxxxx + st3w. */ + return 1923; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x11101xxxx111xxxxxxxxxxxxx + st3d. */ + return 1919; + } } } } @@ -10449,9 +14794,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxx01000001xx1x100100 + 001001x1xx10000010xxxxxxxxxxxxxx cntp. */ - return 1301; + return 1347; } else { @@ -10463,35 +14808,35 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000x01000101xx1x100100 + 001001x1xx10100010x000xxxxxxxxxx sqincp. */ - return 1759; + return 1854; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx001x01000101xx1x100100 + 001001x1xx10100010x100xxxxxxxxxx wrffr. */ - return 1926; + return 2027; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xx01000101xx1x100100 + 001001x1xx10100010xx10xxxxxxxxxx sqincp. */ - return 1761; + return 1856; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1xxx01000101xx1x100100 + 001001x1xx10100010xxx1xxxxxxxxxx sqincp. */ - return 1760; + return 1855; } } } @@ -10503,26 +14848,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxx00x01001x01xx1x100100 + 001001x1xx10x10010x00xxxxxxxxxxx incp. */ - return 1420; + return 1485; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxx01x01001x01xx1x100100 + 001001x1xx10x10010x10xxxxxxxxxxx setffr. */ - return 1726; + return 1821; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxx1xx01001x01xx1x100100 + 001001x1xx10x10010xx1xxxxxxxxxxx incp. */ - return 1421; + return 1486; } } } @@ -10534,26 +14879,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00xx0101xx01xx1x100100 + 001001x1xx10xx1010xx00xxxxxxxxxx sqdecp. */ - return 1745; + return 1840; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xx0101xx01xx1x100100 + 001001x1xx10xx1010xx10xxxxxxxxxx sqdecp. */ - return 1747; + return 1842; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1xxx0101xx01xx1x100100 + 001001x1xx10xx1010xxx1xxxxxxxxxx sqdecp. */ - return 1746; + return 1841; } } } @@ -10569,26 +14914,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00xx01100x01xx1x100100 + 001001x1xx10x00110xx00xxxxxxxxxx uqincp. */ - return 1901; + return 2002; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00xx01101x01xx1x100100 + 001001x1xx10x10110xx00xxxxxxxxxx decp. */ - return 1314; + return 1360; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00xx0111xx01xx1x100100 + 001001x1xx10xx1110xx00xxxxxxxxxx uqdecp. */ - return 1887; + return 1988; } } else @@ -10599,26 +14944,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xx01100x01xx1x100100 + 001001x1xx10x00110xx10xxxxxxxxxx uqincp. */ - return 1902; + return 2003; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xx01101x01xx1x100100 + 001001x1xx10x10110xx10xxxxxxxxxx decp. */ - return 1315; + return 1361; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xx0111xx01xx1x100100 + 001001x1xx10xx1110xx10xxxxxxxxxx uqdecp. */ - return 1888; + return 1989; } } } @@ -10628,17 +14973,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1xxx0110xx01xx1x100100 + 001001x1xx10xx0110xxx1xxxxxxxxxx uqincp. */ - return 1903; + return 2004; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1xxx0111xx01xx1x100100 + 001001x1xx10xx1110xxx1xxxxxxxxxx uqdecp. */ - return 1889; + return 1990; } } } @@ -10651,17 +14996,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxx01xxxx01001x100101 + 101001x10010xxxx10xxxxxxxxxxxxxx ld1sh. */ - return 1505; + return 1578; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxx01xxxx01011x100101 + 101001x11010xxxx10xxxxxxxxxxxxxx ld1sb. */ - return 1492; + return 1565; } } else @@ -10670,17 +15015,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxx01xxxx01101x100101 + 101001x10110xxxx10xxxxxxxxxxxxxx ld1w. */ - return 1524; + return 1597; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxx01xxxx01111x100101 + 101001x11110xxxx10xxxxxxxxxxxxxx ld1d. */ - return 1452; + return 1517; } } } @@ -10693,17 +15038,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxx01xxxx11001x10010x + x01001x10011xxxx10xxxxxxxxxxxxxx ldnf1sh. */ - return 1622; + return 1711; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxx01xxxx11011x10010x + x01001x11011xxxx10xxxxxxxxxxxxxx ldnf1sb. */ - return 1619; + return 1708; } } else @@ -10712,17 +15057,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxx01xxxx11101x10010x + x01001x10111xxxx10xxxxxxxxxxxxxx ldnf1w. */ - return 1625; + return 1714; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxx01xxxx11111x10010x + x01001x11111xxxx10xxxxxxxxxxxxxx ldnf1d. */ - return 1614; + return 1703; } } } @@ -10743,17 +15088,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxx11000001xx1x100100 + 001001x1xx10000011xxxxxxxxxxxxxx add. */ - return 1228; + return 1274; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxx11000011xx1x100100 + 001001x1xx11000011xxxxxxxxxxxxxx mul. */ - return 1654; + return 1743; } } else @@ -10762,17 +15107,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxx11000101xx1x100100 + 001001x1xx10100011xxxxxxxxxxxxxx smax. */ - return 1727; + return 1822; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxx11000111xx1x100100 + 001001x1xx11100011xxxxxxxxxxxxxx dup. */ - return 1320; + return 1366; } } } @@ -10780,9 +15125,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxx11001xx1xx1x100100 + 001001x1xx1xx10011xxxxxxxxxxxxxx sqadd. */ - return 1736; + return 1831; } } else @@ -10791,17 +15136,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxx11010xx1xx1x100100 + 001001x1xx1xx01011xxxxxxxxxxxxxx smin. */ - return 1730; + return 1825; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxx11011xx1xx1x100100 + 001001x1xx1xx11011xxxxxxxxxxxxxx sqsub. */ - return 1766; + return 1861; } } } @@ -10815,9 +15160,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxx111000x1xx1x100100 + 001001x1xx1x000111xxxxxxxxxxxxxx sub. */ - return 1848; + return 1943; } else { @@ -10825,17 +15170,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxx11100101xx1x100100 + 001001x1xx10100111xxxxxxxxxxxxxx umax. */ - return 1870; + return 1971; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxx11100111xx1x100100 + 001001x1xx11100111xxxxxxxxxxxxxx fdup. */ - return 1366; + return 1422; } } } @@ -10843,9 +15188,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxx11101xx1xx1x100100 + 001001x1xx1xx10111xxxxxxxxxxxxxx uqadd. */ - return 1878; + return 1979; } } else @@ -10856,26 +15201,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxx111100x1xx1x100100 + 001001x1xx1x001111xxxxxxxxxxxxxx subr. */ - return 1850; + return 1945; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxx111101x1xx1x100100 + 001001x1xx1x101111xxxxxxxxxxxxxx umin. */ - return 1873; + return 1974; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxx11111xx1xx1x100100 + 001001x1xx1xx11111xxxxxxxxxxxxxx uqsub. */ - return 1908; + return 2009; } } } @@ -10890,17 +15235,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxx1001x100101 + 101001x1001xxxxx110xxxxxxxxxxxxx ld2w. */ - return 1532; + return 1605; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxx1011x100101 + 101001x1101xxxxx110xxxxxxxxxxxxx ld2d. */ - return 1528; + return 1601; } } else @@ -10909,17 +15254,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxx1101x100101 + 101001x1011xxxxx110xxxxxxxxxxxxx ld4w. */ - return 1548; + return 1621; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxx1111x100101 + 101001x1111xxxxx110xxxxxxxxxxxxx ld4d. */ - return 1544; + return 1617; } } } @@ -10931,17 +15276,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx1001x100101 + 101001x1001xxxxx111xxxxxxxxxxxxx ld2w. */ - return 1533; + return 1606; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx1011x100101 + 101001x1101xxxxx111xxxxxxxxxxxxx ld2d. */ - return 1529; + return 1602; } } else @@ -10950,17 +15295,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx1101x100101 + 101001x1011xxxxx111xxxxxxxxxxxxx ld4w. */ - return 1549; + return 1622; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx1111x100101 + 101001x1111xxxxx111xxxxxxxxxxxxx ld4d. */ - return 1545; + return 1618; } } } @@ -10971,53 +15316,53 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 13) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx0x1xxxxx1001x10011x - st1w. */ - return 1803; + 011001x1xx1xxxxx100xxxxxxxxxxxxx + fmad. */ + return 1424; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx0x1xxxxx1101x10011x - st1w. */ - return 1808; + 011001x1xx1xxxxx110xxxxxxxxxxxxx + fnmad. */ + return 1454; } } else { - if (((word >> 31) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - if (((word >> 14) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx001xxxxx1x11x100110 - fmad. */ - return 1368; + 111001x1001xxxxx1x0xxxxxxxxxxxxx + st1w. */ + return 1898; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx011xxxxx1x11x100110 - fnmad. */ - return 1389; + 111001x1101xxxxx1x0xxxxxxxxxxxxx + st1d. */ + return 1877; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx0x1xxxxx1x11x100111 - st1d. */ - return 1782; + 111001x1x11xxxxx1x0xxxxxxxxxxxxx + st1w. */ + return 1903; } } } @@ -11025,114 +15370,114 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 14) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxxx1001x10011x - st1w. */ - return 1804; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxxx1101x10011x - st1w. */ - return 1811; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx1xxxxx101xxxxxxxxxxxxx + fmsb. */ + return 1445; } else { - if (((word >> 31) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxxx1x11x100110 - fmsb. */ - return 1383; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1001xxxxx101xxxxxxxxxxxxx + st1w. */ + return 1899; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1101xxxxx101xxxxxxxxxxxxx + st1d. */ + return 1878; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx101xxxxx1x11x100111 - st1d. */ - return 1783; + 111001x1x11xxxxx101xxxxxxxxxxxxx + st1w. */ + return 1906; } } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx1xxxxx111xxxxxxxxxxxxx + fnmsb. */ + return 1457; + } + else { if (((word >> 20) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxx01x01x10011x - st1w. */ - return 1812; - } - else - { - if (((word >> 22) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxx11001x10011x - st2w. */ - return 1820; + 111001x10x10xxxx111xxxxxxxxxxxxx + st1w. */ + return 1907; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxx11101x10011x - st4w. */ - return 1836; + 111001x11x10xxxx111xxxxxxxxxxxxx + st1d. */ + return 1881; } } - } - else - { - if (((word >> 31) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxxx1x11x100110 - fnmsb. */ - return 1392; - } else { - if (((word >> 20) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxx01x11x100111 - st1d. */ - return 1786; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x10011xxxx111xxxxxxxxxxxxx + st2w. */ + return 1915; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x11011xxxx111xxxxxxxxxxxxx + st2d. */ + return 1911; + } } else { - if (((word >> 22) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxx11011x100111 - st2d. */ - return 1816; + 111001x10111xxxx111xxxxxxxxxxxxx + st4w. */ + return 1931; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx111xxxx11111x100111 + 111001x11111xxxx111xxxxxxxxxxxxx st4d. */ - return 1832; + return 1927; } } } @@ -11155,17 +15500,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxxxxx101000 + 000101xxxxxxxxxxxxxxxxxxxxxxxxxx b. */ - return 627; + return 636; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxxxxx101001 + 100101xxxxxxxxxxxxxxxxxxxxxxxxxx bl. */ - return 628; + return 637; } } else @@ -11180,9 +15525,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx0xxxxxxxxxxxxxxxxxxx00101010 + 01010100xxxxxxxxxxxxxxxxxxx0xxxx b.c. */ - return 648; + return 657; } else { @@ -11194,17 +15539,28 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 00xx0xxxxxxxxxxxxxxxx0xx00101011 + 11010100xx0xxxxxxxxxxxxxxxx0xx00 hlt. */ - return 739; + return 753; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 00xx0xxxxxxxxxxxxxxxx1xx00101011 - brk. */ - return 738; + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 11010100x01xxxxxxxxxxxxxxxx0xx00 + brk. */ + return 752; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 11010100x11xxxxxxxxxxxxxxxx0xx00 + tcancel. */ + return 1191; + } } } else @@ -11213,17 +15569,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 01xx0xxxxxxxxxxxxxxxx0xx00101011 + 11010100xx0xxxxxxxxxxxxxxxx0xx10 hvc. */ - return 736; + return 750; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 01xx0xxxxxxxxxxxxxxxx1xx00101011 + 11010100xx1xxxxxxxxxxxxxxxx0xx10 dcps2. */ - return 741; + return 755; } } } @@ -11235,17 +15591,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 10xx0xxxxxxxxxxxxxxxx0xx00101011 + 11010100xx0xxxxxxxxxxxxxxxx0xx01 svc. */ - return 735; + return 749; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 10xx0xxxxxxxxxxxxxxxx1xx00101011 + 11010100xx1xxxxxxxxxxxxxxxx0xx01 dcps1. */ - return 740; + return 754; } } else @@ -11254,17 +15610,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 11xx0xxxxxxxxxxxxxxxx0xx00101011 + 11010100xx0xxxxxxxxxxxxxxxx0xx11 smc. */ - return 737; + return 751; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 11xx0xxxxxxxxxxxxxxxx1xx00101011 + 11010100xx1xxxxxxxxxxxxxxxx0xx11 dcps3. */ - return 742; + return 756; } } } @@ -11280,26 +15636,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx0xxxxxxxxxxxxxxxx0000110101x + x1010110000xxxxxxxxxxxxxxxx0xxxx br. */ - return 629; + return 638; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx0xxxxxxxxxxxxxxxx0010110101x + x1010110100xxxxxxxxxxxxxxxx0xxxx eret. */ - return 632; + return 641; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx0xxxxxxxxxxxxxxxx01x0110101x + x1010110x10xxxxxxxxxxxxxxxx0xxxx ret. */ - return 631; + return 640; } } else @@ -11308,17 +15664,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx0xxxxxxxxxxxxxxxx1x00110101x + x10101100x1xxxxxxxxxxxxxxxx0xxxx blr. */ - return 630; + return 639; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx0xxxxxxxxxxxxxxxx1x10110101x + x10101101x1xxxxxxxxxxxxxxxx0xxxx drps. */ - return 633; + return 642; } } } @@ -11335,35 +15691,35 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx1xxxxx0xxxxxxxxxx0000x10101x + x10101x0000xxxxxxxxxx0xxxxx1xxxx braaz. */ - return 638; + return 647; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx1xxxxx0xxxxxxxxxx0010x10101x + x10101x0100xxxxxxxxxx0xxxxx1xxxx eretaa. */ - return 644; + return 653; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx1xxxxx0xxxxxxxxxx01x0x10101x + x10101x0x10xxxxxxxxxx0xxxxx1xxxx retaa. */ - return 642; + return 651; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx1xxxxx0xxxxxxxxxx1xx0x10101x + x10101x0xx1xxxxxxxxxx0xxxxx1xxxx blraaz. */ - return 640; + return 649; } } else @@ -11376,35 +15732,35 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx1xxxxx1xxxxxxxxxx0000x10101x + x10101x0000xxxxxxxxxx1xxxxx1xxxx brabz. */ - return 639; + return 648; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx1xxxxx1xxxxxxxxxx0010x10101x + x10101x0100xxxxxxxxxx1xxxxx1xxxx eretab. */ - return 645; + return 654; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx1xxxxx1xxxxxxxxxx01x0x10101x + x10101x0x10xxxxxxxxxx1xxxxx1xxxx retab. */ - return 643; + return 652; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxx1xxxxx1xxxxxxxxxx1xx0x10101x + x10101x0xx1xxxxxxxxxx1xxxxx1xxxx blrabz. */ - return 641; + return 650; } } } @@ -11417,9 +15773,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx0xx1010101x - msr. */ - return 1154; + x1010101xx0xxxxxxxxxxxxxxxxxxxxx + xaflag. */ + return 810; } else { @@ -11427,17 +15783,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0xxxxxxxxxx0xx1110101x + x1010111xx0xxxxxxxxxx0xxxxxxxxxx braa. */ - return 634; + return 643; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1xxxxxxxxxx0xx1110101x + x1010111xx0xxxxxxxxxx1xxxxxxxxxx brab. */ - return 635; + return 644; } } } @@ -11447,9 +15803,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx1xx1010101x - sysl. */ - return 1179; + x1010101xx1xxxxxxxxxxxxxxxxxxxxx + tstart. */ + return 1188; } else { @@ -11457,17 +15813,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0xxxxxxxxxx1xx1110101x + x1010111xx1xxxxxxxxxx0xxxxxxxxxx blraa. */ - return 636; + return 645; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1xxxxxxxxxx1xx1110101x + x1010111xx1xxxxxxxxxx1xxxxxxxxxx blrab. */ - return 637; + return 646; } } } @@ -11482,17 +15838,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxxx001011xx + xx110100xxxxxxxxxxxxxxxxxxxxxxxx cbz. */ - return 646; + return 655; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxxx011011xx + xx110110xxxxxxxxxxxxxxxxxxxxxxxx tbz. */ - return 1189; + return 1235; } } else @@ -11501,17 +15857,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxxx101011xx + xx110101xxxxxxxxxxxxxxxxxxxxxxxx cbnz. */ - return 647; + return 656; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxxx111011xx + xx110111xxxxxxxxxxxxxxxxxxxxxxxx tbnz. */ - return 1190; + return 1236; } } } @@ -11533,17 +15889,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx00001100xx + xx00110000xxxxxxxxxxxxxxxxxxxxxx st4. */ - return 431; + return 440; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx00001101xx + xx10110000xxxxxxxxxxxxxxxxxxxxxx stnp. */ - return 940; + return 972; } } else @@ -11556,17 +15912,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx0xxxxxxx000101100xx + xx001101000xxxxxxx0xxxxxxxxxxxxx st1. */ - return 447; + return 456; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx0xxxxxxx100101100xx + xx001101001xxxxxxx0xxxxxxxxxxxxx st2. */ - return 449; + return 458; } } else @@ -11575,17 +15931,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx1xxxxxxx000101100xx + xx001101000xxxxxxx1xxxxxxxxxxxxx st3. */ - return 448; + return 457; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx1xxxxxxx100101100xx + xx001101001xxxxxxx1xxxxxxxxxxxxx st4. */ - return 450; + return 459; } } } @@ -11593,9 +15949,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx00101101xx + xx10110100xxxxxxxxxxxxxxxxxxxxxx stp. */ - return 944; + return 976; } } } @@ -11609,9 +15965,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx001001100xx + xx001100100xxxxxxxxxxxxxxxxxxxxx st4. */ - return 439; + return 448; } else { @@ -11619,17 +15975,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx0xxxxxxx001101100xx + xx001101100xxxxxxx0xxxxxxxxxxxxx st1. */ - return 459; + return 468; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx1xxxxxxx001101100xx + xx001101100xxxxxxx1xxxxxxxxxxxxx st3. */ - return 460; + return 469; } } } @@ -11639,17 +15995,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx0xxxxxxx101x01100xx + xx00110x101xxxxxxx0xxxxxxxxxxxxx st2. */ - return 461; + return 470; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx1xxxxxxx101x01100xx + xx00110x101xxxxxxx1xxxxxxxxxxxxx st4. */ - return 462; + return 471; } } } @@ -11657,9 +16013,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx01x01101xx + xx10110x10xxxxxxxxxxxxxxxxxxxxxx stp. */ - return 949; + return 982; } } } @@ -11673,17 +16029,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx10001100xx + xx00110001xxxxxxxxxxxxxxxxxxxxxx ld4. */ - return 435; + return 444; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx10001101xx + xx10110001xxxxxxxxxxxxxxxxxxxxxx ldnp. */ - return 941; + return 973; } } else @@ -11696,17 +16052,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx0xxxxxxx010101100xx + xx001101010xxxxxxx0xxxxxxxxxxxxx ld1. */ - return 451; + return 460; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx0xxxxxxx110101100xx + xx001101011xxxxxxx0xxxxxxxxxxxxx ld2. */ - return 455; + return 464; } } else @@ -11715,17 +16071,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx1xxxxxxx010101100xx + xx001101010xxxxxxx1xxxxxxxxxxxxx ld3. */ - return 452; + return 461; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx1xxxxxxx110101100xx + xx001101011xxxxxxx1xxxxxxxxxxxxx ld4. */ - return 456; + return 465; } } } @@ -11733,9 +16089,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx10101101xx + xx10110101xxxxxxxxxxxxxxxxxxxxxx ldp. */ - return 945; + return 977; } } } @@ -11749,9 +16105,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx011001100xx + xx001100110xxxxxxxxxxxxxxxxxxxxx ld4. */ - return 443; + return 452; } else { @@ -11759,17 +16115,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx0xxxxxxx011101100xx + xx001101110xxxxxxx0xxxxxxxxxxxxx ld1. */ - return 463; + return 472; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx1xxxxxxx011101100xx + xx001101110xxxxxxx1xxxxxxxxxxxxx ld3. */ - return 464; + return 473; } } } @@ -11779,17 +16135,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx0xxxxxxx111x01100xx + xx00110x111xxxxxxx0xxxxxxxxxxxxx ld2. */ - return 467; + return 476; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx1xxxxxxx111x01100xx + xx00110x111xxxxxxx1xxxxxxxxxxxxx ld4. */ - return 468; + return 477; } } } @@ -11797,9 +16153,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx11x01101xx + xx10110x11xxxxxxxxxxxxxxxxxxxxxx ldp. */ - return 950; + return 983; } } } @@ -11812,9 +16168,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxxx001110xx + xx011100xxxxxxxxxxxxxxxxxxxxxxxx ldr. */ - return 953; + return 987; } else { @@ -11826,17 +16182,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxxx0x001111xx + xx111100x0xxxxxxxxxx00xxxxxxxxxx stur. */ - return 896; + return 924; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxxx1x001111xx + xx111100x1xxxxxxxxxx00xxxxxxxxxx ldur. */ - return 897; + return 925; } } else @@ -11845,17 +16201,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxxx0x001111xx + xx111100x0xxxxxxxxxx10xxxxxxxxxx str. */ - return 875; + return 903; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxxx1x001111xx + xx111100x1xxxxxxxxxx10xxxxxxxxxx ldr. */ - return 876; + return 904; } } } @@ -11865,17 +16221,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1xxxxxxxxxxx0x001111xx + xx111100x0xxxxxxxxxxx1xxxxxxxxxx str. */ - return 852; + return 872; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1xxxxxxxxxxx1x001111xx + xx111100x1xxxxxxxxxxx1xxxxxxxxxx ldr. */ - return 853; + return 873; } } } @@ -11886,17 +16242,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx0x10111xxx + xxx11101x0xxxxxxxxxxxxxxxxxxxxxx str. */ - return 863; + return 891; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx1x10111xxx + xxx11101x1xxxxxxxxxxxxxxxxxxxxxx ldr. */ - return 864; + return 892; } } } @@ -11909,168 +16265,94 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 28) & 0x1) == 0) { - if (((word >> 10) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - if (((word >> 11) & 0x1) == 0) - { - if (((word >> 12) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000xxxxxxxx0xx011100xx - tbl. */ - return 411; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx001xxxxxxxx0xx011100xx - tbx. */ - return 412; - } - } - else + if (((word >> 10) & 0x1) == 0) { - if (((word >> 12) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - if (((word >> 14) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx010x0xxxxxx0xx011100xx - trn1. */ - return 256; + 0x001110xx0xxxxxxxx000xxxxxxxxxx + tbl. */ + return 420; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx010x1xxxxxx0xx011100xx - trn2. */ - return 259; + 0x001110xx0xxxxxxxx100xxxxxxxxxx + tbx. */ + return 421; } } else { - if (((word >> 13) & 0x1) == 0) - { - if (((word >> 14) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01100xxxxxx0xx011100xx - uzp1. */ - return 255; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01101xxxxxx0xx011100xx - uzp2. */ - return 258; - } - } - else + if (((word >> 12) & 0x1) == 0) { if (((word >> 14) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01110xxxxxx0xx011100xx - zip1. */ - return 257; + 0x001110xx0xxxxxx0x010xxxxxxxxxx + trn1. */ + return 263; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01111xxxxxx0xx011100xx - zip2. */ - return 260; + 0x001110xx0xxxxxx1x010xxxxxxxxxx + trn2. */ + return 266; } } - } - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0xxxxxxxxxx0xx011101xx - ext. */ - return 129; - } - } - else - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 22) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 11) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx10xxx0xxxxx00x011100xx - dup. */ - return 146; - } else { - if (((word >> 12) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 13) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1100x0xxxxx00x011100xx - dup. */ - return 147; + 0x001110xx0xxxxxx00110xxxxxxxxxx + uzp1. */ + return 262; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1101x0xxxxx00x011100xx - smov. */ - return 148; + 0x001110xx0xxxxxx10110xxxxxxxxxx + uzp2. */ + return 265; } } else { - if (((word >> 13) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1110x0xxxxx00x011100xx - ins. */ - return 151; + 0x001110xx0xxxxxx01110xxxxxxxxxx + zip1. */ + return 264; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1111x0xxxxx00x011100xx - umov. */ - return 149; + 0x001110xx0xxxxxx11110xxxxxxxxxx + zip2. */ + return 267; } } } } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1xxxx0xxxxx00x011101xx - ins. */ - return 153; - } } else { @@ -12080,73 +16362,51 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 13) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1000x0xxxxx010011100xx - fmaxnm. */ - return 285; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1000x0xxxxx010011101xx - fmaxnmp. */ - return 336; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110x00xxxxxxx0001xxxxxxxxxx + dup. */ + return 149; } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1000x0xxxxx011011100xx - fminnm. */ - return 301; + 0x001110010xxxxxxx0001xxxxxxxxxx + fmaxnm. */ + return 292; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1000x0xxxxx011011101xx - fminnmp. */ - return 352; + 0x001110110xxxxxxx0001xxxxxxxxxx + fminnm. */ + return 308; } } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 15) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1001x0xxxxx010011100xx - fcmeq. */ - return 293; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1001x0xxxxx010011101xx - fcmge. */ - return 342; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx0xxxxx0x1001xxxxxxxxxx + fcmeq. */ + return 300; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1001x0xxxxx01101110xxx - fcmgt. */ - return 356; + 0x001110xx0xxxxx1x1001xxxxxxxxxx + smmla. */ + return 2413; } } } @@ -12154,84 +16414,51 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 13) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 15) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1010x0xxxxx010011100xx + 0x0011100x0xxxxx0x0101xxxxxxxxxx fadd. */ - return 289; + return 296; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1010x0xxxxx010011101xx - faddp. */ - return 338; + 0x0011101x0xxxxx0x0101xxxxxxxxxx + fsub. */ + return 312; } } else { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1010x0xxxxx011011100xx - fsub. */ - return 305; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1010x0xxxxx011011101xx - fabd. */ - return 354; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx0xxxxx1x0101xxxxxxxxxx + sdot. */ + return 2337; } } else { if (((word >> 23) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1011x0xxxxx010011100xx - fmax. */ - return 295; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1011x0xxxxx010011101xx - fmaxp. */ - return 346; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0011100x0xxxxxxx1101xxxxxxxxxx + fmax. */ + return 302; } else { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1011x0xxxxx011011100xx - fmin. */ - return 307; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1011x0xxxxx011011101xx - fminp. */ - return 360; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0011101x0xxxxxxx1101xxxxxxxxxx + fmin. */ + return 314; } } } @@ -12242,40 +16469,51 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 13) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1100x0xxxxx01001110xxx - fmla. */ - return 287; + 0x001110x00xxxxxxx0011xxxxxxxxxx + dup. */ + return 150; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1100x0xxxxx01101110xxx - fmls. */ - return 303; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110010xxxxxxx0011xxxxxxxxxx + fmla. */ + return 294; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110110xxxxxxx0011xxxxxxxxxx + fmls. */ + return 310; + } } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 15) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1101x0xxxxx01001110xxx - facge. */ - return 344; + 0x001110xx0xxxxx0x1011xxxxxxxxxx + smov. */ + return 151; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1101x0xxxxx01101110xxx - facgt. */ - return 358; + 0x001110xx0xxxxx1x1011xxxxxxxxxx + usmmla. */ + return 2415; } } } @@ -12283,52 +16521,63 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 13) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 15) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1110x0xxxxx01x011100xx - fmulx. */ - return 291; + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110x00xxxxx0x0111xxxxxxxxxx + ins. */ + return 154; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110x10xxxxx0x0111xxxxxxxxxx + fmulx. */ + return 298; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1110x0xxxxx01x011101xx - fmul. */ - return 340; + 0x001110xx0xxxxx1x0111xxxxxxxxxx + usdot. */ + return 2416; } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110x00xxxxxxx1111xxxxxxxxxx + umov. */ + return 152; + } + else + { + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1111x0xxxxx010011100xx + 0x001110010xxxxxxx1111xxxxxxxxxx frecps. */ - return 297; + return 304; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1111x0xxxxx010011101xx - fdiv. */ - return 348; + 0x001110110xxxxxxx1111xxxxxxxxxx + frsqrts. */ + return 316; } } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1111x0xxxxx01101110xxx - frsqrts. */ - return 309; - } } } } @@ -12336,194 +16585,95 @@ aarch64_opcode_lookup_1 (uint32_t word) } else { - if (((word >> 11) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx10xxx1xxxxx0xx01110xxx - sqrdmlah. */ - return 363; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx11xxx1xxxxx0xx01110xxx - sqrdmlsh. */ - return 364; - } - } - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - if (((word >> 16) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - if (((word >> 17) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxx00xxx0xx0111100x - fcvtzs. */ - return 749; + 1x001110000xxxxxxxxxxxxxxxxxxxxx + eor3. */ + return 2344; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxx01xxx0xx0111100x - scvtf. */ - return 745; + 1x001110100xxxxxxxxxxxxxxxxxxxxx + xar. */ + return 2346; } } else { - if (((word >> 17) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxx10xxx0xx0111100x - fcvtzu. */ - return 751; - } - else + if (((word >> 15) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxx11xxx0xx0111100x - ucvtf. */ - return 747; - } - } - } - else - { - if (((word >> 10) & 0x1) == 0) - { - if (((word >> 12) & 0x1) == 0) - { - if (((word >> 13) & 0x1) == 0) - { - if (((word >> 14) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x000xxxxxx0xx0111101x - sha1c. */ - return 669; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x001xxxxxx0xx0111101x - sha256h. */ - return 673; - } - } - else - { - if (((word >> 14) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x010xxxxxx0xx0111101x - sha1m. */ - return 671; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x011xxxxxx0xx0111101x - sha256su1. */ - return 675; - } - } + 1x001110x10xxxxx0xxxxxxxxxxxxxxx + sm3ss1. */ + return 2348; } else { - if (((word >> 13) & 0x1) == 0) + if (((word >> 10) & 0x1) == 0) { - if (((word >> 14) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x100xxxxxx0xx0111101x - sha1p. */ - return 670; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001110010xxxxx1xxx00xxxxxxxxxx + sm3tt1a. */ + return 2349; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001110110xxxxx1xxx00xxxxxxxxxx + sha512su0. */ + return 2342; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x101xxxxxx0xx0111101x - sha256h2. */ - return 674; + 1x001110x10xxxxx1xxx10xxxxxxxxxx + sm3tt2a. */ + return 2351; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x11xxxxxxx0xx0111101x - sha1su0. */ - return 672; - } - } - } - else - { - if (((word >> 11) & 0x1) == 0) - { - if (((word >> 13) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx10x0xxxxxxx0xx0111101x - dup. */ - return 526; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx10x1xxxxxxx0xx0111101x - fcmeq. */ - return 547; - } - } - else - { - if (((word >> 13) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx11x0xxxxxxx0xx0111101x - fmulx. */ - return 545; - } - else - { - if (((word >> 23) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx11x1xxxxxxx0x00111101x - frecps. */ - return 549; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001110010xxxxx1xxx01xxxxxxxxxx + sm3tt1b. */ + return 2350; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001110110xxxxx1xxx01xxxxxxxxxx + sm4e. */ + return 2355; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx11x1xxxxxxx0x10111101x - frsqrts. */ - return 551; + 1x001110x10xxxxx1xxx11xxxxxxxxxx + sm3tt2b. */ + return 2352; } } } @@ -12532,427 +16682,239 @@ aarch64_opcode_lookup_1 (uint32_t word) } else { - if (((word >> 11) & 0x1) == 0) + if (((word >> 10) & 0x1) == 0) { - if (((word >> 12) & 0x1) == 0) - { - if (((word >> 13) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxx000xxxxxxx0xx011111xx - sqrdmlah. */ - return 579; - } - else - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxx001xxxxxxx0x0011111xx - fcmge. */ - return 564; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxx001xxxxxxx0x1011111xx - fcmgt. */ - return 570; - } - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxx01xxxxxxxx0xx011111xx - fabd. */ - return 568; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx0xxxxxxxxxx0xxxxxxxxxx + ext. */ + return 132; } else { - if (((word >> 13) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxx1x0xxxxxxx0xx011111xx - sqrdmlsh. */ - return 580; - } - else + if (((word >> 15) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxx1x1xxxxxxx0x0011111xx - facge. */ - return 566; + xx101110x00xxxxx0xxxx1xxxxxxxxxx + ins. */ + return 156; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxx1x1xxxxxxx0x1011111xx - facgt. */ - return 572; - } - } - } - } - } - } - else - { - if (((word >> 10) & 0x1) == 0) - { - if (((word >> 11) & 0x1) == 0) - { - if (((word >> 12) & 0x1) == 0) - { - if (((word >> 13) & 0x1) == 0) - { - if (((word >> 14) & 0x1) == 0) - { - if (((word >> 15) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000000xxxxx1xx0111000x - saddl. */ - return 42; + xx101110010xxxxx0x0001xxxxxxxxxx + fmaxnmp. */ + return 343; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000000xxxxx1xx0111001x - saddl2. */ - return 43; + xx101110110xxxxx0x0001xxxxxxxxxx + fminnmp. */ + return 359; } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000000xxxxx1xx0111010x - uaddl. */ - return 74; + xx101110010xxxxx0x1001xxxxxxxxxx + fcmge. */ + return 349; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000000xxxxx1xx0111011x - uaddl2. */ - return 75; + xx101110110xxxxx0x1001xxxxxxxxxx + fcmgt. */ + return 363; } } } else { - if (((word >> 16) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 17) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) - { - if (((word >> 19) & 0x1) == 0) - { - if (((word >> 20) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000000000001xx01111xxx - fcvtns. */ - return 753; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000000000011xx01111xxx - fcvtms. */ - return 773; - } - } - else - { - if (((word >> 20) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000000000101xx01111xxx - fcvtps. */ - return 769; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000000000111xx01111xxx - fcvtzs. */ - return 777; - } - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000000001xx1xx01111xxx - fcvtas. */ - return 761; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110010xxxxx0x0101xxxxxxxxxx + faddp. */ + return 345; } else { - if (((word >> 18) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000000010xx1xx01111xxx - scvtf. */ - return 757; - } - else - { - if (((word >> 19) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0000000110x1xx01111xxx - fmov. */ - return 765; - } - else - { - if (((word >> 20) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000000011101xx01111xxx - fmov. */ - return 781; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000000011111xx01111xxx - fjcvtzs. */ - return 783; - } - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110110xxxxx0x0101xxxxxxxxxx + fabd. */ + return 361; } } else { - if (((word >> 17) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) - { - if (((word >> 19) & 0x1) == 0) - { - if (((word >> 20) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000000100001xx01111xxx - fcvtnu. */ - return 755; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000000100011xx01111xxx - fcvtmu. */ - return 775; - } - } - else - { - if (((word >> 20) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000000100101xx01111xxx - fcvtpu. */ - return 771; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000000100111xx01111xxx - fcvtzu. */ - return 779; - } - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000000101xx1xx01111xxx - fcvtau. */ - return 763; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110010xxxxx0x1101xxxxxxxxxx + fmaxp. */ + return 353; } else { - if (((word >> 18) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000000110xx1xx01111xxx - ucvtf. */ - return 759; - } - else - { - if (((word >> 19) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0000001110x1xx01111xxx - fmov. */ - return 767; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0000001111x1xx01111xxx - fmov. */ - return 782; - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110110xxxxx0x1101xxxxxxxxxx + fminp. */ + return 367; } } } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000001xxxxx1xx0111x00x - smlal. */ - return 58; + xx101110010xxxxx0xx011xxxxxxxxxx + facge. */ + return 351; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000001xxxxx1xx0111x01x - smlal2. */ - return 59; + xx101110110xxxxx0xx011xxxxxxxxxx + facgt. */ + return 365; } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110x10xxxxx0x0111xxxxxxxxxx + fmul. */ + return 347; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110x10xxxxx0x1111xxxxxxxxxx + fdiv. */ + return 355; + } + } + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000001xxxxx1xx0111x10x - umlal. */ - return 90; + xx101110xx0xxxxx100001xxxxxxxxxx + sqrdmlah. */ + return 370; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000001xxxxx1xx0111x11x - umlal2. */ - return 91; + xx101110xx0xxxxx100101xxxxxxxxxx + udot. */ + return 2336; } } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx0xxxxx100x11xxxxxxxxxx + sqrdmlsh. */ + return 371; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx0xxxxx110xx1xxxxxxxxxx + fcmla. */ + return 372; } } else { - if (((word >> 28) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - if (((word >> 15) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000010xxxxx1xx0111000x - addhn. */ - return 50; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000010xxxxx1xx0111001x - addhn2. */ - return 51; - } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000010xxxxx1xx0111010x - raddhn. */ - return 82; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000010xxxxx1xx0111011x - raddhn2. */ - return 83; - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx0xxxxx101x01xxxxxxxxxx + ummla. */ + return 2414; } else { - if (((word >> 29) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx0xxxxx111x01xxxxxxxxxx + fcadd. */ + return 373; + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx0xxxxx1x1011xxxxxxxxxx + bfmmla. */ + return 2430; + } + else + { + if (((word >> 23) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000011xxxxx1xx0111000x - smull. */ - return 66; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000011xxxxx1xx0111001x - smull2. */ - return 67; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x0xxxxx1x1111xxxxxxxxxx + bfdot. */ + return 2428; } else { @@ -12960,606 +16922,915 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000011xxxxx1xx0111010x - umull. */ - return 94; + x01011101x0xxxxx1x1111xxxxxxxxxx + bfmlalb. */ + return 2435; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000011xxxxx1xx0111011x - umull2. */ - return 95; + x11011101x0xxxxx1x1111xxxxxxxxxx + bfmlalt. */ + return 2434; } } } } - else + } + } + } + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 17) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011110xx0xxx00xxxxxxxxxxxxxxxx + fcvtzs. */ + return 763; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011110xx0xxx10xxxxxxxxxxxxxxxx + scvtf. */ + return 759; + } + } + else + { + if (((word >> 17) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011110xx0xxx01xxxxxxxxxxxxxxxx + fcvtzu. */ + return 765; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011110xx0xxx11xxxxxxxxxxxxxxxx + ucvtf. */ + return 761; + } + } + } + else + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx0xxxxxx000x0xxxxxxxxxx + sha1c. */ + return 678; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx0xxxxxx100x0xxxxxxxxxx + sha256h. */ + return 682; + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx0xxxxxx010x0xxxxxxxxxx + sha1m. */ + return 680; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx0xxxxxx110x0xxxxxxxxxx + sha256su1. */ + return 684; + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx0xxxxxx001x0xxxxxxxxxx + sha1p. */ + return 679; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx0xxxxxx101x0xxxxxxxxxx + sha256h2. */ + return 683; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx0xxxxxxx11x0xxxxxxxxxx + sha1su0. */ + return 681; + } + } + } + else + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx0xxxxxxx0x01xxxxxxxxxx + dup. */ + return 535; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx0xxxxxxx1x01xxxxxxxxxx + fcmeq. */ + return 556; + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx0xxxxxxx0x11xxxxxxxxxx + fmulx. */ + return 554; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10111100x0xxxxxxx1x11xxxxxxxxxx + frecps. */ + return 558; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10111101x0xxxxxxx1x11xxxxxxxxxx + frsqrts. */ + return 560; + } + } + } + } + } + } + else + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx0xxxxxxx000xxxxxxxxxxx + sqrdmlah. */ + return 588; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111100x0xxxxxxx100xxxxxxxxxxx + fcmge. */ + return 573; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111101x0xxxxxxx100xxxxxxxxxxx + fcmgt. */ + return 579; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx0xxxxxxxx10xxxxxxxxxxx + fabd. */ + return 577; + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx0xxxxxxx0x1xxxxxxxxxxx + sqrdmlsh. */ + return 589; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111100x0xxxxxxx1x1xxxxxxxxxxx + facge. */ + return 575; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111101x0xxxxxxx1x1xxxxxxxxxxx + facgt. */ + return 581; + } + } + } + } + } + } + else + { + if (((word >> 28) & 0x1) == 0) + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) { - if (((word >> 17) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - if (((word >> 15) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 16) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000010000xx1xx01111xxx - fmov. */ - return 796; + 00001110xx1xxxxx000000xxxxxxxxxx + saddl. */ + return 44; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000010001xx1xx01111xxx - frintn. */ - return 805; + 01001110xx1xxxxx000000xxxxxxxxxx + saddl2. */ + return 45; } } else { - if (((word >> 18) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000010100xx1xx01111xxx - fneg. */ - return 800; + 00001110xx1xxxxx010000xxxxxxxxxx + addhn. */ + return 52; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000010101xx1xx01111xxx - frintm. */ - return 809; + 01001110xx1xxxxx010000xxxxxxxxxx + addhn2. */ + return 53; } } } else { - if (((word >> 16) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000011000xx1xx01111xxx - fabs. */ - return 798; + 00001110xx1xxxxx001000xxxxxxxxxx + ssubl. */ + return 48; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000011001xx1xx01111xxx - frintp. */ - return 807; + 01001110xx1xxxxx001000xxxxxxxxxx + ssubl2. */ + return 49; } } else { - if (((word >> 18) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000011100xx1xx01111xxx - fsqrt. */ - return 802; + 00001110xx1xxxxx011000xxxxxxxxxx + subhn. */ + return 56; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000011101xx1xx01111xxx - frintz. */ - return 811; + 01001110xx1xxxxx011000xxxxxxxxxx + subhn2. */ + return 57; } } } } else { - if (((word >> 18) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00001xx10xx1xx01111xxx - fcvt. */ - return 804; - } - else + if (((word >> 13) & 0x1) == 0) { - if (((word >> 15) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 16) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000010011xx1xx01111xxx - frinta. */ - return 813; + 00001110xx1xxxxx000100xxxxxxxxxx + saddw. */ + return 46; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000010111xx1xx01111xxx - frintx. */ - return 815; + 01001110xx1xxxxx000100xxxxxxxxxx + saddw2. */ + return 47; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000011x11xx1xx01111xxx - frinti. */ - return 817; - } - } - } - } - } - } - else - { - if (((word >> 14) & 0x1) == 0) - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000100xxxxx1xx0111000x - ssubl. */ - return 46; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000100xxxxx1xx0111001x - ssubl2. */ - return 47; - } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000100xxxxx1xx0111010x - usubl. */ - return 78; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000100xxxxx1xx0111011x - usubl2. */ - return 79; - } - } - } - else - { - if (((word >> 3) & 0x1) == 0) - { - if (((word >> 4) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx00xxxxx000100xxxxx1xx01111xxx - fcmp. */ - return 788; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx01xxxxx000100xxxxx1xx01111xxx - fcmpe. */ - return 790; - } - } - else - { - if (((word >> 4) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx10xxxxx000100xxxxx1xx01111xxx - fcmp. */ - return 792; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11xxxxx000100xxxxx1xx01111xxx - fcmpe. */ - return 794; - } - } - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000101xxxxx1xx0111x00x - smlsl. */ - return 62; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000101xxxxx1xx0111x01x - smlsl2. */ - return 63; - } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000101xxxxx1xx0111x10x - umlsl. */ - return 92; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000101xxxxx1xx0111x11x - umlsl2. */ - return 93; - } - } - } - } - else - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000110xxxxx1xx0111x00x - subhn. */ - return 54; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000110xxxxx1xx0111x01x - subhn2. */ - return 55; - } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000110xxxxx1xx0111x10x - rsubhn. */ - return 86; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000110xxxxx1xx0111x11x - rsubhn2. */ - return 87; - } - } - } - else - { - if (((word >> 22) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000111xxxxx10x0111xx0x - pmull. */ - return 70; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000111xxxxx10x0111xx1x - pmull2. */ - return 72; - } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000111xxxxx11x0111xx0x - pmull. */ - return 71; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxxx010100xxxxxxxxxx + sabal. */ + return 54; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxxx010100xxxxxxxxxx + sabal2. */ + return 55; + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000111xxxxx11x0111xx1x - pmull2. */ - return 73; + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxxx001100xxxxxxxxxx + ssubw. */ + return 50; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxxx001100xxxxxxxxxx + ssubw2. */ + return 51; + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxxx011100xxxxxxxxxx + sabdl. */ + return 58; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxxx011100xxxxxxxxxx + sabdl2. */ + return 59; + } + } } } } - } - } - } - else - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 13) & 0x1) == 0) - { - if (((word >> 14) & 0x1) == 0) + else { - if (((word >> 15) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx001000xxxxx1xx0111000x - saddw. */ - return 44; + 0x001110xx1xxxxx000010xxxxxxxxxx + rev64. */ + return 162; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx001000xxxxx1xx0111001x - saddw2. */ - return 45; + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1x0xx0010010xxxxxxxxxx + cls. */ + return 166; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1x1xx0010010xxxxxxxxxx + aese. */ + return 671; + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxx1010010xxxxxxxxxx + sqxtn. */ + return 176; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxx1010010xxxxxxxxxx + sqxtn2. */ + return 177; + } + } } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx001000xxxxx1xx0111010x - uaddw. */ - return 76; + if (((word >> 16) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxx0001010xxxxxxxxxx + saddlp. */ + return 164; + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxx1001010xxxxxxxxxx + xtn. */ + return 174; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxx1001010xxxxxxxxxx + xtn2. */ + return 175; + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx001000xxxxx1xx0111011x - uaddw2. */ - return 77; + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1x0xx0011010xxxxxxxxxx + sadalp. */ + return 168; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1x1xx0011010xxxxxxxxxx + aesmc. */ + return 673; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000011100x1xxxx1011010xxxxxxxxxx + fcvtn. */ + return 178; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010011100x1xxxx1011010xxxxxxxxxx + fcvtn2. */ + return 179; + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000011101x1xxxx1011010xxxxxxxxxx + bfcvtn. */ + return 2431; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010011101x1xxxx1011010xxxxxxxxxx + bfcvtn2. */ + return 2432; + } + } + } } } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx001001xxxxx1xx01110x0x - sqdmlal. */ - return 60; + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx000110xxxxxxxxxx + rev16. */ + return 163; + } + else + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1x0xxx010110xxxxxxxxxx + cnt. */ + return 167; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1x1xxx010110xxxxxxxxxx + aesd. */ + return 672; + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx001001xxxxx1xx01110x1x - sqdmlal2. */ - return 61; + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx10xxxx001110xxxxxxxxxx + suqadd. */ + return 165; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx11xxxx001110xxxxxxxxxx + saddlv. */ + return 29; + } + } + else + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1x0xx0011110xxxxxxxxxx + sqabs. */ + return 169; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1x1xx0011110xxxxxxxxxx + aesimc. */ + return 674; + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxx1011110xxxxxxxxxx + fcvtl. */ + return 180; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxx1011110xxxxxxxxxx + fcvtl2. */ + return 181; + } + } + } } } } - else + } + else + { + if (((word >> 11) & 0x1) == 0) { - if (((word >> 15) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx001010xxxxx1xx0111000x - sabal. */ - return 52; + 0x001110xx1xxxxx000001xxxxxxxxxx + shadd. */ + return 268; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx001010xxxxx1xx0111001x - sabal2. */ - return 53; + 0x001110xx1xxxxx010001xxxxxxxxxx + sshl. */ + return 275; } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx001010xxxxx1xx0111010x - uabal. */ - return 84; + 0x001110xx1xxxxx001001xxxxxxxxxx + shsub. */ + return 271; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx001010xxxxx1xx0111011x - uabal2. */ - return 85; + 0x001110xx1xxxxx011001xxxxxxxxxx + smax. */ + return 279; } } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx001011xxxxx1xx01110x0x - sqdmull. */ - return 68; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx001011xxxxx1xx01110x1x - sqdmull2. */ - return 69; - } - } - } - } - else - { - if (((word >> 14) & 0x1) == 0) - { - if (((word >> 15) & 0x1) == 0) + } + else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx001100xxxxx1xx0111000x - ssubw. */ - return 48; + 0x001110xx1xxxxx000101xxxxxxxxxx + srhadd. */ + return 270; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx001100xxxxx1xx0111001x - ssubw2. */ - return 49; + 0x001110xx1xxxxx010101xxxxxxxxxx + srshl. */ + return 277; } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx001100xxxxx1xx0111010x - usubw. */ - return 80; + 0x001110xx1xxxxx001101xxxxxxxxxx + cmgt. */ + return 273; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx001100xxxxx1xx0111011x - usubw2. */ - return 81; + 0x001110xx1xxxxx011101xxxxxxxxxx + sabd. */ + return 281; } } } - else - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx001101xxxxx1xx01110x0x - sqdmlsl. */ - return 64; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx001101xxxxx1xx01110x1x - sqdmlsl2. */ - return 65; - } - } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00111xxxxxx1xx0111000x - sabdl. */ - return 56; + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx000011xxxxxxxxxx + sqadd. */ + return 269; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx010011xxxxxxxxxx + sqshl. */ + return 276; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00111xxxxxx1xx0111001x - sabdl2. */ - return 57; + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx001011xxxxxxxxxx + sqsub. */ + return 272; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx011011xxxxxxxxxx + smin. */ + return 280; + } } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00111xxxxxx1xx0111010x - uabdl. */ - return 88; + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110001xxxxx000111xxxxxxxxxx + and. */ + return 305; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110101xxxxx000111xxxxxxxxxx + orr. */ + return 317; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110011xxxxx000111xxxxxxxxxx + bic. */ + return 306; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110111xxxxx000111xxxxxxxxxx + orn. */ + return 319; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx010111xxxxxxxxxx + sqrshl. */ + return 278; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00111xxxxxx1xx0111011x - uabdl2. */ - return 89; + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx001111xxxxxxxxxx + cmge. */ + return 274; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx011111xxxxxxxxxx + saba. */ + return 282; + } } } } @@ -13567,1336 +17838,1069 @@ aarch64_opcode_lookup_1 (uint32_t word) } else { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx001xxxxxxxx1xx01111x0x - fmov. */ - return 845; - } - else - { - if (((word >> 13) & 0x1) == 0) - { - if (((word >> 14) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00100xxxxxx1xx01111x1x - sqdmlal. */ - return 413; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00101xxxxxx1xx01111x1x - sqdmull. */ - return 415; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0011xxxxxxx1xx01111x1x - sqdmlsl. */ - return 414; - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001110xx1xxxxx0xxxxxxxxxxxxxxx + bcax. */ + return 2347; } } - } - else - { - if (((word >> 12) & 0x1) == 0) + else { - if (((word >> 13) & 0x1) == 0) + if (((word >> 10) & 0x1) == 0) { - if (((word >> 14) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - if (((word >> 15) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx010000xxxxx1xx011100xx - rev64. */ - return 155; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx010000xxxxx1xx011101xx - rev32. */ - return 206; - } - } - else + if (((word >> 13) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx010000xxxxx1xx01111x0x - fmul. */ - return 819; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101110xx1xxxxx000000xxxxxxxxxx + uaddl. */ + return 76; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101110xx1xxxxx000000xxxxxxxxxx + uaddl2. */ + return 77; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx010000xxxxx1xx01111x1x - sha1h. */ - return 666; - } - } - } - else - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 16) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0100010xxxx1xx011100xx - cmgt. */ - return 163; + x0101110xx1xxxxx010000xxxxxxxxxx + raddhn. */ + return 84; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0100010xxxx1xx011101xx - cmge. */ - return 212; + x1101110xx1xxxxx010000xxxxxxxxxx + raddhn2. */ + return 85; } } - else + } + else + { + if (((word >> 14) & 0x1) == 0) { - if (((word >> 19) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100011xx0x1x0011100xx - frintn. */ - return 175; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100011xx0x1x0011101xx - frinta. */ - return 223; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100011xx0x1x101110xxx - frintp. */ - return 195; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101110xx1xxxxx001000xxxxxxxxxx + usubl. */ + return 80; } else { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100011xx1x1x0011100xx - frintn. */ - return 176; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100011xx1x1x0011101xx - frinta. */ - return 224; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100011xx1x1x101110xxx - frintp. */ - return 196; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101110xx1xxxxx001000xxxxxxxxxx + usubl2. */ + return 81; } } - } - else - { - if (((word >> 29) & 0x1) == 0) + else { if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx010001xxxxx1xx0111100x - fnmul. */ - return 835; + x0101110xx1xxxxx011000xxxxxxxxxx + rsubhn. */ + return 88; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx010001xxxxx1xx0111101x - cmgt. */ - return 473; + x1101110xx1xxxxx011000xxxxxxxxxx + rsubhn2. */ + return 89; } } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx010001xxxxx1xx011111xx - cmge. */ - return 502; - } } } - } - else - { - if (((word >> 15) & 0x1) == 0) + else { - if (((word >> 28) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 16) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 19) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100100xx0x1xx011100xx - cls. */ - return 159; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100100xx0x1xx011101xx - clz. */ - return 209; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101110xx1xxxxx000100xxxxxxxxxx + uaddw. */ + return 78; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0100100xx1x1xx01110xxx - aese. */ - return 662; + x1101110xx1xxxxx000100xxxxxxxxxx + uaddw2. */ + return 79; } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100101xxxx1xx0111000x - sqxtn. */ - return 169; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100101xxxx1xx0111001x - sqxtn2. */ - return 170; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101110xx1xxxxx010100xxxxxxxxxx + uabal. */ + return 86; } else { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100101xxxx1xx0111010x - uqxtn. */ - return 219; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100101xxxx1xx0111011x - uqxtn2. */ - return 220; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101110xx1xxxxx010100xxxxxxxxxx + uabal2. */ + return 87; } } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx010010xxxxx1xx0111100x - fmax. */ - return 827; + x0101110xx1xxxxx001100xxxxxxxxxx + usubw. */ + return 82; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx010010xxxxx1xx0111101x - sqxtn. */ - return 477; + x1101110xx1xxxxx001100xxxxxxxxxx + usubw2. */ + return 83; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx010010xxxxx1xx011111xx - uqxtn. */ - return 506; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101110xx1xxxxx011100xxxxxxxxxx + uabdl. */ + return 90; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101110xx1xxxxx011100xxxxxxxxxx + uabdl2. */ + return 91; + } } } } - else + } + else + { + if (((word >> 12) & 0x1) == 0) { - if (((word >> 16) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 19) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100110xx001xx011100xx - fcmgt. */ - return 187; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100110xx001xx011101xx - fcmge. */ - return 238; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100110xx001xx011110xx - fcmgt. */ - return 486; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100110xx001xx011111xx - fcmge. */ - return 516; - } - } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100110xx011x0011100xx - fmaxnmv. */ - return 35; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100110xx011x0011101xx - fmaxnmv. */ - return 34; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100110xx011x0011110xx - fmaxnmp. */ - return 530; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100110xx011x0011111xx - fmaxnmp. */ - return 529; - } - } - } - else - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100110xx011x1011100xx - fminnmv. */ - return 39; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100110xx011x1011101xx - fminnmv. */ - return 38; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100110xx011x1011110xx - fminnmp. */ - return 536; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100110xx011x1011111xx - fminnmp. */ - return 535; - } - } - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx000010xxxxxxxxxx + rev32. */ + return 213; } else { - if (((word >> 28) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100110xx1x1xx011100xx - fcmgt. */ - return 188; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100110xx1x1xx011101xx - fcmge. */ - return 239; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxx0010010xxxxxxxxxx + clz. */ + return 216; } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0100110xx1x1xx011110xx - fcmgt. */ - return 487; + x0101110xx1xxxx1010010xxxxxxxxxx + uqxtn. */ + return 226; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0100110xx1x1xx011111xx - fcmge. */ - return 517; + x1101110xx1xxxx1010010xxxxxxxxxx + uqxtn2. */ + return 227; } } } } else { - if (((word >> 19) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100111xx0x1x0011100xx - fcvtas. */ - return 183; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100111xx0x1x0011101xx - fcvtau. */ - return 231; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxx0001010xxxxxxxxxx + uaddlp. */ + return 214; + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101110xx1xxxx1001010xxxxxxxxxx + sqxtun. */ + return 222; } else { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100111xx0x1x0011110xx - fcvtas. */ - return 482; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100111xx0x1x0011111xx - fcvtau. */ - return 512; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101110xx1xxxx1001010xxxxxxxxxx + sqxtun2. */ + return 223; } } + } + else + { + if (((word >> 16) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxx0011010xxxxxxxxxx + uadalp. */ + return 217; + } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0100111xx0x1x10111x0xx - urecpe. */ - return 203; + x0101110xx1xxxx1011010xxxxxxxxxx + fcvtxn. */ + return 228; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0100111xx0x1x10111x1xx - ursqrte. */ - return 250; + x1101110xx1xxxx1011010xxxxxxxxxx + fcvtxn2. */ + return 229; } } } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110x01xxxxx0x0110xxxxxxxxxx + not. */ + return 242; + } else { - if (((word >> 28) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110x11xxxxx0x0110xxxxxxxxxx + rbit. */ + return 244; + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0100111xx1x1xx011100xx - fcvtas. */ - return 184; + xx101110xx10xxx0001110xxxxxxxxxx + usqadd. */ + return 215; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0100111xx1x1xx011101xx - fcvtau. */ - return 232; + xx101110xx11xxx0001110xxxxxxxxxx + uaddlv. */ + return 33; } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0100111xx1x1xx011110xx - fcvtas. */ - return 483; + x0101110xx1xxxx1001110xxxxxxxxxx + shll. */ + return 224; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0100111xx1x1xx011111xx - fcvtau. */ - return 513; + x1101110xx1xxxx1001110xxxxxxxxxx + shll2. */ + return 225; } } } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx011110xxxxxxxxxx + sqneg. */ + return 218; + } } } } } else { - if (((word >> 14) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - if (((word >> 15) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 16) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101000xxxx1xx011100xx - saddlp. */ - return 157; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101000xxxx1xx011101xx - uaddlp. */ - return 207; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx000001xxxxxxxxxx + uhadd. */ + return 320; } else { - if (((word >> 29) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx010001xxxxxxxxxx + ushl. */ + return 327; + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx001001xxxxxxxxxx + uhsub. */ + return 323; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx011001xxxxxxxxxx + umax. */ + return 331; + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx000101xxxxxxxxxx + urhadd. */ + return 322; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx010101xxxxxxxxxx + urshl. */ + return 329; + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx001101xxxxxxxxxx + cmhi. */ + return 325; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx011101xxxxxxxxxx + uabd. */ + return 333; + } + } + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx000011xxxxxxxxxx + uqadd. */ + return 321; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx010011xxxxxxxxxx + uqshl. */ + return 328; + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx001011xxxxxxxxxx + uqsub. */ + return 324; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx011011xxxxxxxxxx + umin. */ + return 332; + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0101001xxxx1xx0111000x - xtn. */ - return 167; + xx101110001xxxxx000111xxxxxxxxxx + eor. */ + return 356; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0101001xxxx1xx0111001x - xtn2. */ - return 168; + xx101110101xxxxx000111xxxxxxxxxx + bit. */ + return 368; } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0101001xxxx1xx0111010x - sqxtun. */ - return 215; + xx101110011xxxxx000111xxxxxxxxxx + bsl. */ + return 357; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0101001xxxx1xx0111011x - sqxtun2. */ - return 216; + xx101110111xxxxx000111xxxxxxxxxx + bif. */ + return 369; } } } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx010111xxxxxxxxxx + uqrshl. */ + return 330; + } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx010100xxxxx1xx0111100x - fadd. */ - return 823; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx010100xxxxx1xx0111101x - sha256su0. */ - return 668; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx001111xxxxxxxxxx + cmhs. */ + return 326; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx010100xxxxx1xx011111xx - sqxtun. */ - return 505; + xx101110xx1xxxxx011111xxxxxxxxxx + uaba. */ + return 334; } } } - else + } + } + } + } + else + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) { - if (((word >> 16) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0101010xxx01xx01110xxx - cmlt. */ - return 165; + x0001110xx1xxxxx100000xxxxxxxxxx + smlal. */ + return 60; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101010xxx01xx01111xxx - cmlt. */ - return 475; + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxxx100000xxxxxxxxxx + smlal2. */ + return 61; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 11001110xx1xxxxx100000xxxxxxxxxx + sha512h. */ + return 2340; + } } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0101010xxx11xx0111x0xx - smaxv. */ - return 28; + x0101110xx1xxxxx100000xxxxxxxxxx + umlal. */ + return 92; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0101010xxx11xx0111x1xx - umaxv. */ - return 32; + x1101110xx1xxxxx100000xxxxxxxxxx + umlal2. */ + return 93; } } } else { - if (((word >> 19) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101011xx001x0011100xx - fcvtns. */ - return 179; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101011xx001x0011101xx - fcvtnu. */ - return 227; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101011xx001x0011110xx - fcvtns. */ - return 478; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101011xx001x0011111xx - fcvtnu. */ - return 508; - } - } - } - else - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101011xx001x1011100xx - fcvtps. */ - return 199; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101011xx001x1011101xx - fcvtpu. */ - return 246; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101011xx001x1011110xx - fcvtps. */ - return 492; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101011xx001x1011111xx - fcvtpu. */ - return 520; - } - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0001110xx1xxxxx110000xxxxxxxxxx + smull. */ + return 68; } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0101011xx011xx0111x0xx - sminv. */ - return 29; + 01001110xx1xxxxx110000xxxxxxxxxx + smull2. */ + return 69; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0101011xx011xx0111x1xx - uminv. */ - return 33; + 11001110xx1xxxxx110000xxxxxxxxxx + sm3partw1. */ + return 2353; } } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101011xx1x1x0011100xx - fcvtns. */ - return 180; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101011xx1x1x0011101xx - fcvtnu. */ - return 228; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101011xx1x1x0011110xx - fcvtns. */ - return 479; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101011xx1x1x0011111xx - fcvtnu. */ - return 509; - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101110xx1xxxxx110000xxxxxxxxxx + umull. */ + return 96; } else { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101011xx1x1x1011100xx - fcvtps. */ - return 200; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101011xx1x1x1011101xx - fcvtpu. */ - return 247; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101011xx1x1x1011110xx - fcvtps. */ - return 493; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101011xx1x1x1011111xx - fcvtpu. */ - return 521; - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101110xx1xxxxx110000xxxxxxxxxx + umull2. */ + return 97; } } } } - } - else - { - if (((word >> 15) & 0x1) == 0) + else { - if (((word >> 28) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 16) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - if (((word >> 19) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101100xx0x1xx011100xx - sadalp. */ - return 161; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101100xx0x1xx011101xx - uadalp. */ - return 210; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0001110xx1xxxxx101000xxxxxxxxxx + smlsl. */ + return 64; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0101100xx1x1xx01110xxx - aesmc. */ - return 664; + x1001110xx1xxxxx101000xxxxxxxxxx + smlsl2. */ + return 65; } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101101xxxx1xx0111000x - fcvtn. */ - return 171; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101101xxxx1xx0111001x - fcvtn2. */ - return 172; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101110xx1xxxxx101000xxxxxxxxxx + umlsl. */ + return 94; } else { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101101xxxx1xx0111010x - fcvtxn. */ - return 221; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101101xxxx1xx0111011x - fcvtxn2. */ - return 222; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101110xx1xxxxx101000xxxxxxxxxx + umlsl2. */ + return 95; } } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx010110xxxxx1xx011110xx - fmaxnm. */ - return 831; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0x01110x01xxxxx111000xxxxxxxxxx + pmull. */ + return 72; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x01110x01xxxxx111000xxxxxxxxxx + pmull2. */ + return 74; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx010110xxxxx1xx011111xx - fcvtxn. */ - return 507; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0x01110x11xxxxx111000xxxxxxxxxx + pmull. */ + return 73; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x01110x11xxxxx111000xxxxxxxxxx + pmull2. */ + return 75; + } } } } - else + } + else + { + if (((word >> 13) & 0x1) == 0) { - if (((word >> 19) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx010111xxx0x1xx01110xxx - fcmlt. */ - return 191; + x0x01110xx1xxxxx100100xxxxxxxxxx + sqdmlal. */ + return 62; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx010111xxx0x1xx01111xxx - fcmlt. */ - return 490; + x1x01110xx1xxxxx100100xxxxxxxxxx + sqdmlal2. */ + return 63; } } else { - if (((word >> 28) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx010111xxx1x1xx01110xxx - fcmlt. */ - return 192; + x0x01110xx1xxxxx110100xxxxxxxxxx + sqdmull. */ + return 70; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx010111xxx1x1xx01111xxx - fcmlt. */ - return 491; + x1x01110xx1xxxxx110100xxxxxxxxxx + sqdmull2. */ + return 71; } } } - } - } - } - else - { - if (((word >> 13) & 0x1) == 0) - { - if (((word >> 14) & 0x1) == 0) - { - if (((word >> 15) & 0x1) == 0) + else { - if (((word >> 28) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx011000xxxxx1xx01110xxx - rev16. */ - return 156; + x0x01110xx1xxxxx1x1100xxxxxxxxxx + sqdmlsl. */ + return 66; } else { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx011000xxxxx1xx01111x0x - fdiv. */ - return 821; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx011000xxxxx1xx01111x1x - sha1su1. */ - return 667; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x01110xx1xxxxx1x1100xxxxxxxxxx + sqdmlsl2. */ + return 67; } } - else + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) { - if (((word >> 16) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0110010xxxx1xx011100xx - cmeq. */ - return 164; + if (((word >> 16) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxx0100010xxxxxxxxxx + cmgt. */ + return 170; + } + else + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0011100x1x0xx1100010xxxxxxxxxx + frintn. */ + return 182; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0011101x1x0xx1100010xxxxxxxxxx + frintp. */ + return 202; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0011100x1x1xx1100010xxxxxxxxxx + frintn. */ + return 183; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0011101x1x1xx1100010xxxxxxxxxx + frintp. */ + return 203; + } + } + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110010xxxx1xx011101xx - cmle. */ - return 213; + 1x001110xx1xxxxx100010xxxxxxxxxx + sha512su1. */ + return 2343; } } else { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0110010xxxx1xx011110xx - cmeq. */ - return 474; - } - else + if (((word >> 16) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110010xxxx1xx011111xx - cmle. */ - return 503; - } - } - } - else - { - if (((word >> 19) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0110011xx0x1x00111x0xx - frintm. */ - return 177; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0110011xx0x1x00111x1xx - frintx. */ - return 225; - } + xx101110xx1xxxx0100010xxxxxxxxxx + cmge. */ + return 219; } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110011xx0x1x10111x0xx - frintz. */ - return 197; + xx101110xx1x0xx1100010xxxxxxxxxx + frinta. */ + return 230; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110011xx0x1x10111x1xx - frinti. */ - return 244; + xx101110xx1x1xx1100010xxxxxxxxxx + frinta. */ + return 231; } } } - else + } + else + { + if (((word >> 23) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0110011xx1x1x00111x0xx - frintm. */ - return 178; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0110011xx1x1x00111x1xx - frintx. */ - return 226; - } - } - else + if (((word >> 29) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0110011xx1x1x10111x0xx - frintz. */ - return 198; + if (((word >> 16) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0011100x1xxxx0110010xxxxxxxxxx + fmaxnmv. */ + return 37; + } + else + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0011100x1x0xx1110010xxxxxxxxxx + fcvtas. */ + return 190; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0011100x1x1xx1110010xxxxxxxxxx + fcvtas. */ + return 191; + } + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110011xx1x1x10111x1xx - frinti. */ - return 245; + 1x0011100x1xxxxx110010xxxxxxxxxx + sm4ekey. */ + return 2356; } } - } - } - } - } - else - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 19) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx011010xxx0x1xx011100xx - cnt. */ - return 160; - } else { - if (((word >> 22) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx011010xxx0x10x011101xx - not. */ - return 235; + xx1011100x1xxxx0110010xxxxxxxxxx + fmaxnmv. */ + return 36; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx011010xxx0x11x011101xx - rbit. */ - return 237; + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x1x0xx1110010xxxxxxxxxx + fcvtau. */ + return 238; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x1x1xx1110010xxxxxxxxxx + fcvtau. */ + return 239; + } } } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx011010xxx1x1xx01110xxx - aesd. */ - return 663; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx011010xxxxx1xx01111xxx - fmin. */ - return 829; - } - } - else - { - if (((word >> 16) & 0x1) == 0) - { - if (((word >> 19) & 0x1) == 0) - { - if (((word >> 20) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0110110xx001xx011100xx - fcmeq. */ - return 189; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011101x100xx0110010xxxxxxxxxx + fcmgt. */ + return 194; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011101x100xx0110010xxxxxxxxxx + fcmge. */ + return 245; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0110110xx001xx011101xx - fcmle. */ - return 240; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011101x110xx0110010xxxxxxxxxx + fminnmv. */ + return 41; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011101x110xx0110010xxxxxxxxxx + fminnmv. */ + return 40; + } } } else @@ -14905,17 +18909,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110110xx001xx011110xx - fcmeq. */ - return 488; + xx0011101x1x1xx0110010xxxxxxxxxx + fcmgt. */ + return 195; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110110xx001xx011111xx - fcmle. */ - return 518; + xx1011101x1x1xx0110010xxxxxxxxxx + fcmge. */ + return 246; } } } @@ -14925,40 +18929,35 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110110xx011xx0111x0xx - faddp. */ - return 532; + xx0011101x1xxxx1110010xxxxxxxxxx + urecpe. */ + return 210; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110110xx011xx0111x1xx - faddp. */ - return 531; + xx1011101x1xxxx1110010xxxxxxxxxx + ursqrte. */ + return 257; } } } - else + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0110110xx1x1xx011100xx - fcmeq. */ - return 190; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0110110xx1x1xx011101xx - fcmle. */ - return 241; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx01110xx10xxx0101010xxxxxxxxxx + cmlt. */ + return 172; } else { @@ -14966,44 +18965,63 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110110xx1x1xx011110xx - fcmeq. */ - return 489; + xx001110xx11xxx0101010xxxxxxxxxx + smaxv. */ + return 30; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110110xx1x1xx011111xx - fcmle. */ - return 519; + xx101110xx11xxx0101010xxxxxxxxxx + umaxv. */ + return 34; } } } - } - else - { - if (((word >> 19) & 0x1) == 0) + else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0110111xx0x1x0011100xx - scvtf. */ - return 185; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011100x100xx1101010xxxxxxxxxx + fcvtns. */ + return 186; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x100xx1101010xxxxxxxxxx + fcvtnu. */ + return 234; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0110111xx0x1x0011101xx - ucvtf. */ - return 233; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011101x100xx1101010xxxxxxxxxx + fcvtps. */ + return 206; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011101x100xx1101010xxxxxxxxxx + fcvtpu. */ + return 253; + } } } else @@ -15012,39 +19030,39 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110111xx0x1x0011110xx - scvtf. */ - return 484; + xx001110xx110xx1101010xxxxxxxxxx + sminv. */ + return 31; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110111xx0x1x0011111xx - ucvtf. */ - return 514; + xx101110xx110xx1101010xxxxxxxxxx + uminv. */ + return 35; } } } else { - if (((word >> 28) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110111xx0x1x1011100xx - frecpe. */ - return 204; + xx0011100x1x1xx1101010xxxxxxxxxx + fcvtns. */ + return 187; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110111xx0x1x1011101xx - frsqrte. */ - return 251; + xx1011100x1x1xx1101010xxxxxxxxxx + fcvtnu. */ + return 235; } } else @@ -15053,42 +19071,111 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110111xx0x1x1011110xx - frecpe. */ - return 496; + xx0011101x1x1xx1101010xxxxxxxxxx + fcvtps. */ + return 207; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110111xx0x1x1011111xx - frsqrte. */ - return 524; + xx1011101x1x1xx1101010xxxxxxxxxx + fcvtpu. */ + return 254; } } } } + } + else + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx01110xx1x0xx0111010xxxxxxxxxx + fcmlt. */ + return 198; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx01110xx1x1xx0111010xxxxxxxxxx + fcmlt. */ + return 199; + } + } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001110xx1xxxx1111010xxxxxxxxxx + frint32z. */ + return 158; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxx1111010xxxxxxxxxx + frint32x. */ + return 159; + } + } + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001110xx1xxxx0100110xxxxxxxxxx + cmeq. */ + return 171; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxx0100110xxxxxxxxxx + cmle. */ + return 220; + } + } + else + { + if (((word >> 19) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110111xx1x1x0011100xx - scvtf. */ - return 186; + xx0011100x1x0xx1100110xxxxxxxxxx + frintm. */ + return 184; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110111xx1x1x0011101xx - ucvtf. */ - return 234; + xx1011100x1x0xx1100110xxxxxxxxxx + frintx. */ + return 232; } } else @@ -15097,39 +19184,39 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110111xx1x1x0011110xx - scvtf. */ - return 485; + xx0011101x1x0xx1100110xxxxxxxxxx + frintz. */ + return 204; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110111xx1x1x0011111xx - ucvtf. */ - return 515; + xx1011101x1x0xx1100110xxxxxxxxxx + frinti. */ + return 251; } } } else { - if (((word >> 28) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110111xx1x1x1011100xx - frecpe. */ - return 205; + xx0011100x1x1xx1100110xxxxxxxxxx + frintm. */ + return 185; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110111xx1x1x1011101xx - frsqrte. */ - return 252; + xx1011100x1x1xx1100110xxxxxxxxxx + frintx. */ + return 233; } } else @@ -15138,234 +19225,198 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110111xx1x1x1011110xx - frecpe. */ - return 497; + xx0011101x1x1xx1100110xxxxxxxxxx + frintz. */ + return 205; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110111xx1x1x1011111xx - frsqrte. */ - return 525; + xx1011101x1x1xx1100110xxxxxxxxxx + frinti. */ + return 252; } } } } } - } - } - } - else - { - if (((word >> 14) & 0x1) == 0) - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) + else { if (((word >> 16) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111000xxx01xx011100xx - suqadd. */ - return 158; + xx001110xx1x0xx0110110xxxxxxxxxx + fcmeq. */ + return 196; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111000xxx01xx011101xx - usqadd. */ - return 208; + xx101110xx1x0xx0110110xxxxxxxxxx + fcmle. */ + return 247; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001110xx1x1xx0110110xxxxxxxxxx + fcmeq. */ + return 197; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1x1xx0110110xxxxxxxxxx + fcmle. */ + return 248; + } + } + } + else + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011100x1x0xx1110110xxxxxxxxxx + scvtf. */ + return 192; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x1x0xx1110110xxxxxxxxxx + ucvtf. */ + return 240; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011101x1x0xx1110110xxxxxxxxxx + frecpe. */ + return 211; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011101x1x0xx1110110xxxxxxxxxx + frsqrte. */ + return 258; + } } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0111000xxx11xx011100xx - saddlv. */ - return 27; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011100x1x1xx1110110xxxxxxxxxx + scvtf. */ + return 193; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x1x1xx1110110xxxxxxxxxx + ucvtf. */ + return 241; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0111000xxx11xx011101xx - uaddlv. */ - return 31; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011101x1x1xx1110110xxxxxxxxxx + frecpe. */ + return 212; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011101x1x1xx1110110xxxxxxxxxx + frsqrte. */ + return 259; + } } } } - else - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0111001xxxx1xx01110x0x - shll. */ - return 217; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0111001xxxx1xx01110x1x - shll2. */ - return 218; - } - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx011100xxxxx1xx0111100x - fsub. */ - return 825; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx011100xxxxx1xx0111101x - suqadd. */ - return 471; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx011100xxxxx1xx011111xx - usqadd. */ - return 500; - } } } else { - if (((word >> 16) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111010xxxx1xx011100xx + xx001110xx1xxxx0101110xxxxxxxxxx abs. */ - return 166; + return 173; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111010xxxx1xx011101xx + xx101110xx1xxxx0101110xxxxxxxxxx neg. */ - return 214; + return 221; } } else { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0111010xxxx1xx011110xx - abs. */ - return 476; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0111010xxxx1xx011111xx - neg. */ - return 504; - } - } - } - else - { - if (((word >> 19) & 0x1) == 0) - { - if (((word >> 20) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0111011xx001x0011100xx - fcvtms. */ - return 181; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0111011xx001x0011101xx - fcvtmu. */ - return 229; - } - } - else + if (((word >> 23) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111011xx001x0011110xx + xx0011100x100xx1101110xxxxxxxxxx fcvtms. */ - return 480; + return 188; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111011xx001x0011111xx + xx1011100x100xx1101110xxxxxxxxxx fcvtmu. */ - return 510; - } - } - } - else - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0111011xx001x1011100xx - fcvtzs. */ - return 201; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0111011xx001x1011101xx - fcvtzu. */ - return 248; + return 236; } } else @@ -15374,62 +19425,48 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111011xx001x1011110xx + xx0011101x100xx1101110xxxxxxxxxx fcvtzs. */ - return 494; + return 208; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111011xx001x1011111xx + xx1011101x100xx1101110xxxxxxxxxx fcvtzu. */ - return 522; + return 255; } } } - } - else - { - if (((word >> 28) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0111011xx011xx01110xxx - addv. */ - return 30; - } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111011xx011xx01111xxx - addp. */ - return 528; + xxx01110xx110xx1101110xxxxxxxxxx + addv. */ + return 32; } } - } - else - { - if (((word >> 23) & 0x1) == 0) + else { - if (((word >> 28) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111011xx1x1x0011100xx + xx0011100x1x1xx1101110xxxxxxxxxx fcvtms. */ - return 182; + return 189; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111011xx1x1x0011101xx + xx1011100x1x1xx1101110xxxxxxxxxx fcvtmu. */ - return 230; + return 237; } } else @@ -15438,261 +19475,341 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111011xx1x1x0011110xx - fcvtms. */ - return 481; + xx0011101x1x1xx1101110xxxxxxxxxx + fcvtzs. */ + return 209; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111011xx1x1x0011111xx - fcvtmu. */ - return 511; + xx1011101x1x1xx1101110xxxxxxxxxx + fcvtzu. */ + return 256; } } } - else + } + } + else + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111011xx1x1x1011100xx - fcvtzs. */ - return 202; + xx001110xx100xx0111110xxxxxxxxxx + fabs. */ + return 200; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111011xx1x1x1011101xx - fcvtzu. */ + xx101110xx100xx0111110xxxxxxxxxx + fneg. */ return 249; } } else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011100x110xx0111110xxxxxxxxxx + fmaxv. */ + return 39; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x110xx0111110xxxxxxxxxx + fmaxv. */ + return 38; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011101x110xx0111110xxxxxxxxxx + fminv. */ + return 43; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011101x110xx0111110xxxxxxxxxx + fminv. */ + return 42; + } + } + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001110xx1x1xx0111110xxxxxxxxxx + fabs. */ + return 201; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1x1xx0111110xxxxxxxxxx + fneg. */ + return 250; + } + } + } + else + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111011xx1x1x1011110xx - fcvtzs. */ - return 495; + xx0011100x1x0xx1111110xxxxxxxxxx + frint64z. */ + return 160; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111011xx1x1x1011111xx - fcvtzu. */ - return 523; + xx1011100x1x0xx1111110xxxxxxxxxx + frint64x. */ + return 161; } } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx011101x1x0xx1111110xxxxxxxxxx + fsqrt. */ + return 260; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx01110xx1x1xx1111110xxxxxxxxxx + fsqrt. */ + return 261; + } + } + } + } + } + } + } + else + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx100001xxxxxxxxxx + add. */ + return 283; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001110xx1xxxxx100001xxxxxxxxxx + sha512h2. */ + return 2341; } } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx100001xxxxxxxxxx + sub. */ + return 335; + } } - } - } - else - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) + else { - if (((word >> 16) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - if (((word >> 19) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111100xx0x1xx011100xx - sqabs. */ - return 162; + 0x0011100x1xxxxx110001xxxxxxxxxx + fmaxnm. */ + return 291; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111100xx0x1xx011101xx - sqneg. */ - return 211; + 1x0011100x1xxxxx110001xxxxxxxxxx + sm3partw2. */ + return 2354; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111100xx1x1xx01110xxx - aesimc. */ - return 665; + xx1011100x1xxxxx110001xxxxxxxxxx + fmaxnmp. */ + return 342; } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111101xxxx1xx01110x0x - fcvtl. */ - return 173; + xx0011101x1xxxxx110001xxxxxxxxxx + fminnm. */ + return 307; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111101xxxx1xx01110x1x - fcvtl2. */ - return 174; + xx1011101x1xxxxx110001xxxxxxxxxx + fminnmp. */ + return 358; } } } - else + } + else + { + if (((word >> 14) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001110xx1xxxxx101001xxxxxxxxxx + smaxp. */ + return 287; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx101001xxxxxxxxxx + umaxp. */ + return 339; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx011110xxxxx1xx0111100x - fminnm. */ - return 833; + xx0011100x1xxxxx111001xxxxxxxxxx + fcmeq. */ + return 299; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx011110xxxxx1xx0111101x - sqabs. */ - return 472; + xx1011100x1xxxxx111001xxxxxxxxxx + fcmge. */ + return 348; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx011110xxxxx1xx011111xx - sqneg. */ - return 501; + xxx011101x1xxxxx111001xxxxxxxxxx + fcmgt. */ + return 362; } } } - else + } + else + { + if (((word >> 13) & 0x1) == 0) { - if (((word >> 16) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 19) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001110xx1xxxxx100101xxxxxxxxxx + mla. */ + return 285; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx100101xxxxxxxxxx + mls. */ + return 337; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0111110xx001xx0111x0xx - fabs. */ - return 193; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0111110xx001xx0111x1xx - fneg. */ - return 242; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011100x1xxxxx110101xxxxxxxxxx + fadd. */ + return 295; } else { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0111110xx011x0011100xx - fmaxv. */ - return 37; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0111110xx011x0011101xx - fmaxv. */ - return 36; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0111110xx011x0011110xx - fmaxp. */ - return 534; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0111110xx011x0011111xx - fmaxp. */ - return 533; - } - } - } - else - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0111110xx011x1011100xx - fminv. */ - return 41; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0111110xx011x1011101xx - fminv. */ - return 40; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0111110xx011x1011110xx - fminp. */ - return 538; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0111110xx011x1011111xx - fminp. */ - return 537; - } - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x1xxxxx110101xxxxxxxxxx + faddp. */ + return 344; } } else @@ -15701,137 +19818,205 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111110xx1x1xx0111x0xx - fabs. */ - return 194; + xx0011101x1xxxxx110101xxxxxxxxxx + fsub. */ + return 311; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111110xx1x1xx0111x1xx - fneg. */ - return 243; + xx1011101x1xxxxx110101xxxxxxxxxx + fabd. */ + return 360; } } } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001110xx1xxxxx101101xxxxxxxxxx + sqdmulh. */ + return 289; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx101101xxxxxxxxxx + sqrdmulh. */ + return 341; + } + } else { - if (((word >> 19) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111111xx0x1xx01110xxx - fsqrt. */ - return 253; + xx0011100x1xxxxx111101xxxxxxxxxx + fmax. */ + return 301; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111111xx0x1xx01111xxx - frecpx. */ - return 498; + xx1011100x1xxxxx111101xxxxxxxxxx + fmaxp. */ + return 352; } } else { - if (((word >> 28) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111111xx1x1xx01110xxx - fsqrt. */ - return 254; + xx0011101x1xxxxx111101xxxxxxxxxx + fmin. */ + return 313; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111111xx1x1xx01111xxx - frecpx. */ - return 499; + xx1011101x1xxxxx111101xxxxxxxxxx + fminp. */ + return 366; } } } } } } - } - } - } - else - { - if (((word >> 11) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 12) & 0x1) == 0) + else { - if (((word >> 13) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - if (((word >> 14) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 15) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx100000xxxxx1xx011100xx - shadd. */ - return 261; + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx100011xxxxxxxxxx + cmtst. */ + return 284; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001110xx1xxxxx100011xxxxxxxxxx + rax1. */ + return 2345; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx100000xxxxx1xx011101xx - uhadd. */ - return 313; + xx101110xx1xxxxx100011xxxxxxxxxx + cmeq. */ + return 336; } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx100001xxxxx1xx011100xx - add. */ - return 276; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011100x1xxxxx110011xxxxxxxxxx + fmla. */ + return 293; + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01011100x1xxxxx110011xxxxxxxxxx + fmlal2. */ + return 2359; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11011100x1xxxxx110011xxxxxxxxxx + fmlal2. */ + return 2363; + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx100001xxxxx1xx011101xx - sub. */ - return 328; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011101x1xxxxx110011xxxxxxxxxx + fmls. */ + return 309; + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01011101x1xxxxx110011xxxxxxxxxx + fmlsl2. */ + return 2360; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11011101x1xxxxx110011xxxxxxxxxx + fmlsl2. */ + return 2364; + } + } } } } else { - if (((word >> 15) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx100010xxxxx1xx011100xx - sshl. */ - return 268; + xx001110xx1xxxxx101011xxxxxxxxxx + sminp. */ + return 288; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx100010xxxxx1xx011101xx - ushl. */ - return 320; + xx101110xx1xxxxx101011xxxxxxxxxx + uminp. */ + return 340; } } else @@ -15840,38 +20025,60 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 29) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx100011xxxxx1x0011100xx - fmaxnm. */ - return 284; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x00011100x1xxxxx111011xxxxxxxxxx + fmlal. */ + return 2357; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10011100x1xxxxx111011xxxxxxxxxx + fmlal. */ + return 2361; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx100011xxxxx1x0011101xx - fmaxnmp. */ - return 335; + xx1011100x1xxxxx111011xxxxxxxxxx + facge. */ + return 350; } } else { if (((word >> 29) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx100011xxxxx1x1011100xx - fminnm. */ - return 300; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x00011101x1xxxxx111011xxxxxxxxxx + fmlsl. */ + return 2358; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10011101x1xxxxx111011xxxxxxxxxx + fmlsl. */ + return 2362; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx100011xxxxx1x1011101xx - fminnmp. */ - return 351; + xx1011101x1xxxxx111011xxxxxxxxxx + facgt. */ + return 364; } } } @@ -15879,25 +20086,25 @@ aarch64_opcode_lookup_1 (uint32_t word) } else { - if (((word >> 14) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 15) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx100100xxxxx1xx011100xx - shsub. */ - return 264; + xx001110xx1xxxxx100111xxxxxxxxxx + mul. */ + return 286; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx100100xxxxx1xx011101xx - uhsub. */ - return 316; + xx101110xx1xxxxx100111xxxxxxxxxx + pmul. */ + return 338; } } else @@ -15906,40 +20113,29 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx100101xxxxx1xx011100xx - smaxp. */ - return 280; + xx001110xx1xxxxx110111xxxxxxxxxx + fmulx. */ + return 297; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx100101xxxxx1xx011101xx - umaxp. */ - return 332; + xx101110xx1xxxxx110111xxxxxxxxxx + fmul. */ + return 346; } } } else { - if (((word >> 15) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx100110xxxxx1xx011100xx - smax. */ - return 272; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx100110xxxxx1xx011101xx - umax. */ - return 324; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx01110xx1xxxxx101111xxxxxxxxxx + addp. */ + return 290; } else { @@ -15949,339 +20145,455 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx100111xxxxx1x0011100xx - fcmeq. */ - return 292; + xx0011100x1xxxxx111111xxxxxxxxxx + frecps. */ + return 303; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx100111xxxxx1x0011101xx - fcmge. */ - return 341; + xx1011100x1xxxxx111111xxxxxxxxxx + fdiv. */ + return 354; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx100111xxxxx1x101110xxx - fcmgt. */ - return 355; + xxx011101x1xxxxx111111xxxxxxxxxx + frsqrts. */ + return 315; } } } } } - else + } + } + } + else + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) { if (((word >> 13) & 0x1) == 0) { if (((word >> 14) & 0x1) == 0) { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101000xxxxx1xx011100xx - srhadd. */ - return 263; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101000xxxxx1xx011101xx - urhadd. */ - return 315; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101001xxxxx1xx011100xx - mla. */ - return 278; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101001xxxxx1xx011101xx - mls. */ - return 330; - } - } - } - else - { - if (((word >> 15) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 17) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101010xxxxx1xx011100xx - srshl. */ - return 270; + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx100000x00000xxxxxxxxxx + fcvtns. */ + return 767; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx110000x00000xxxxxxxxxx + fcvtms. */ + return 787; + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx101000x00000xxxxxxxxxx + fcvtps. */ + return 783; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx111000x00000xxxxxxxxxx + fcvtzs. */ + return 791; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xx100x00000xxxxxxxxxx + fcvtas. */ + return 775; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101010xxxxx1xx011101xx - urshl. */ - return 322; + if (((word >> 18) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xx010x00000xxxxxxxxxx + scvtf. */ + return 771; + } + else + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1x0110x00000xxxxxxxxxx + fmov. */ + return 779; + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx101110x00000xxxxxxxxxx + fmov. */ + return 795; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx111110x00000xxxxxxxxxx + fjcvtzs. */ + return 797; + } + } + } } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 17) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 18) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101011xxxxx1x0011100xx - fadd. */ - return 288; + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx100001x00000xxxxxxxxxx + fcvtnu. */ + return 769; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx110001x00000xxxxxxxxxx + fcvtmu. */ + return 789; + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx101001x00000xxxxxxxxxx + fcvtpu. */ + return 785; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx111001x00000xxxxxxxxxx + fcvtzu. */ + return 793; + } + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx101011xxxxx1x0011101xx - faddp. */ - return 337; + xxx11110xx1xx101x00000xxxxxxxxxx + fcvtau. */ + return 777; } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 18) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx101011xxxxx1x1011100xx - fsub. */ - return 304; + xxx11110xx1xx011x00000xxxxxxxxxx + ucvtf. */ + return 773; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101011xxxxx1x1011101xx - fabd. */ - return 353; + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1x0111x00000xxxxxxxxxx + fmov. */ + return 781; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1x1111x00000xxxxxxxxxx + fmov. */ + return 796; + } } } } } - } - else - { - if (((word >> 14) & 0x1) == 0) - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101100xxxxx1xx011100xx - cmgt. */ - return 266; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101100xxxxx1xx011101xx - cmhi. */ - return 318; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101101xxxxx1xx011100xx - sqdmulh. */ - return 282; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101101xxxxx1xx011101xx - sqrdmulh. */ - return 334; - } - } - } else { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101110xxxxx1xx011100xx - sabd. */ - return 274; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101110xxxxx1xx011101xx - uabd. */ - return 326; - } - } - else + if (((word >> 17) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 15) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101111xxxxx1x0011100xx - fmax. */ - return 294; + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1x0000010000xxxxxxxxxx + fmov. */ + return 816; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1x1000010000xxxxxxxxxx + frint32z. */ + return 812; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xx100010000xxxxxxxxxx + frintn. */ + return 825; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101111xxxxx1x0011101xx - fmaxp. */ - return 345; + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1x0001010000xxxxxxxxxx + fneg. */ + return 820; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1x1001010000xxxxxxxxxx + frint64z. */ + return 814; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xx101010000xxxxxxxxxx + frintm. */ + return 829; + } } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101111xxxxx1x1011100xx - fmin. */ - return 306; + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1x0000110000xxxxxxxxxx + fabs. */ + return 818; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1x1000110000xxxxxxxxxx + frint32x. */ + return 813; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xx100110000xxxxxxxxxx + frintp. */ + return 827; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101111xxxxx1x1011101xx - fminp. */ - return 359; + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1x0001110000xxxxxxxxxx + fsqrt. */ + return 822; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1x1001110000xxxxxxxxxx + frint64x. */ + return 815; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xx101110000xxxxxxxxxx + frintz. */ + return 831; + } } } } - } - } - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - if (((word >> 4) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx0xxxxx10xxxxxxxxx1xx0111100x - fccmp. */ - return 784; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx1xxxxx10xxxxxxxxx1xx0111100x - fccmpe. */ - return 786; - } - } - else - { - if (((word >> 12) & 0x1) == 0) - { - if (((word >> 13) & 0x1) == 0) + else { - if (((word >> 14) & 0x1) == 0) + if (((word >> 18) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx10000xxxxxx1xx0111101x - add. */ - return 556; + xxx11110xx1xx01xx10000xxxxxxxxxx + fcvt. */ + return 824; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx10001xxxxxx1xx0111101x - sshl. */ - return 554; + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xx110010000xxxxxxxxxx + frinta. */ + return 833; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xx111010000xxxxxxxxxx + frintx. */ + return 835; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xx11x110000xxxxxxxxxx + frinti. */ + return 837; + } } } + } + } + else + { + if (((word >> 3) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xxxxxxx1000xxxxx00xxx + fcmp. */ + return 802; + } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1001xxxxxxx1xx0111101x - fcmeq. */ - return 546; + xxx11110xx1xxxxxxx1000xxxxx10xxx + fcmpe. */ + return 804; } } else { - if (((word >> 13) & 0x1) == 0) + if (((word >> 4) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1010xxxxxxx1xx0111101x - srshl. */ - return 555; + xxx11110xx1xxxxxxx1000xxxxx01xxx + fcmp. */ + return 806; } else { - if (((word >> 15) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1011x0xxxxx1xx0111101x - cmgt. */ - return 552; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1011x1xxxxx1xx0111101x - sqdmulh. */ - return 543; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xxxxxxx1000xxxxx11xxx + fcmpe. */ + return 808; } } } } else { - if (((word >> 12) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0x11110xx1xxxxxxxx100xxxxxxxxxx + fmov. */ + return 865; + } + else { if (((word >> 13) & 0x1) == 0) { @@ -16289,90 +20601,252 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx10000xxxxxx1xx011111xx - sub. */ - return 577; + x1x11110xx1xxxxxx00100xxxxxxxxxx + sqdmlal. */ + return 422; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx10001xxxxxx1xx011111xx - ushl. */ - return 575; + x1x11110xx1xxxxxx10100xxxxxxxxxx + sqdmull. */ + return 424; } } else { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1001xxxxxxx1x0011111xx - fcmge. */ - return 563; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1001xxxxxxx1x1011111xx - fcmgt. */ - return 569; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11110xx1xxxxxxx1100xxxxxxxxxx + sqdmlsl. */ + return 423; } } - else + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) { - if (((word >> 13) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { if (((word >> 15) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1010x0xxxxx1xx011111xx - urshl. */ - return 576; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0x11110xx1xxxxx000010xxxxxxxxxx + fmul. */ + return 839; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11110xx1xxxxx000010xxxxxxxxxx + sha1h. */ + return 675; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1010x1xxxxx1xx011111xx - fabd. */ - return 567; + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011110xx1xxxxx100010xxxxxxxxxx + fnmul. */ + return 855; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx1xxxxx100010xxxxxxxxxx + cmgt. */ + return 482; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1xxxxx100010xxxxxxxxxx + cmge. */ + return 511; + } } } else { if (((word >> 15) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1011x0xxxxx1xx011111xx - cmhi. */ - return 573; + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011110xx1xxxxx010010xxxxxxxxxx + fmax. */ + return 847; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx1xxxxx010010xxxxxxxxxx + sqxtn. */ + return 486; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1xxxxx010010xxxxxxxxxx + uqxtn. */ + return 515; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1011x1xxxxx1xx011111xx - sqrdmulh. */ - return 562; + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011110xx100xx0110010xxxxxxxxxx + fcmgt. */ + return 495; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx100xx0110010xxxxxxxxxx + fcmge. */ + return 525; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111100x110xx0110010xxxxxxxxxx + fmaxnmp. */ + return 539; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111100x110xx0110010xxxxxxxxxx + fmaxnmp. */ + return 538; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111101x110xx0110010xxxxxxxxxx + fminnmp. */ + return 545; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111101x110xx0110010xxxxxxxxxx + fminnmp. */ + return 544; + } + } + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011110xx1x1xx0110010xxxxxxxxxx + fcmgt. */ + return 496; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1x1xx0110010xxxxxxxxxx + fcmge. */ + return 526; + } + } + } + else + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011110xx1x0xx1110010xxxxxxxxxx + fcvtas. */ + return 491; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1x0xx1110010xxxxxxxxxx + fcvtau. */ + return 521; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011110xx1x1xx1110010xxxxxxxxxx + fcvtas. */ + return 492; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1x1xx1110010xxxxxxxxxx + fcvtau. */ + return 522; + } + } + } } } } - } - } - } - else - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 12) & 0x1) == 0) - { - if (((word >> 13) & 0x1) == 0) + else { if (((word >> 14) & 0x1) == 0) { @@ -16380,38 +20854,126 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 29) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx110000xxxxx1xx011100xx - sqadd. */ - return 262; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011110xx1xxxxx001010xxxxxxxxxx + fadd. */ + return 843; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx1xxxxx001010xxxxxxxxxx + sha256su0. */ + return 677; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110000xxxxx1xx011101xx - uqadd. */ - return 314; + xx111110xx1xxxxx001010xxxxxxxxxx + sqxtun. */ + return 514; } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110001xxxxx1xx011100xx - cmtst. */ - return 277; + xxx11110xx1xxxx0101010xxxxxxxxxx + cmlt. */ + return 484; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx110001xxxxx1xx011101xx - cmeq. */ - return 329; + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111100x1x0xx1101010xxxxxxxxxx + fcvtns. */ + return 487; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111100x1x0xx1101010xxxxxxxxxx + fcvtnu. */ + return 517; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111101x1x0xx1101010xxxxxxxxxx + fcvtps. */ + return 501; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111101x1x0xx1101010xxxxxxxxxx + fcvtpu. */ + return 529; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111100x1x1xx1101010xxxxxxxxxx + fcvtns. */ + return 488; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111100x1x1xx1101010xxxxxxxxxx + fcvtnu. */ + return 518; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111101x1x1xx1101010xxxxxxxxxx + fcvtps. */ + return 502; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111101x1x1xx1101010xxxxxxxxxx + fcvtpu. */ + return 530; + } + } + } } } } @@ -16423,61 +20985,64 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110010xxxxx1xx011100xx - sqshl. */ - return 269; + xx011110xx1xxxxx011010xxxxxxxxxx + fmaxnm. */ + return 851; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110010xxxxx1xx011101xx - uqshl. */ - return 321; + xx111110xx1xxxxx011010xxxxxxxxxx + fcvtxn. */ + return 516; } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110011xxxxx1x001110xxx - fmla. */ - return 286; + xxx11110xx1x0xxx111010xxxxxxxxxx + fcmlt. */ + return 499; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110011xxxxx1x101110xxx - fmls. */ - return 302; + xxx11110xx1x1xxx111010xxxxxxxxxx + fcmlt. */ + return 500; } } } } - else + } + else + { + if (((word >> 13) & 0x1) == 0) { if (((word >> 14) & 0x1) == 0) { if (((word >> 15) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110100xxxxx1xx011100xx - sqsub. */ - return 265; + x0x11110xx1xxxxx000110xxxxxxxxxx + fdiv. */ + return 841; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110100xxxxx1xx011101xx - uqsub. */ - return 317; + x1x11110xx1xxxxx000110xxxxxxxxxx + sha1su1. */ + return 676; } } else @@ -16486,113 +21051,371 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110101xxxxx1xx011100xx - sminp. */ - return 281; + xx011110xx1xxxxx100110xxxxxxxxxx + cmeq. */ + return 483; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110101xxxxx1xx011101xx - uminp. */ - return 333; + xx111110xx1xxxxx100110xxxxxxxxxx + cmle. */ + return 512; } } } else + { + if (((word >> 15) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xxxxx010110xxxxxxxxxx + fmin. */ + return 849; + } + else + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011110xx100xx0110110xxxxxxxxxx + fcmeq. */ + return 497; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx100xx0110110xxxxxxxxxx + fcmle. */ + return 527; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011110xx110xx0110110xxxxxxxxxx + faddp. */ + return 541; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx110xx0110110xxxxxxxxxx + faddp. */ + return 540; + } + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011110xx1x1xx0110110xxxxxxxxxx + fcmeq. */ + return 498; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1x1xx0110110xxxxxxxxxx + fcmle. */ + return 528; + } + } + } + else + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111100x1x0xx1110110xxxxxxxxxx + scvtf. */ + return 493; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111100x1x0xx1110110xxxxxxxxxx + ucvtf. */ + return 523; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111101x1x0xx1110110xxxxxxxxxx + frecpe. */ + return 505; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111101x1x0xx1110110xxxxxxxxxx + frsqrte. */ + return 533; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111100x1x1xx1110110xxxxxxxxxx + scvtf. */ + return 494; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111100x1x1xx1110110xxxxxxxxxx + ucvtf. */ + return 524; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111101x1x1xx1110110xxxxxxxxxx + frecpe. */ + return 506; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111101x1x1xx1110110xxxxxxxxxx + frsqrte. */ + return 534; + } + } + } + } + } + } + } + else + { + if (((word >> 14) & 0x1) == 0) { if (((word >> 15) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx110110xxxxx1xx011100xx - smin. */ - return 273; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011110xx1xxxxx001110xxxxxxxxxx + fsub. */ + return 845; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx1xxxxx001110xxxxxxxxxx + suqadd. */ + return 480; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110110xxxxx1xx011101xx - umin. */ - return 325; + xx111110xx1xxxxx001110xxxxxxxxxx + usqadd. */ + return 509; } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx110111xxxxx1x001110xxx - facge. */ - return 343; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011110xx1xxxx0101110xxxxxxxxxx + abs. */ + return 485; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1xxxx0101110xxxxxxxxxx + neg. */ + return 513; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx110111xxxxx1x101110xxx - facgt. */ - return 357; - } - } - } - } - } - else - { - if (((word >> 13) & 0x1) == 0) - { - if (((word >> 14) & 0x1) == 0) - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 22) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx111000xxxxx100011100xx - and. */ - return 298; + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111100x100xx1101110xxxxxxxxxx + fcvtms. */ + return 489; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111100x100xx1101110xxxxxxxxxx + fcvtmu. */ + return 519; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111101x100xx1101110xxxxxxxxxx + fcvtzs. */ + return 503; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111101x100xx1101110xxxxxxxxxx + fcvtzu. */ + return 531; + } + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx111000xxxxx100011101xx - eor. */ - return 349; + xxx11110xx110xx1101110xxxxxxxxxx + addp. */ + return 537; } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx111000xxxxx101011100xx - orr. */ - return 310; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111100x1x1xx1101110xxxxxxxxxx + fcvtms. */ + return 490; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111100x1x1xx1101110xxxxxxxxxx + fcvtmu. */ + return 520; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx111000xxxxx101011101xx - bit. */ - return 361; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111101x1x1xx1101110xxxxxxxxxx + fcvtzs. */ + return 504; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111101x1x1xx1101110xxxxxxxxxx + fcvtzu. */ + return 532; + } } } } + } + } + else + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011110xx1xxxxx011110xxxxxxxxxx + fminnm. */ + return 853; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx1xxxxx011110xxxxxxxxxx + sqabs. */ + return 481; + } + } else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1xxxxx011110xxxxxxxxxx + sqneg. */ + return 510; + } + } + else + { + if (((word >> 16) & 0x1) == 0) { if (((word >> 23) & 0x1) == 0) { @@ -16600,17 +21423,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx111000xxxxx110011100xx - bic. */ - return 299; + xx0111100x1xxxx0111110xxxxxxxxxx + fmaxp. */ + return 543; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx111000xxxxx110011101xx - bsl. */ - return 350; + xx1111100x1xxxx0111110xxxxxxxxxx + fmaxp. */ + return 542; } } else @@ -16619,165 +21442,215 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx111000xxxxx111011100xx - orn. */ - return 312; + xx0111101x1xxxx0111110xxxxxxxxxx + fminp. */ + return 547; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx111000xxxxx111011101xx - bif. */ - return 362; + xx1111101x1xxxx0111110xxxxxxxxxx + fminp. */ + return 546; } } } + else + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1x0xx1111110xxxxxxxxxx + frecpx. */ + return 507; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1x1xx1111110xxxxxxxxxx + frecpx. */ + return 508; + } + } } - else + } + } + } + } + } + else + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011110xx1xxxxxxxxx01xxxxx0xxxx + fccmp. */ + return 798; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011110xx1xxxxxxxxx01xxxxx1xxxx + fccmpe. */ + return 800; + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx111001xxxxx1xx011100xx - mul. */ - return 279; + x1011110xx1xxxxxx00001xxxxxxxxxx + add. */ + return 565; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx111001xxxxx1xx011101xx - pmul. */ - return 331; + x1011110xx1xxxxxx10001xxxxxxxxxx + sshl. */ + return 563; } } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx1xxxxxxx1001xxxxxxxxxx + fcmeq. */ + return 555; + } } else { - if (((word >> 15) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx1xxxxxxx0101xxxxxxxxxx + srshl. */ + return 564; + } + else + { + if (((word >> 15) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx111010xxxxx1xx011100xx - sqrshl. */ - return 271; + x1011110xx1xxxxx0x1101xxxxxxxxxx + cmgt. */ + return 561; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx111010xxxxx1xx011101xx - uqrshl. */ - return 323; + x1011110xx1xxxxx1x1101xxxxxxxxxx + sqdmulh. */ + return 552; } } + } + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1xxxxxx00001xxxxxxxxxx + sub. */ + return 586; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1xxxxxx10001xxxxxxxxxx + ushl. */ + return 584; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111100x1xxxxxxx1001xxxxxxxxxx + fcmge. */ + return 572; + } else { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx111011xxxxx1xx011100xx - fmulx. */ - return 290; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx111011xxxxx1xx011101xx - fmul. */ - return 339; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111101x1xxxxxxx1001xxxxxxxxxx + fcmgt. */ + return 578; } } } else { - if (((word >> 14) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { if (((word >> 15) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx111100xxxxx1xx011100xx - cmge. */ - return 267; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx111100xxxxx1xx011101xx - cmhs. */ - return 319; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1xxxxx0x0101xxxxxxxxxx + urshl. */ + return 585; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx111101xxxxx1xx01110xxx - addp. */ - return 283; + xx111110xx1xxxxx1x0101xxxxxxxxxx + fabd. */ + return 576; } } else { if (((word >> 15) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx111110xxxxx1xx011100xx - saba. */ - return 275; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx111110xxxxx1xx011101xx - uaba. */ - return 327; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1xxxxx0x1101xxxxxxxxxx + cmhi. */ + return 582; } else { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx111111xxxxx1x0011100xx - frecps. */ - return 296; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx111111xxxxx1x0011101xx - fdiv. */ - return 347; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx111111xxxxx1x101110xxx - frsqrts. */ - return 308; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1xxxxx1x1101xxxxxxxxxx + sqrdmulh. */ + return 571; } } } @@ -16791,9 +21664,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx11xxxxxxxxx1xx0111100x + x0011110xx1xxxxxxxxx11xxxxxxxxxx fcsel. */ - return 847; + return 867; } else { @@ -16807,35 +21680,35 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110000xxxxx1xx0111101x + x1011110xx1xxxxx000011xxxxxxxxxx sqadd. */ - return 539; + return 548; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110001xxxxx1xx0111101x + x1011110xx1xxxxx100011xxxxxxxxxx cmtst. */ - return 557; + return 566; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx11001xxxxxx1xx0111101x + x1011110xx1xxxxxx10011xxxxxxxxxx sqshl. */ - return 541; + return 550; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1101xxxxxxx1xx0111101x + x1011110xx1xxxxxxx1011xxxxxxxxxx sqsub. */ - return 540; + return 549; } } else @@ -16846,17 +21719,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1110x0xxxxx1xx0111101x + x1011110xx1xxxxx0x0111xxxxxxxxxx sqrshl. */ - return 542; + return 551; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1110x1xxxxx1xx0111101x + x1011110xx1xxxxx1x0111xxxxxxxxxx fmulx. */ - return 544; + return 553; } } else @@ -16865,9 +21738,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx11110xxxxxx1xx0111101x + x1011110xx1xxxxxx01111xxxxxxxxxx cmge. */ - return 553; + return 562; } else { @@ -16875,17 +21748,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx11111xxxxxx1x00111101x + x10111100x1xxxxxx11111xxxxxxxxxx frecps. */ - return 548; + return 557; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx11111xxxxxx1x10111101x + x10111101x1xxxxxx11111xxxxxxxxxx frsqrts. */ - return 550; + return 559; } } } @@ -16904,26 +21777,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110000xxxxx1xx011111xx + xx111110xx1xxxxx000011xxxxxxxxxx uqadd. */ - return 558; + return 567; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110001xxxxx1xx011111xx + xx111110xx1xxxxx100011xxxxxxxxxx cmeq. */ - return 578; + return 587; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx11001xxxxxx1xx011111xx + xx111110xx1xxxxxx10011xxxxxxxxxx uqshl. */ - return 560; + return 569; } } else @@ -16932,9 +21805,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx11010xxxxxx1xx011111xx + xx111110xx1xxxxxx01011xxxxxxxxxx uqsub. */ - return 559; + return 568; } else { @@ -16942,17 +21815,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx11011xxxxxx1x0011111xx + xx1111100x1xxxxxx11011xxxxxxxxxx facge. */ - return 565; + return 574; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx11011xxxxxx1x1011111xx + xx1111101x1xxxxxx11011xxxxxxxxxx facgt. */ - return 571; + return 580; } } } @@ -16963,17 +21836,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1110xxxxxxx1xx011111xx + xx111110xx1xxxxxxx0111xxxxxxxxxx uqrshl. */ - return 561; + return 570; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1111xxxxxxx1xx011111xx + xx111110xx1xxxxxxx1111xxxxxxxxxx cmhs. */ - return 574; + return 583; } } } @@ -16996,19 +21869,63 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 14) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x0000xxxxxxxx11110xxx - mla. */ - return 117; + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0001111xxxxxxxx0000x0xxxxxxxxxx + fmlal. */ + return 2365; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1001111xxxxxxxx0000x0xxxxxxxxxx + fmlal. */ + return 2369; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101111xxxxxxxx0000x0xxxxxxxxxx + mla. */ + return 119; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x0010xxxxxxxx11110xxx - mls. */ - return 120; + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0001111xxxxxxxx0100x0xxxxxxxxxx + fmlsl. */ + return 2366; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1001111xxxxxxxx0100x0xxxxxxxxxx + fmlsl. */ + return 2370; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101111xxxxxxxx0100x0xxxxxxxxxx + mls. */ + return 122; + } } } else @@ -17021,17 +21938,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x0100xxxxxxxx1111000x + x0001111xxxxxxxx0010x0xxxxxxxxxx smlal. */ - return 96; + return 98; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x0100xxxxxxxx1111001x + x1001111xxxxxxxx0010x0xxxxxxxxxx smlal2. */ - return 97; + return 99; } } else @@ -17040,17 +21957,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x0100xxxxxxxx1111010x + x0101111xxxxxxxx0010x0xxxxxxxxxx umlal. */ - return 118; + return 120; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x0100xxxxxxxx1111011x + x1101111xxxxxxxx0010x0xxxxxxxxxx umlal2. */ - return 119; + return 121; } } } @@ -17062,17 +21979,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x0110xxxxxxxx1111000x + x0001111xxxxxxxx0110x0xxxxxxxxxx smlsl. */ - return 100; + return 102; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x0110xxxxxxxx1111001x + x1001111xxxxxxxx0110x0xxxxxxxxxx smlsl2. */ - return 101; + return 103; } } else @@ -17081,17 +21998,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x0110xxxxxxxx1111010x + x0101111xxxxxxxx0110x0xxxxxxxxxx umlsl. */ - return 121; + return 123; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x0110xxxxxxxx1111011x + x1101111xxxxxxxx0110x0xxxxxxxxxx umlsl2. */ - return 122; + return 124; } } } @@ -17099,87 +22016,98 @@ aarch64_opcode_lookup_1 (uint32_t word) } else { - if (((word >> 13) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - if (((word >> 14) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x1000xxxxxxx011110xxx - fmla. */ - return 112; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011110xxxxxxx0001x0xxxxxxxxxx + fmla. */ + return 114; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011111xxxxxxx0001x0xxxxxxxxxx + fmla. */ + return 113; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x1000xxxxxxx111110xxx - fmla. */ - return 111; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011110xxxxxxx0101x0xxxxxxxxxx + fmls. */ + return 116; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011111xxxxxxx0101x0xxxxxxxxxx + fmls. */ + return 115; + } } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x1010xxxxxxx011110xxx - fmls. */ - return 114; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0001111xxxxxxxx0011x0xxxxxxxxxx + sqdmlal. */ + return 100; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1001111xxxxxxxx0011x0xxxxxxxxxx + sqdmlal2. */ + return 101; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x1010xxxxxxx111110xxx - fmls. */ - return 113; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0001111xxxxxxxx0111x0xxxxxxxxxx + sqdmlsl. */ + return 104; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1001111xxxxxxxx0111x0xxxxxxxxxx + sqdmlsl2. */ + return 105; + } } } } else { - if (((word >> 14) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x1100xxxxxxxx11110x0x - sqdmlal. */ - return 98; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x1100xxxxxxxx11110x1x - sqdmlal2. */ - return 99; - } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x1110xxxxxxxx11110x0x - sqdmlsl. */ - return 102; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x1110xxxxxxxx11110x1x - sqdmlsl2. */ - return 103; - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101111xxxxxxxx0xx1x0xxxxxxxxxx + fcmla. */ + return 131; } } } @@ -17191,17 +22119,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1x0xx0xxxxxxxx111100xx + xx001111xxxxxxxx0xx0x1xxxxxxxxxx movi. */ - return 130; + return 133; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1x0xx0xxxxxxxx111101xx + xx101111xxxxxxxx0xx0x1xxxxxxxxxx mvni. */ - return 138; + return 141; } } else @@ -17210,17 +22138,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1x1xx0xxxxxxxx111100xx + xx001111xxxxxxxx0xx1x1xxxxxxxxxx orr. */ - return 131; + return 134; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1x1xx0xxxxxxxx111101xx + xx101111xxxxxxxx0xx1x1xxxxxxxxxx bic. */ - return 139; + return 142; } } } @@ -17235,17 +22163,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx0xx1111100x + x0011111xx0xxxxx0xxxxxxxxxxxxxxx fmadd. */ - return 837; + return 857; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx1xx1111100x + x0011111xx1xxxxx0xxxxxxxxxxxxxxx fnmadd. */ - return 841; + return 861; } } else @@ -17260,17 +22188,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0xx000xxxxxxx01111101x + x10111110xxxxxxx000xx0xxxxxxxxxx fmla. */ - return 422; + return 431; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0xx000xxxxxxx11111101x + x10111111xxxxxxx000xx0xxxxxxxxxx fmla. */ - return 421; + return 430; } } else @@ -17279,17 +22207,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0xx010xxxxxxx01111101x + x10111110xxxxxxx010xx0xxxxxxxxxx fmls. */ - return 424; + return 433; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0xx010xxxxxxx11111101x + x10111111xxxxxxx010xx0xxxxxxxxxx fmls. */ - return 423; + return 432; } } } @@ -17299,17 +22227,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0xx100xxxxxxxx1111101x + x1011111xxxxxxxx001xx0xxxxxxxxxx sqdmlal. */ - return 416; + return 425; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0xx110xxxxxxxx1111101x + x1011111xxxxxxxx011xx0xxxxxxxxxx sqdmlsl. */ - return 417; + return 426; } } } @@ -17321,17 +22249,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1x00x0xxxxxxxx1111101x + x1011111xxxxxxxx0x00x1xxxxxxxxxx sshr. */ - return 581; + return 590; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1x01x0xxxxxxxx1111101x + x1011111xxxxxxxx0x10x1xxxxxxxxxx srshr. */ - return 583; + return 592; } } else @@ -17342,17 +22270,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1x1000xxxxxxxx1111101x + x1011111xxxxxxxx0001x1xxxxxxxxxx ssra. */ - return 582; + return 591; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1x1010xxxxxxxx1111101x + x1011111xxxxxxxx0101x1xxxxxxxxxx shl. */ - return 585; + return 594; } } else @@ -17361,17 +22289,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1x1100xxxxxxxx1111101x + x1011111xxxxxxxx0011x1xxxxxxxxxx srsra. */ - return 584; + return 593; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1x1110xxxxxxxx1111101x + x1011111xxxxxxxx0111x1xxxxxxxxxx sqshl. */ - return 586; + return 595; } } } @@ -17388,17 +22316,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxx0000xxxxxxxx111111xx + xx111111xxxxxxxx0000xxxxxxxxxxxx ushr. */ - return 593; + return 602; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxx0010xxxxxxxx111111xx + xx111111xxxxxxxx0100xxxxxxxxxxxx sri. */ - return 597; + return 606; } } else @@ -17407,17 +22335,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxx0100xxxxxxxx111111xx + xx111111xxxxxxxx0010xxxxxxxxxxxx urshr. */ - return 595; + return 604; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxx0110xxxxxxxx111111xx + xx111111xxxxxxxx0110xxxxxxxxxxxx sqshlu. */ - return 599; + return 608; } } } @@ -17429,17 +22357,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxx1000xxxxxxxx111111xx + xx111111xxxxxxxx0001xxxxxxxxxxxx usra. */ - return 594; + return 603; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxx1010xxxxxxxx111111xx + xx111111xxxxxxxx0101xxxxxxxxxxxx sli. */ - return 598; + return 607; } } else @@ -17448,17 +22376,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxx1100xxxxxxxx111111xx + xx111111xxxxxxxx0011xxxxxxxxxxxx ursra. */ - return 596; + return 605; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxx1110xxxxxxxx111111xx + xx111111xxxxxxxx0111xxxxxxxxxxxx uqshl. */ - return 600; + return 609; } } } @@ -17477,59 +22405,125 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 14) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x0001xxxxxxxx11110xxx - mul. */ - return 104; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001111xxxxxxxx1000x0xxxxxxxxxx + mul. */ + return 106; + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101111xxxxxxxx1000x0xxxxxxxxxx + fmlal2. */ + return 2367; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101111xxxxxxxx1000x0xxxxxxxxxx + fmlal2. */ + return 2371; + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x0011xxxxxxxx11110xxx - sqdmulh. */ - return 109; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001111xxxxxxxx1100x0xxxxxxxxxx + sqdmulh. */ + return 111; + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101111xxxxxxxx1100x0xxxxxxxxxx + fmlsl2. */ + return 2368; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101111xxxxxxxx1100x0xxxxxxxxxx + fmlsl2. */ + return 2372; + } + } } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x01x1xxxxxxxx1111000x - smull. */ - return 105; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0001111xxxxxxxx1010x0xxxxxxxxxx + smull. */ + return 107; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1001111xxxxxxxx1010x0xxxxxxxxxx + smull2. */ + return 108; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x01x1xxxxxxxx1111001x - smull2. */ - return 106; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101111xxxxxxxx1010x0xxxxxxxxxx + umull. */ + return 125; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101111xxxxxxxx1010x0xxxxxxxxxx + umull2. */ + return 126; + } } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x01x1xxxxxxxx1111010x - umull. */ - return 123; + xx001111xxxxxxxx1110x0xxxxxxxxxx + sdot. */ + return 2339; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x01x1xxxxxxxx1111011x - umull2. */ - return 124; + xx101111xxxxxxxx1110x0xxxxxxxxxx + udot. */ + return 2338; } } } @@ -17546,17 +22540,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x1001xxxxxxx0111100xx + xx0011110xxxxxxx1001x0xxxxxxxxxx fmul. */ - return 116; + return 118; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x1001xxxxxxx0111101xx + xx1011110xxxxxxx1001x0xxxxxxxxxx fmulx. */ - return 126; + return 128; } } else @@ -17565,17 +22559,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x1001xxxxxxx1111100xx + xx0011111xxxxxxx1001x0xxxxxxxxxx fmul. */ - return 115; + return 117; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x1001xxxxxxx1111101xx + xx1011111xxxxxxx1001x0xxxxxxxxxx fmulx. */ - return 125; + return 127; } } } @@ -17585,17 +22579,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x1011xxxxxxxx111100xx + xx001111xxxxxxxx1101x0xxxxxxxxxx sqrdmulh. */ - return 110; + return 112; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x1011xxxxxxxx111101xx + xx101111xxxxxxxx1101x0xxxxxxxxxx sqrdmlah. */ - return 127; + return 129; } } } @@ -17607,26 +22601,81 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x1101xxxxxxxx11110x0x + x0x01111xxxxxxxx1011x0xxxxxxxxxx sqdmull. */ - return 107; + return 109; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x1101xxxxxxxx11110x1x + x1x01111xxxxxxxx1011x0xxxxxxxxxx sqdmull2. */ - return 108; + return 110; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x1111xxxxxxxx11110xxx - sqrdmlsh. */ - return 128; + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx00111100xxxxxx1111x0xxxxxxxxxx + sudot. */ + return 2418; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx00111110xxxxxx1111x0xxxxxxxxxx + usdot. */ + return 2417; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx00111101xxxxxx1111x0xxxxxxxxxx + bfdot. */ + return 2429; + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x000111111xxxxxx1111x0xxxxxxxxxx + bfmlalb. */ + return 2437; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x100111111xxxxxx1111x0xxxxxxxxxx + bfmlalt. */ + return 2436; + } + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101111xxxxxxxx1111x0xxxxxxxxxx + sqrdmlsh. */ + return 130; + } } } } @@ -17643,17 +22692,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx100x01xxxxxxxx111100xx + xx001111xxxxxxxx10x001xxxxxxxxxx movi. */ - return 132; + return 135; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx100x01xxxxxxxx111101xx + xx101111xxxxxxxx10x001xxxxxxxxxx mvni. */ - return 140; + return 143; } } else @@ -17662,17 +22711,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx101x01xxxxxxxx111100xx + xx001111xxxxxxxx10x101xxxxxxxxxx orr. */ - return 133; + return 136; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx101x01xxxxxxxx111101xx + xx101111xxxxxxxx10x101xxxxxxxxxx bic. */ - return 141; + return 144; } } } @@ -17684,17 +22733,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx10x011xxxxxxxx111100xx + xx001111xxxxxxxx110x01xxxxxxxxxx movi. */ - return 134; + return 137; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx10x011xxxxxxxx111101xx + xx101111xxxxxxxx110x01xxxxxxxxxx mvni. */ - return 142; + return 145; } } else @@ -17705,17 +22754,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx100111xxxxxxxx111100xx + xx001111xxxxxxxx111001xxxxxxxxxx movi. */ - return 135; + return 138; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx100111xxxxxxxx111101xx + xx101111xxxxxxxx111001xxxxxxxxxx movi. */ - return 143; + return 146; } } else @@ -17724,17 +22773,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx101111xxxxxxxx111100xx + xx001111xxxxxxxx111101xxxxxxxxxx fmov. */ - return 136; + return 139; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx101111xxxxxxxx111101xx + xx101111xxxxxxxx111101xxxxxxxxxx fmov. */ - return 145; + return 148; } } } @@ -17750,17 +22799,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110xx1xxxxxxxx1111000x + x0001111xxxxxxxx1xx011xxxxxxxxxx rshrn. */ - return 373; + return 382; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110xx1xxxxxxxx1111001x + x1001111xxxxxxxx1xx011xxxxxxxxxx rshrn2. */ - return 374; + return 383; } } else @@ -17769,17 +22818,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110xx1xxxxxxxx1111010x + x0101111xxxxxxxx1xx011xxxxxxxxxx sqrshrun. */ - return 397; + return 406; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110xx1xxxxxxxx1111011x + x1101111xxxxxxxx1xx011xxxxxxxxxx sqrshrun2. */ - return 398; + return 407; } } } @@ -17793,17 +22842,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1110x1xxxxxxxx1111000x + x0001111xxxxxxxx1x0111xxxxxxxxxx sqrshrn. */ - return 377; + return 386; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1110x1xxxxxxxx1111001x + x1001111xxxxxxxx1x0111xxxxxxxxxx sqrshrn2. */ - return 378; + return 387; } } else @@ -17812,17 +22861,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1110x1xxxxxxxx1111010x + x0101111xxxxxxxx1x0111xxxxxxxxxx uqrshrn. */ - return 401; + return 410; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1110x1xxxxxxxx1111011x + x1101111xxxxxxxx1x0111xxxxxxxxxx uqrshrn2. */ - return 402; + return 411; } } } @@ -17832,17 +22881,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1111x1xxxxxxxx111100xx + xx001111xxxxxxxx1x1111xxxxxxxxxx fmov. */ - return 137; + return 140; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1111x1xxxxxxxx111101xx + xx101111xxxxxxxx1x1111xxxxxxxxxx fcvtzu. */ - return 409; + return 418; } } } @@ -17859,17 +22908,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx0xx1111100x + x0011111xx0xxxxx1xxxxxxxxxxxxxxx fmsub. */ - return 839; + return 859; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx1xx1111100x + x0011111xx1xxxxx1xxxxxxxxxxxxxxx fnmsub. */ - return 843; + return 863; } } else @@ -17880,9 +22929,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x0xx1xxxxxxxx1111101x + x1011111xxxxxxxx1xx0x0xxxxxxxxxx sqdmulh. */ - return 419; + return 428; } else { @@ -17894,35 +22943,35 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x1001xxxxxxx01111101x + x10111110xxxxxxx1001x0xxxxxxxxxx fmul. */ - return 426; + return 435; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x1001xxxxxxx11111101x + x10111111xxxxxxx1001x0xxxxxxxxxx fmul. */ - return 425; + return 434; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x1011xxxxxxxx1111101x + x1011111xxxxxxxx1101x0xxxxxxxxxx sqrdmulh. */ - return 420; + return 429; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x11x1xxxxxxxx1111101x + x1011111xxxxxxxx1x11x0xxxxxxxxxx sqdmull. */ - return 418; + return 427; } } } @@ -17934,17 +22983,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx100xx1xxxxxxxx1111101x + x1011111xxxxxxxx1xx001xxxxxxxxxx scvtf. */ - return 589; + return 598; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx101xx1xxxxxxxx1111101x + x1011111xxxxxxxx1xx101xxxxxxxxxx sqshrn. */ - return 587; + return 596; } } else @@ -17953,17 +23002,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx11x0x1xxxxxxxx1111101x + x1011111xxxxxxxx1x0x11xxxxxxxxxx sqrshrn. */ - return 588; + return 597; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx11x1x1xxxxxxxx1111101x + x1011111xxxxxxxx1x1x11xxxxxxxxxx fcvtzs. */ - return 591; + return 600; } } } @@ -17981,35 +23030,35 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0xx001xxxxxxx0111111xx + xx1111110xxxxxxx100xx0xxxxxxxxxx fmulx. */ - return 428; + return 437; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0xx001xxxxxxx1111111xx + xx1111111xxxxxxx100xx0xxxxxxxxxx fmulx. */ - return 427; + return 436; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0xx011xxxxxxxx111111xx + xx111111xxxxxxxx110xx0xxxxxxxxxx sqrdmlah. */ - return 429; + return 438; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0xx1x1xxxxxxxx111111xx + xx111111xxxxxxxx1x1xx0xxxxxxxxxx sqrdmlsh. */ - return 430; + return 439; } } else @@ -18022,26 +23071,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1000x1xxxxxxxx111111xx + xx111111xxxxxxxx1x0001xxxxxxxxxx sqshrun. */ - return 601; + return 610; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1001x1xxxxxxxx111111xx + xx111111xxxxxxxx1x1001xxxxxxxxxx ucvtf. */ - return 605; + return 614; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx101xx1xxxxxxxx111111xx + xx111111xxxxxxxx1xx101xxxxxxxxxx uqshrn. */ - return 603; + return 612; } } else @@ -18050,9 +23099,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110xx1xxxxxxxx111111xx + xx111111xxxxxxxx1xx011xxxxxxxxxx sqrshrun. */ - return 602; + return 611; } else { @@ -18060,17 +23109,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1110x1xxxxxxxx111111xx + xx111111xxxxxxxx1x0111xxxxxxxxxx uqrshrn. */ - return 604; + return 613; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1111x1xxxxxxxx111111xx + xx111111xxxxxxxx1x1111xxxxxxxxxx fcvtzu. */ - return 607; + return 616; } } } @@ -18101,208 +23150,254 @@ aarch64_find_next_opcode (const aarch64_opcode *opcode) int value; switch (key) { - case 938: value = 942; break; /* stnp --> stp. */ - case 942: return NULL; /* stp --> NULL. */ - case 936: value = 937; break; /* stllrb --> stllrh. */ - case 937: return NULL; /* stllrh --> NULL. */ - case 939: value = 943; break; /* ldnp --> ldp. */ - case 943: return NULL; /* ldp --> NULL. */ - case 1154: value = 1155; break; /* msr --> hint. */ - case 1155: value = 1169; break; /* hint --> clrex. */ - case 1169: value = 1170; break; /* clrex --> dsb. */ - case 1170: value = 1171; break; /* dsb --> dmb. */ - case 1171: value = 1172; break; /* dmb --> isb. */ - case 1172: value = 1173; break; /* isb --> sys. */ - case 1173: value = 1178; break; /* sys --> msr. */ - case 1178: return NULL; /* msr --> NULL. */ - case 1179: value = 1180; break; /* sysl --> mrs. */ - case 1180: return NULL; /* mrs --> NULL. */ - case 431: value = 432; break; /* st4 --> st1. */ - case 432: value = 433; break; /* st1 --> st2. */ - case 433: value = 434; break; /* st2 --> st3. */ - case 434: return NULL; /* st3 --> NULL. */ - case 439: value = 440; break; /* st4 --> st1. */ - case 440: value = 441; break; /* st1 --> st2. */ - case 441: value = 442; break; /* st2 --> st3. */ - case 442: return NULL; /* st3 --> NULL. */ - case 435: value = 436; break; /* ld4 --> ld1. */ - case 436: value = 437; break; /* ld1 --> ld2. */ - case 437: value = 438; break; /* ld2 --> ld3. */ - case 438: return NULL; /* ld3 --> NULL. */ - case 451: value = 453; break; /* ld1 --> ld1r. */ - case 453: return NULL; /* ld1r --> NULL. */ - case 455: value = 457; break; /* ld2 --> ld2r. */ - case 457: return NULL; /* ld2r --> NULL. */ - case 452: value = 454; break; /* ld3 --> ld3r. */ - case 454: return NULL; /* ld3r --> NULL. */ - case 456: value = 458; break; /* ld4 --> ld4r. */ - case 458: return NULL; /* ld4r --> NULL. */ - case 443: value = 444; break; /* ld4 --> ld1. */ - case 444: value = 445; break; /* ld1 --> ld2. */ - case 445: value = 446; break; /* ld2 --> ld3. */ - case 446: return NULL; /* ld3 --> NULL. */ - case 463: value = 465; break; /* ld1 --> ld1r. */ - case 465: return NULL; /* ld1r --> NULL. */ - case 464: value = 466; break; /* ld3 --> ld3r. */ - case 466: return NULL; /* ld3r --> NULL. */ - case 467: value = 469; break; /* ld2 --> ld2r. */ - case 469: return NULL; /* ld2r --> NULL. */ - case 468: value = 470; break; /* ld4 --> ld4r. */ - case 470: return NULL; /* ld4r --> NULL. */ - case 749: value = 750; break; /* fcvtzs --> fcvtzs. */ - case 750: return NULL; /* fcvtzs --> NULL. */ - case 745: value = 746; break; /* scvtf --> scvtf. */ - case 746: return NULL; /* scvtf --> NULL. */ - case 751: value = 752; break; /* fcvtzu --> fcvtzu. */ - case 752: return NULL; /* fcvtzu --> NULL. */ - case 747: value = 748; break; /* ucvtf --> ucvtf. */ - case 748: return NULL; /* ucvtf --> NULL. */ - case 753: value = 754; break; /* fcvtns --> fcvtns. */ - case 754: return NULL; /* fcvtns --> NULL. */ - case 773: value = 774; break; /* fcvtms --> fcvtms. */ - case 774: return NULL; /* fcvtms --> NULL. */ - case 769: value = 770; break; /* fcvtps --> fcvtps. */ - case 770: return NULL; /* fcvtps --> NULL. */ - case 777: value = 778; break; /* fcvtzs --> fcvtzs. */ - case 778: return NULL; /* fcvtzs --> NULL. */ - case 761: value = 762; break; /* fcvtas --> fcvtas. */ - case 762: return NULL; /* fcvtas --> NULL. */ - case 757: value = 758; break; /* scvtf --> scvtf. */ - case 758: return NULL; /* scvtf --> NULL. */ - case 765: value = 766; break; /* fmov --> fmov. */ - case 766: return NULL; /* fmov --> NULL. */ - case 755: value = 756; break; /* fcvtnu --> fcvtnu. */ - case 756: return NULL; /* fcvtnu --> NULL. */ - case 775: value = 776; break; /* fcvtmu --> fcvtmu. */ - case 776: return NULL; /* fcvtmu --> NULL. */ - case 771: value = 772; break; /* fcvtpu --> fcvtpu. */ - case 772: return NULL; /* fcvtpu --> NULL. */ - case 779: value = 780; break; /* fcvtzu --> fcvtzu. */ - case 780: return NULL; /* fcvtzu --> NULL. */ - case 763: value = 764; break; /* fcvtau --> fcvtau. */ - case 764: return NULL; /* fcvtau --> NULL. */ - case 759: value = 760; break; /* ucvtf --> ucvtf. */ - case 760: return NULL; /* ucvtf --> NULL. */ - case 767: value = 768; break; /* fmov --> fmov. */ - case 768: return NULL; /* fmov --> NULL. */ - case 796: value = 797; break; /* fmov --> fmov. */ - case 797: return NULL; /* fmov --> NULL. */ - case 805: value = 806; break; /* frintn --> frintn. */ - case 806: return NULL; /* frintn --> NULL. */ - case 800: value = 801; break; /* fneg --> fneg. */ - case 801: return NULL; /* fneg --> NULL. */ - case 809: value = 810; break; /* frintm --> frintm. */ - case 810: return NULL; /* frintm --> NULL. */ - case 798: value = 799; break; /* fabs --> fabs. */ - case 799: return NULL; /* fabs --> NULL. */ - case 807: value = 808; break; /* frintp --> frintp. */ - case 808: return NULL; /* frintp --> NULL. */ - case 802: value = 803; break; /* fsqrt --> fsqrt. */ - case 803: return NULL; /* fsqrt --> NULL. */ - case 811: value = 812; break; /* frintz --> frintz. */ - case 812: return NULL; /* frintz --> NULL. */ - case 813: value = 814; break; /* frinta --> frinta. */ - case 814: return NULL; /* frinta --> NULL. */ - case 815: value = 816; break; /* frintx --> frintx. */ - case 816: return NULL; /* frintx --> NULL. */ - case 817: value = 818; break; /* frinti --> frinti. */ - case 818: return NULL; /* frinti --> NULL. */ - case 788: value = 789; break; /* fcmp --> fcmp. */ - case 789: return NULL; /* fcmp --> NULL. */ - case 790: value = 791; break; /* fcmpe --> fcmpe. */ - case 791: return NULL; /* fcmpe --> NULL. */ - case 792: value = 793; break; /* fcmp --> fcmp. */ - case 793: return NULL; /* fcmp --> NULL. */ - case 794: value = 795; break; /* fcmpe --> fcmpe. */ - case 795: return NULL; /* fcmpe --> NULL. */ - case 845: value = 846; break; /* fmov --> fmov. */ - case 846: return NULL; /* fmov --> NULL. */ - case 819: value = 820; break; /* fmul --> fmul. */ - case 820: return NULL; /* fmul --> NULL. */ - case 835: value = 836; break; /* fnmul --> fnmul. */ - case 836: return NULL; /* fnmul --> NULL. */ - case 827: value = 828; break; /* fmax --> fmax. */ - case 828: return NULL; /* fmax --> NULL. */ - case 823: value = 824; break; /* fadd --> fadd. */ - case 824: return NULL; /* fadd --> NULL. */ - case 831: value = 832; break; /* fmaxnm --> fmaxnm. */ - case 832: return NULL; /* fmaxnm --> NULL. */ - case 821: value = 822; break; /* fdiv --> fdiv. */ - case 822: return NULL; /* fdiv --> NULL. */ - case 829: value = 830; break; /* fmin --> fmin. */ - case 830: return NULL; /* fmin --> NULL. */ - case 825: value = 826; break; /* fsub --> fsub. */ - case 826: return NULL; /* fsub --> NULL. */ - case 833: value = 834; break; /* fminnm --> fminnm. */ - case 834: return NULL; /* fminnm --> NULL. */ - case 784: value = 785; break; /* fccmp --> fccmp. */ - case 785: return NULL; /* fccmp --> NULL. */ - case 786: value = 787; break; /* fccmpe --> fccmpe. */ - case 787: return NULL; /* fccmpe --> NULL. */ - case 847: value = 848; break; /* fcsel --> fcsel. */ - case 848: return NULL; /* fcsel --> NULL. */ - case 130: value = 365; break; /* movi --> sshr. */ - case 365: value = 367; break; /* sshr --> srshr. */ - case 367: return NULL; /* srshr --> NULL. */ - case 138: value = 387; break; /* mvni --> ushr. */ - case 387: value = 389; break; /* ushr --> urshr. */ - case 389: value = 391; break; /* urshr --> sri. */ - case 391: value = 393; break; /* sri --> sqshlu. */ - case 393: return NULL; /* sqshlu --> NULL. */ - case 131: value = 366; break; /* orr --> ssra. */ - case 366: value = 368; break; /* ssra --> srsra. */ - case 368: value = 369; break; /* srsra --> shl. */ - case 369: value = 370; break; /* shl --> sqshl. */ - case 370: return NULL; /* sqshl --> NULL. */ - case 139: value = 388; break; /* bic --> usra. */ - case 388: value = 390; break; /* usra --> ursra. */ - case 390: value = 392; break; /* ursra --> sli. */ - case 392: value = 394; break; /* sli --> uqshl. */ - case 394: return NULL; /* uqshl --> NULL. */ - case 837: value = 838; break; /* fmadd --> fmadd. */ - case 838: return NULL; /* fmadd --> NULL. */ - case 841: value = 842; break; /* fnmadd --> fnmadd. */ - case 842: return NULL; /* fnmadd --> NULL. */ - case 132: value = 371; break; /* movi --> shrn. */ - case 371: value = 372; break; /* shrn --> shrn2. */ - case 372: value = 379; break; /* shrn2 --> sshll. */ - case 379: value = 381; break; /* sshll --> sshll2. */ - case 381: return NULL; /* sshll2 --> NULL. */ - case 140: value = 395; break; /* mvni --> sqshrun. */ - case 395: value = 396; break; /* sqshrun --> sqshrun2. */ - case 396: value = 403; break; /* sqshrun2 --> ushll. */ - case 403: value = 405; break; /* ushll --> ushll2. */ - case 405: return NULL; /* ushll2 --> NULL. */ - case 133: value = 375; break; /* orr --> sqshrn. */ - case 375: value = 376; break; /* sqshrn --> sqshrn2. */ - case 376: return NULL; /* sqshrn2 --> NULL. */ - case 141: value = 399; break; /* bic --> uqshrn. */ - case 399: value = 400; break; /* uqshrn --> uqshrn2. */ - case 400: return NULL; /* uqshrn2 --> NULL. */ - case 135: value = 383; break; /* movi --> scvtf. */ - case 383: value = 384; break; /* scvtf --> scvtf. */ - case 384: return NULL; /* scvtf --> NULL. */ - case 143: value = 144; break; /* movi --> movi. */ - case 144: value = 407; break; /* movi --> ucvtf. */ - case 407: value = 408; break; /* ucvtf --> ucvtf. */ - case 408: return NULL; /* ucvtf --> NULL. */ - case 137: value = 385; break; /* fmov --> fcvtzs. */ - case 385: value = 386; break; /* fcvtzs --> fcvtzs. */ - case 386: return NULL; /* fcvtzs --> NULL. */ - case 409: value = 410; break; /* fcvtzu --> fcvtzu. */ - case 410: return NULL; /* fcvtzu --> NULL. */ - case 839: value = 840; break; /* fmsub --> fmsub. */ - case 840: return NULL; /* fmsub --> NULL. */ - case 843: value = 844; break; /* fnmsub --> fnmsub. */ - case 844: return NULL; /* fnmsub --> NULL. */ - case 589: value = 590; break; /* scvtf --> scvtf. */ - case 590: return NULL; /* scvtf --> NULL. */ - case 591: value = 592; break; /* fcvtzs --> fcvtzs. */ - case 592: return NULL; /* fcvtzs --> NULL. */ - case 605: value = 606; break; /* ucvtf --> ucvtf. */ - case 606: return NULL; /* ucvtf --> NULL. */ - case 607: value = 608; break; /* fcvtzu --> fcvtzu. */ - case 608: return NULL; /* fcvtzu --> NULL. */ + case 12: value = 19; break; /* add --> addg. */ + case 19: return NULL; /* addg --> NULL. */ + case 16: value = 20; break; /* sub --> subg. */ + case 20: return NULL; /* subg --> NULL. */ + case 970: value = 974; break; /* stnp --> stp. */ + case 974: return NULL; /* stp --> NULL. */ + case 968: value = 969; break; /* stllrb --> stllrh. */ + case 969: return NULL; /* stllrh --> NULL. */ + case 971: value = 975; break; /* ldnp --> ldp. */ + case 975: return NULL; /* ldp --> NULL. */ + case 1624: value = 1625; break; /* ldff1b --> ldff1b. */ + case 1625: return NULL; /* ldff1b --> NULL. */ + case 1680: value = 1681; break; /* ldff1sw --> ldff1sw. */ + case 1681: return NULL; /* ldff1sw --> NULL. */ + case 1628: value = 1629; break; /* ldff1b --> ldff1b. */ + case 1629: return NULL; /* ldff1b --> NULL. */ + case 1647: value = 1648; break; /* ldff1h --> ldff1h. */ + case 1648: return NULL; /* ldff1h --> NULL. */ + case 1626: value = 1627; break; /* ldff1b --> ldff1b. */ + case 1627: return NULL; /* ldff1b --> NULL. */ + case 1645: value = 1646; break; /* ldff1h --> ldff1h. */ + case 1646: return NULL; /* ldff1h --> NULL. */ + case 1630: value = 1631; break; /* ldff1b --> ldff1b. */ + case 1631: return NULL; /* ldff1b --> NULL. */ + case 1649: value = 1650; break; /* ldff1h --> ldff1h. */ + case 1650: return NULL; /* ldff1h --> NULL. */ + case 1670: value = 1671; break; /* ldff1sh --> ldff1sh. */ + case 1671: return NULL; /* ldff1sh --> NULL. */ + case 1658: value = 1659; break; /* ldff1sb --> ldff1sb. */ + case 1659: return NULL; /* ldff1sb --> NULL. */ + case 1689: value = 1690; break; /* ldff1w --> ldff1w. */ + case 1690: return NULL; /* ldff1w --> NULL. */ + case 1662: value = 1663; break; /* ldff1sb --> ldff1sb. */ + case 1663: return NULL; /* ldff1sb --> NULL. */ + case 1672: value = 1673; break; /* ldff1sh --> ldff1sh. */ + case 1673: return NULL; /* ldff1sh --> NULL. */ + case 1660: value = 1661; break; /* ldff1sb --> ldff1sb. */ + case 1661: return NULL; /* ldff1sb --> NULL. */ + case 1691: value = 1692; break; /* ldff1w --> ldff1w. */ + case 1692: return NULL; /* ldff1w --> NULL. */ + case 1636: value = 1637; break; /* ldff1d --> ldff1d. */ + case 1637: return NULL; /* ldff1d --> NULL. */ + case 810: value = 811; break; /* xaflag --> axflag. */ + case 811: value = 1189; break; /* axflag --> tcommit. */ + case 1189: value = 1192; break; /* tcommit --> msr. */ + case 1192: value = 1193; break; /* msr --> hint. */ + case 1193: value = 1209; break; /* hint --> clrex. */ + case 1209: value = 1210; break; /* clrex --> dsb. */ + case 1210: value = 1213; break; /* dsb --> dmb. */ + case 1213: value = 1214; break; /* dmb --> isb. */ + case 1214: value = 1215; break; /* isb --> sb. */ + case 1215: value = 1216; break; /* sb --> sys. */ + case 1216: value = 1224; break; /* sys --> msr. */ + case 1224: value = 2373; break; /* msr --> cfinv. */ + case 2373: value = 2390; break; /* cfinv --> dgh. */ + case 2390: return NULL; /* dgh --> NULL. */ + case 1188: value = 1190; break; /* tstart --> ttest. */ + case 1190: value = 1225; break; /* ttest --> sysl. */ + case 1225: value = 1226; break; /* sysl --> mrs. */ + case 1226: return NULL; /* mrs --> NULL. */ + case 440: value = 441; break; /* st4 --> st1. */ + case 441: value = 442; break; /* st1 --> st2. */ + case 442: value = 443; break; /* st2 --> st3. */ + case 443: return NULL; /* st3 --> NULL. */ + case 448: value = 449; break; /* st4 --> st1. */ + case 449: value = 450; break; /* st1 --> st2. */ + case 450: value = 451; break; /* st2 --> st3. */ + case 451: return NULL; /* st3 --> NULL. */ + case 444: value = 445; break; /* ld4 --> ld1. */ + case 445: value = 446; break; /* ld1 --> ld2. */ + case 446: value = 447; break; /* ld2 --> ld3. */ + case 447: return NULL; /* ld3 --> NULL. */ + case 460: value = 462; break; /* ld1 --> ld1r. */ + case 462: return NULL; /* ld1r --> NULL. */ + case 464: value = 466; break; /* ld2 --> ld2r. */ + case 466: return NULL; /* ld2r --> NULL. */ + case 461: value = 463; break; /* ld3 --> ld3r. */ + case 463: return NULL; /* ld3r --> NULL. */ + case 465: value = 467; break; /* ld4 --> ld4r. */ + case 467: return NULL; /* ld4r --> NULL. */ + case 452: value = 453; break; /* ld4 --> ld1. */ + case 453: value = 454; break; /* ld1 --> ld2. */ + case 454: value = 455; break; /* ld2 --> ld3. */ + case 455: return NULL; /* ld3 --> NULL. */ + case 472: value = 474; break; /* ld1 --> ld1r. */ + case 474: return NULL; /* ld1r --> NULL. */ + case 473: value = 475; break; /* ld3 --> ld3r. */ + case 475: return NULL; /* ld3r --> NULL. */ + case 476: value = 478; break; /* ld2 --> ld2r. */ + case 478: return NULL; /* ld2r --> NULL. */ + case 477: value = 479; break; /* ld4 --> ld4r. */ + case 479: return NULL; /* ld4r --> NULL. */ + case 763: value = 764; break; /* fcvtzs --> fcvtzs. */ + case 764: return NULL; /* fcvtzs --> NULL. */ + case 759: value = 760; break; /* scvtf --> scvtf. */ + case 760: return NULL; /* scvtf --> NULL. */ + case 765: value = 766; break; /* fcvtzu --> fcvtzu. */ + case 766: return NULL; /* fcvtzu --> NULL. */ + case 761: value = 762; break; /* ucvtf --> ucvtf. */ + case 762: return NULL; /* ucvtf --> NULL. */ + case 767: value = 768; break; /* fcvtns --> fcvtns. */ + case 768: return NULL; /* fcvtns --> NULL. */ + case 787: value = 788; break; /* fcvtms --> fcvtms. */ + case 788: return NULL; /* fcvtms --> NULL. */ + case 783: value = 784; break; /* fcvtps --> fcvtps. */ + case 784: return NULL; /* fcvtps --> NULL. */ + case 791: value = 792; break; /* fcvtzs --> fcvtzs. */ + case 792: return NULL; /* fcvtzs --> NULL. */ + case 775: value = 776; break; /* fcvtas --> fcvtas. */ + case 776: return NULL; /* fcvtas --> NULL. */ + case 771: value = 772; break; /* scvtf --> scvtf. */ + case 772: return NULL; /* scvtf --> NULL. */ + case 779: value = 780; break; /* fmov --> fmov. */ + case 780: return NULL; /* fmov --> NULL. */ + case 769: value = 770; break; /* fcvtnu --> fcvtnu. */ + case 770: return NULL; /* fcvtnu --> NULL. */ + case 789: value = 790; break; /* fcvtmu --> fcvtmu. */ + case 790: return NULL; /* fcvtmu --> NULL. */ + case 785: value = 786; break; /* fcvtpu --> fcvtpu. */ + case 786: return NULL; /* fcvtpu --> NULL. */ + case 793: value = 794; break; /* fcvtzu --> fcvtzu. */ + case 794: return NULL; /* fcvtzu --> NULL. */ + case 777: value = 778; break; /* fcvtau --> fcvtau. */ + case 778: return NULL; /* fcvtau --> NULL. */ + case 773: value = 774; break; /* ucvtf --> ucvtf. */ + case 774: return NULL; /* ucvtf --> NULL. */ + case 781: value = 782; break; /* fmov --> fmov. */ + case 782: return NULL; /* fmov --> NULL. */ + case 816: value = 817; break; /* fmov --> fmov. */ + case 817: return NULL; /* fmov --> NULL. */ + case 825: value = 826; break; /* frintn --> frintn. */ + case 826: return NULL; /* frintn --> NULL. */ + case 820: value = 821; break; /* fneg --> fneg. */ + case 821: return NULL; /* fneg --> NULL. */ + case 829: value = 830; break; /* frintm --> frintm. */ + case 830: return NULL; /* frintm --> NULL. */ + case 818: value = 819; break; /* fabs --> fabs. */ + case 819: return NULL; /* fabs --> NULL. */ + case 827: value = 828; break; /* frintp --> frintp. */ + case 828: return NULL; /* frintp --> NULL. */ + case 822: value = 823; break; /* fsqrt --> fsqrt. */ + case 823: return NULL; /* fsqrt --> NULL. */ + case 831: value = 832; break; /* frintz --> frintz. */ + case 832: return NULL; /* frintz --> NULL. */ + case 824: value = 2433; break; /* fcvt --> bfcvt. */ + case 2433: return NULL; /* bfcvt --> NULL. */ + case 833: value = 834; break; /* frinta --> frinta. */ + case 834: return NULL; /* frinta --> NULL. */ + case 835: value = 836; break; /* frintx --> frintx. */ + case 836: return NULL; /* frintx --> NULL. */ + case 837: value = 838; break; /* frinti --> frinti. */ + case 838: return NULL; /* frinti --> NULL. */ + case 802: value = 803; break; /* fcmp --> fcmp. */ + case 803: return NULL; /* fcmp --> NULL. */ + case 804: value = 805; break; /* fcmpe --> fcmpe. */ + case 805: return NULL; /* fcmpe --> NULL. */ + case 806: value = 807; break; /* fcmp --> fcmp. */ + case 807: return NULL; /* fcmp --> NULL. */ + case 808: value = 809; break; /* fcmpe --> fcmpe. */ + case 809: return NULL; /* fcmpe --> NULL. */ + case 865: value = 866; break; /* fmov --> fmov. */ + case 866: return NULL; /* fmov --> NULL. */ + case 839: value = 840; break; /* fmul --> fmul. */ + case 840: return NULL; /* fmul --> NULL. */ + case 855: value = 856; break; /* fnmul --> fnmul. */ + case 856: return NULL; /* fnmul --> NULL. */ + case 847: value = 848; break; /* fmax --> fmax. */ + case 848: return NULL; /* fmax --> NULL. */ + case 843: value = 844; break; /* fadd --> fadd. */ + case 844: return NULL; /* fadd --> NULL. */ + case 851: value = 852; break; /* fmaxnm --> fmaxnm. */ + case 852: return NULL; /* fmaxnm --> NULL. */ + case 841: value = 842; break; /* fdiv --> fdiv. */ + case 842: return NULL; /* fdiv --> NULL. */ + case 849: value = 850; break; /* fmin --> fmin. */ + case 850: return NULL; /* fmin --> NULL. */ + case 845: value = 846; break; /* fsub --> fsub. */ + case 846: return NULL; /* fsub --> NULL. */ + case 853: value = 854; break; /* fminnm --> fminnm. */ + case 854: return NULL; /* fminnm --> NULL. */ + case 798: value = 799; break; /* fccmp --> fccmp. */ + case 799: return NULL; /* fccmp --> NULL. */ + case 800: value = 801; break; /* fccmpe --> fccmpe. */ + case 801: return NULL; /* fccmpe --> NULL. */ + case 867: value = 868; break; /* fcsel --> fcsel. */ + case 868: return NULL; /* fcsel --> NULL. */ + case 133: value = 374; break; /* movi --> sshr. */ + case 374: value = 376; break; /* sshr --> srshr. */ + case 376: return NULL; /* srshr --> NULL. */ + case 141: value = 396; break; /* mvni --> ushr. */ + case 396: value = 398; break; /* ushr --> urshr. */ + case 398: value = 400; break; /* urshr --> sri. */ + case 400: value = 402; break; /* sri --> sqshlu. */ + case 402: return NULL; /* sqshlu --> NULL. */ + case 134: value = 375; break; /* orr --> ssra. */ + case 375: value = 377; break; /* ssra --> srsra. */ + case 377: value = 378; break; /* srsra --> shl. */ + case 378: value = 379; break; /* shl --> sqshl. */ + case 379: return NULL; /* sqshl --> NULL. */ + case 142: value = 397; break; /* bic --> usra. */ + case 397: value = 399; break; /* usra --> ursra. */ + case 399: value = 401; break; /* ursra --> sli. */ + case 401: value = 403; break; /* sli --> uqshl. */ + case 403: return NULL; /* uqshl --> NULL. */ + case 857: value = 858; break; /* fmadd --> fmadd. */ + case 858: return NULL; /* fmadd --> NULL. */ + case 861: value = 862; break; /* fnmadd --> fnmadd. */ + case 862: return NULL; /* fnmadd --> NULL. */ + case 135: value = 380; break; /* movi --> shrn. */ + case 380: value = 381; break; /* shrn --> shrn2. */ + case 381: value = 388; break; /* shrn2 --> sshll. */ + case 388: value = 390; break; /* sshll --> sshll2. */ + case 390: return NULL; /* sshll2 --> NULL. */ + case 143: value = 404; break; /* mvni --> sqshrun. */ + case 404: value = 405; break; /* sqshrun --> sqshrun2. */ + case 405: value = 412; break; /* sqshrun2 --> ushll. */ + case 412: value = 414; break; /* ushll --> ushll2. */ + case 414: return NULL; /* ushll2 --> NULL. */ + case 136: value = 384; break; /* orr --> sqshrn. */ + case 384: value = 385; break; /* sqshrn --> sqshrn2. */ + case 385: return NULL; /* sqshrn2 --> NULL. */ + case 144: value = 408; break; /* bic --> uqshrn. */ + case 408: value = 409; break; /* uqshrn --> uqshrn2. */ + case 409: return NULL; /* uqshrn2 --> NULL. */ + case 138: value = 392; break; /* movi --> scvtf. */ + case 392: value = 393; break; /* scvtf --> scvtf. */ + case 393: return NULL; /* scvtf --> NULL. */ + case 146: value = 147; break; /* movi --> movi. */ + case 147: value = 416; break; /* movi --> ucvtf. */ + case 416: value = 417; break; /* ucvtf --> ucvtf. */ + case 417: return NULL; /* ucvtf --> NULL. */ + case 140: value = 394; break; /* fmov --> fcvtzs. */ + case 394: value = 395; break; /* fcvtzs --> fcvtzs. */ + case 395: return NULL; /* fcvtzs --> NULL. */ + case 418: value = 419; break; /* fcvtzu --> fcvtzu. */ + case 419: return NULL; /* fcvtzu --> NULL. */ + case 859: value = 860; break; /* fmsub --> fmsub. */ + case 860: return NULL; /* fmsub --> NULL. */ + case 863: value = 864; break; /* fnmsub --> fnmsub. */ + case 864: return NULL; /* fnmsub --> NULL. */ + case 598: value = 599; break; /* scvtf --> scvtf. */ + case 599: return NULL; /* scvtf --> NULL. */ + case 600: value = 601; break; /* fcvtzs --> fcvtzs. */ + case 601: return NULL; /* fcvtzs --> NULL. */ + case 614: value = 615; break; /* ucvtf --> ucvtf. */ + case 615: return NULL; /* ucvtf --> NULL. */ + case 616: value = 617; break; /* fcvtzu --> fcvtzu. */ + case 617: return NULL; /* fcvtzu --> NULL. */ default: return NULL; } @@ -18324,124 +23419,126 @@ aarch64_find_alias_opcode (const aarch64_opcode *opcode) case 12: value = 13; break; /* add --> mov. */ case 14: value = 15; break; /* adds --> cmn. */ case 17: value = 18; break; /* subs --> cmp. */ - case 20: value = 21; break; /* adds --> cmn. */ - case 22: value = 23; break; /* sub --> neg. */ - case 24: value = 26; break; /* subs --> negs. */ - case 149: value = 150; break; /* umov --> mov. */ - case 151: value = 152; break; /* ins --> mov. */ - case 153: value = 154; break; /* ins --> mov. */ - case 235: value = 236; break; /* not --> mvn. */ - case 310: value = 311; break; /* orr --> mov. */ - case 379: value = 380; break; /* sshll --> sxtl. */ - case 381: value = 382; break; /* sshll2 --> sxtl2. */ - case 403: value = 404; break; /* ushll --> uxtl. */ - case 405: value = 406; break; /* ushll2 --> uxtl2. */ - case 526: value = 527; break; /* dup --> mov. */ - case 609: value = 614; break; /* sbfm --> sxtw. */ - case 616: value = 618; break; /* bfm --> bfc. */ - case 620: value = 624; break; /* ubfm --> uxth. */ - case 654: value = 656; break; /* csinc --> cset. */ - case 657: value = 659; break; /* csinv --> csetm. */ - case 660: value = 661; break; /* csneg --> cneg. */ - case 679: value = 679; break; /* rev --> rev. */ - case 704: value = 705; break; /* lslv --> lsl. */ - case 706: value = 707; break; /* lsrv --> lsr. */ - case 708: value = 709; break; /* asrv --> asr. */ - case 710: value = 711; break; /* rorv --> ror. */ - case 721: value = 722; break; /* madd --> mul. */ - case 723: value = 724; break; /* msub --> mneg. */ - case 725: value = 726; break; /* smaddl --> smull. */ - case 727: value = 728; break; /* smsubl --> smnegl. */ - case 730: value = 731; break; /* umaddl --> umull. */ - case 732: value = 733; break; /* umsubl --> umnegl. */ - case 743: value = 744; break; /* extr --> ror. */ - case 956: value = 957; break; /* and --> bic. */ - case 958: value = 959; break; /* orr --> mov. */ - case 961: value = 962; break; /* ands --> tst. */ - case 965: value = 967; break; /* orr --> uxtw. */ - case 968: value = 969; break; /* orn --> mvn. */ - case 972: value = 973; break; /* ands --> tst. */ - case 1003: value = 1099; break; /* ldaddb --> staddb. */ - case 1004: value = 1100; break; /* ldaddh --> staddh. */ - case 1005: value = 1101; break; /* ldadd --> stadd. */ - case 1007: value = 1102; break; /* ldaddlb --> staddlb. */ - case 1010: value = 1103; break; /* ldaddlh --> staddlh. */ - case 1013: value = 1104; break; /* ldaddl --> staddl. */ - case 1015: value = 1105; break; /* ldclrb --> stclrb. */ - case 1016: value = 1106; break; /* ldclrh --> stclrh. */ - case 1017: value = 1107; break; /* ldclr --> stclr. */ - case 1019: value = 1108; break; /* ldclrlb --> stclrlb. */ - case 1022: value = 1109; break; /* ldclrlh --> stclrlh. */ - case 1025: value = 1110; break; /* ldclrl --> stclrl. */ - case 1027: value = 1111; break; /* ldeorb --> steorb. */ - case 1028: value = 1112; break; /* ldeorh --> steorh. */ - case 1029: value = 1113; break; /* ldeor --> steor. */ - case 1031: value = 1114; break; /* ldeorlb --> steorlb. */ - case 1034: value = 1115; break; /* ldeorlh --> steorlh. */ - case 1037: value = 1116; break; /* ldeorl --> steorl. */ - case 1039: value = 1117; break; /* ldsetb --> stsetb. */ - case 1040: value = 1118; break; /* ldseth --> stseth. */ - case 1041: value = 1119; break; /* ldset --> stset. */ - case 1043: value = 1120; break; /* ldsetlb --> stsetlb. */ - case 1046: value = 1121; break; /* ldsetlh --> stsetlh. */ - case 1049: value = 1122; break; /* ldsetl --> stsetl. */ - case 1051: value = 1123; break; /* ldsmaxb --> stsmaxb. */ - case 1052: value = 1124; break; /* ldsmaxh --> stsmaxh. */ - case 1053: value = 1125; break; /* ldsmax --> stsmax. */ - case 1055: value = 1126; break; /* ldsmaxlb --> stsmaxlb. */ - case 1058: value = 1127; break; /* ldsmaxlh --> stsmaxlh. */ - case 1061: value = 1128; break; /* ldsmaxl --> stsmaxl. */ - case 1063: value = 1129; break; /* ldsminb --> stsminb. */ - case 1064: value = 1130; break; /* ldsminh --> stsminh. */ - case 1065: value = 1131; break; /* ldsmin --> stsmin. */ - case 1067: value = 1132; break; /* ldsminlb --> stsminlb. */ - case 1070: value = 1133; break; /* ldsminlh --> stsminlh. */ - case 1073: value = 1134; break; /* ldsminl --> stsminl. */ - case 1075: value = 1135; break; /* ldumaxb --> stumaxb. */ - case 1076: value = 1136; break; /* ldumaxh --> stumaxh. */ - case 1077: value = 1137; break; /* ldumax --> stumax. */ - case 1079: value = 1138; break; /* ldumaxlb --> stumaxlb. */ - case 1082: value = 1139; break; /* ldumaxlh --> stumaxlh. */ - case 1085: value = 1140; break; /* ldumaxl --> stumaxl. */ - case 1087: value = 1141; break; /* lduminb --> stuminb. */ - case 1088: value = 1142; break; /* lduminh --> stuminh. */ - case 1089: value = 1143; break; /* ldumin --> stumin. */ - case 1091: value = 1144; break; /* lduminlb --> stuminlb. */ - case 1094: value = 1145; break; /* lduminlh --> stuminlh. */ - case 1097: value = 1146; break; /* lduminl --> stuminl. */ - case 1147: value = 1148; break; /* movn --> mov. */ - case 1149: value = 1150; break; /* movz --> mov. */ - case 1155: value = 1188; break; /* hint --> autibsp. */ - case 1173: value = 1177; break; /* sys --> tlbi. */ - case 1236: value = 1931; break; /* and --> bic. */ - case 1238: value = 1219; break; /* and --> mov. */ - case 1239: value = 1223; break; /* ands --> movs. */ - case 1274: value = 1932; break; /* cmpge --> cmple. */ - case 1277: value = 1935; break; /* cmpgt --> cmplt. */ - case 1279: value = 1933; break; /* cmphi --> cmplo. */ - case 1282: value = 1934; break; /* cmphs --> cmpls. */ - case 1304: value = 1216; break; /* cpy --> mov. */ - case 1305: value = 1218; break; /* cpy --> mov. */ - case 1306: value = 1942; break; /* cpy --> fmov. */ - case 1318: value = 1211; break; /* dup --> mov. */ - case 1319: value = 1213; break; /* dup --> mov. */ - case 1320: value = 1941; break; /* dup --> fmov. */ - case 1321: value = 1214; break; /* dupm --> mov. */ - case 1323: value = 1936; break; /* eor --> eon. */ - case 1325: value = 1224; break; /* eor --> not. */ - case 1326: value = 1225; break; /* eors --> nots. */ - case 1331: value = 1937; break; /* facge --> facle. */ - case 1332: value = 1938; break; /* facgt --> faclt. */ - case 1341: value = 1939; break; /* fcmge --> fcmle. */ - case 1343: value = 1940; break; /* fcmgt --> fcmlt. */ - case 1349: value = 1208; break; /* fcpy --> fmov. */ - case 1366: value = 1207; break; /* fdup --> fmov. */ - case 1664: value = 1209; break; /* orr --> mov. */ - case 1665: value = 1943; break; /* orr --> orn. */ - case 1667: value = 1212; break; /* orr --> mov. */ - case 1668: value = 1222; break; /* orrs --> movs. */ - case 1724: value = 1217; break; /* sel --> mov. */ - case 1725: value = 1220; break; /* sel --> mov. */ + case 22: value = 23; break; /* adds --> cmn. */ + case 24: value = 25; break; /* sub --> neg. */ + case 26: value = 27; break; /* subs --> cmp. */ + case 152: value = 153; break; /* umov --> mov. */ + case 154: value = 155; break; /* ins --> mov. */ + case 156: value = 157; break; /* ins --> mov. */ + case 242: value = 243; break; /* not --> mvn. */ + case 317: value = 318; break; /* orr --> mov. */ + case 388: value = 389; break; /* sshll --> sxtl. */ + case 390: value = 391; break; /* sshll2 --> sxtl2. */ + case 412: value = 413; break; /* ushll --> uxtl. */ + case 414: value = 415; break; /* ushll2 --> uxtl2. */ + case 535: value = 536; break; /* dup --> mov. */ + case 618: value = 623; break; /* sbfm --> sxtw. */ + case 625: value = 627; break; /* bfm --> bfc. */ + case 629: value = 633; break; /* ubfm --> uxth. */ + case 663: value = 665; break; /* csinc --> cset. */ + case 666: value = 668; break; /* csinv --> csetm. */ + case 669: value = 670; break; /* csneg --> cneg. */ + case 688: value = 688; break; /* rev --> rev. */ + case 713: value = 714; break; /* lslv --> lsl. */ + case 715: value = 716; break; /* lsrv --> lsr. */ + case 717: value = 718; break; /* asrv --> asr. */ + case 719: value = 720; break; /* rorv --> ror. */ + case 722: value = 723; break; /* subps --> cmpp. */ + case 735: value = 736; break; /* madd --> mul. */ + case 737: value = 738; break; /* msub --> mneg. */ + case 739: value = 740; break; /* smaddl --> smull. */ + case 741: value = 742; break; /* smsubl --> smnegl. */ + case 744: value = 745; break; /* umaddl --> umull. */ + case 746: value = 747; break; /* umsubl --> umnegl. */ + case 757: value = 758; break; /* extr --> ror. */ + case 990: value = 991; break; /* and --> bic. */ + case 992: value = 993; break; /* orr --> mov. */ + case 995: value = 996; break; /* ands --> tst. */ + case 999: value = 1001; break; /* orr --> uxtw. */ + case 1002: value = 1003; break; /* orn --> mvn. */ + case 1006: value = 1007; break; /* ands --> tst. */ + case 1037: value = 1133; break; /* ldaddb --> staddb. */ + case 1038: value = 1134; break; /* ldaddh --> staddh. */ + case 1039: value = 1135; break; /* ldadd --> stadd. */ + case 1041: value = 1136; break; /* ldaddlb --> staddlb. */ + case 1044: value = 1137; break; /* ldaddlh --> staddlh. */ + case 1047: value = 1138; break; /* ldaddl --> staddl. */ + case 1049: value = 1139; break; /* ldclrb --> stclrb. */ + case 1050: value = 1140; break; /* ldclrh --> stclrh. */ + case 1051: value = 1141; break; /* ldclr --> stclr. */ + case 1053: value = 1142; break; /* ldclrlb --> stclrlb. */ + case 1056: value = 1143; break; /* ldclrlh --> stclrlh. */ + case 1059: value = 1144; break; /* ldclrl --> stclrl. */ + case 1061: value = 1145; break; /* ldeorb --> steorb. */ + case 1062: value = 1146; break; /* ldeorh --> steorh. */ + case 1063: value = 1147; break; /* ldeor --> steor. */ + case 1065: value = 1148; break; /* ldeorlb --> steorlb. */ + case 1068: value = 1149; break; /* ldeorlh --> steorlh. */ + case 1071: value = 1150; break; /* ldeorl --> steorl. */ + case 1073: value = 1151; break; /* ldsetb --> stsetb. */ + case 1074: value = 1152; break; /* ldseth --> stseth. */ + case 1075: value = 1153; break; /* ldset --> stset. */ + case 1077: value = 1154; break; /* ldsetlb --> stsetlb. */ + case 1080: value = 1155; break; /* ldsetlh --> stsetlh. */ + case 1083: value = 1156; break; /* ldsetl --> stsetl. */ + case 1085: value = 1157; break; /* ldsmaxb --> stsmaxb. */ + case 1086: value = 1158; break; /* ldsmaxh --> stsmaxh. */ + case 1087: value = 1159; break; /* ldsmax --> stsmax. */ + case 1089: value = 1160; break; /* ldsmaxlb --> stsmaxlb. */ + case 1092: value = 1161; break; /* ldsmaxlh --> stsmaxlh. */ + case 1095: value = 1162; break; /* ldsmaxl --> stsmaxl. */ + case 1097: value = 1163; break; /* ldsminb --> stsminb. */ + case 1098: value = 1164; break; /* ldsminh --> stsminh. */ + case 1099: value = 1165; break; /* ldsmin --> stsmin. */ + case 1101: value = 1166; break; /* ldsminlb --> stsminlb. */ + case 1104: value = 1167; break; /* ldsminlh --> stsminlh. */ + case 1107: value = 1168; break; /* ldsminl --> stsminl. */ + case 1109: value = 1169; break; /* ldumaxb --> stumaxb. */ + case 1110: value = 1170; break; /* ldumaxh --> stumaxh. */ + case 1111: value = 1171; break; /* ldumax --> stumax. */ + case 1113: value = 1172; break; /* ldumaxlb --> stumaxlb. */ + case 1116: value = 1173; break; /* ldumaxlh --> stumaxlh. */ + case 1119: value = 1174; break; /* ldumaxl --> stumaxl. */ + case 1121: value = 1175; break; /* lduminb --> stuminb. */ + case 1122: value = 1176; break; /* lduminh --> stuminh. */ + case 1123: value = 1177; break; /* ldumin --> stumin. */ + case 1125: value = 1178; break; /* lduminlb --> stuminlb. */ + case 1128: value = 1179; break; /* lduminlh --> stuminlh. */ + case 1131: value = 1180; break; /* lduminl --> stuminl. */ + case 1181: value = 1182; break; /* movn --> mov. */ + case 1183: value = 1184; break; /* movz --> mov. */ + case 1193: value = 1234; break; /* hint --> autibsp. */ + case 1210: value = 1212; break; /* dsb --> pssbb. */ + case 1216: value = 1223; break; /* sys --> cpp. */ + case 1282: value = 2032; break; /* and --> bic. */ + case 1284: value = 1265; break; /* and --> mov. */ + case 1285: value = 1269; break; /* ands --> movs. */ + case 1320: value = 2033; break; /* cmpge --> cmple. */ + case 1323: value = 2036; break; /* cmpgt --> cmplt. */ + case 1325: value = 2034; break; /* cmphi --> cmplo. */ + case 1328: value = 2035; break; /* cmphs --> cmpls. */ + case 1350: value = 1262; break; /* cpy --> mov. */ + case 1351: value = 1264; break; /* cpy --> mov. */ + case 1352: value = 2043; break; /* cpy --> fmov. */ + case 1364: value = 1257; break; /* dup --> mov. */ + case 1365: value = 1259; break; /* dup --> mov. */ + case 1366: value = 2042; break; /* dup --> fmov. */ + case 1367: value = 1260; break; /* dupm --> mov. */ + case 1369: value = 2037; break; /* eor --> eon. */ + case 1371: value = 1270; break; /* eor --> not. */ + case 1372: value = 1271; break; /* eors --> nots. */ + case 1377: value = 2038; break; /* facge --> facle. */ + case 1378: value = 2039; break; /* facgt --> faclt. */ + case 1391: value = 2040; break; /* fcmge --> fcmle. */ + case 1393: value = 2041; break; /* fcmgt --> fcmlt. */ + case 1399: value = 1254; break; /* fcpy --> fmov. */ + case 1422: value = 1253; break; /* fdup --> fmov. */ + case 1753: value = 1255; break; /* orr --> mov. */ + case 1754: value = 2044; break; /* orr --> orn. */ + case 1756: value = 1258; break; /* orr --> mov. */ + case 1757: value = 1268; break; /* orrs --> movs. */ + case 1819: value = 1263; break; /* sel --> mov. */ + case 1820: value = 1266; break; /* sel --> mov. */ default: return NULL; } @@ -18463,176 +23560,185 @@ aarch64_find_next_alias_opcode (const aarch64_opcode *opcode) case 13: value = 12; break; /* mov --> add. */ case 15: value = 14; break; /* cmn --> adds. */ case 18: value = 17; break; /* cmp --> subs. */ - case 21: value = 20; break; /* cmn --> adds. */ - case 23: value = 22; break; /* neg --> sub. */ - case 26: value = 25; break; /* negs --> cmp. */ - case 25: value = 24; break; /* cmp --> subs. */ - case 150: value = 149; break; /* mov --> umov. */ - case 152: value = 151; break; /* mov --> ins. */ - case 154: value = 153; break; /* mov --> ins. */ - case 236: value = 235; break; /* mvn --> not. */ - case 311: value = 310; break; /* mov --> orr. */ - case 380: value = 379; break; /* sxtl --> sshll. */ - case 382: value = 381; break; /* sxtl2 --> sshll2. */ - case 404: value = 403; break; /* uxtl --> ushll. */ - case 406: value = 405; break; /* uxtl2 --> ushll2. */ - case 527: value = 526; break; /* mov --> dup. */ - case 614: value = 613; break; /* sxtw --> sxth. */ - case 613: value = 612; break; /* sxth --> sxtb. */ - case 612: value = 615; break; /* sxtb --> asr. */ - case 615: value = 611; break; /* asr --> sbfx. */ - case 611: value = 610; break; /* sbfx --> sbfiz. */ - case 610: value = 609; break; /* sbfiz --> sbfm. */ - case 618: value = 619; break; /* bfc --> bfxil. */ - case 619: value = 617; break; /* bfxil --> bfi. */ - case 617: value = 616; break; /* bfi --> bfm. */ - case 624: value = 623; break; /* uxth --> uxtb. */ - case 623: value = 626; break; /* uxtb --> lsr. */ - case 626: value = 625; break; /* lsr --> lsl. */ - case 625: value = 622; break; /* lsl --> ubfx. */ - case 622: value = 621; break; /* ubfx --> ubfiz. */ - case 621: value = 620; break; /* ubfiz --> ubfm. */ - case 656: value = 655; break; /* cset --> cinc. */ - case 655: value = 654; break; /* cinc --> csinc. */ - case 659: value = 658; break; /* csetm --> cinv. */ - case 658: value = 657; break; /* cinv --> csinv. */ - case 661: value = 660; break; /* cneg --> csneg. */ - case 679: value = 680; break; /* rev --> rev64. */ - case 705: value = 704; break; /* lsl --> lslv. */ - case 707: value = 706; break; /* lsr --> lsrv. */ - case 709: value = 708; break; /* asr --> asrv. */ - case 711: value = 710; break; /* ror --> rorv. */ - case 722: value = 721; break; /* mul --> madd. */ - case 724: value = 723; break; /* mneg --> msub. */ - case 726: value = 725; break; /* smull --> smaddl. */ - case 728: value = 727; break; /* smnegl --> smsubl. */ - case 731: value = 730; break; /* umull --> umaddl. */ - case 733: value = 732; break; /* umnegl --> umsubl. */ - case 744: value = 743; break; /* ror --> extr. */ - case 957: value = 956; break; /* bic --> and. */ - case 959: value = 958; break; /* mov --> orr. */ - case 962: value = 961; break; /* tst --> ands. */ - case 967: value = 966; break; /* uxtw --> mov. */ - case 966: value = 965; break; /* mov --> orr. */ - case 969: value = 968; break; /* mvn --> orn. */ - case 973: value = 972; break; /* tst --> ands. */ - case 1099: value = 1003; break; /* staddb --> ldaddb. */ - case 1100: value = 1004; break; /* staddh --> ldaddh. */ - case 1101: value = 1005; break; /* stadd --> ldadd. */ - case 1102: value = 1007; break; /* staddlb --> ldaddlb. */ - case 1103: value = 1010; break; /* staddlh --> ldaddlh. */ - case 1104: value = 1013; break; /* staddl --> ldaddl. */ - case 1105: value = 1015; break; /* stclrb --> ldclrb. */ - case 1106: value = 1016; break; /* stclrh --> ldclrh. */ - case 1107: value = 1017; break; /* stclr --> ldclr. */ - case 1108: value = 1019; break; /* stclrlb --> ldclrlb. */ - case 1109: value = 1022; break; /* stclrlh --> ldclrlh. */ - case 1110: value = 1025; break; /* stclrl --> ldclrl. */ - case 1111: value = 1027; break; /* steorb --> ldeorb. */ - case 1112: value = 1028; break; /* steorh --> ldeorh. */ - case 1113: value = 1029; break; /* steor --> ldeor. */ - case 1114: value = 1031; break; /* steorlb --> ldeorlb. */ - case 1115: value = 1034; break; /* steorlh --> ldeorlh. */ - case 1116: value = 1037; break; /* steorl --> ldeorl. */ - case 1117: value = 1039; break; /* stsetb --> ldsetb. */ - case 1118: value = 1040; break; /* stseth --> ldseth. */ - case 1119: value = 1041; break; /* stset --> ldset. */ - case 1120: value = 1043; break; /* stsetlb --> ldsetlb. */ - case 1121: value = 1046; break; /* stsetlh --> ldsetlh. */ - case 1122: value = 1049; break; /* stsetl --> ldsetl. */ - case 1123: value = 1051; break; /* stsmaxb --> ldsmaxb. */ - case 1124: value = 1052; break; /* stsmaxh --> ldsmaxh. */ - case 1125: value = 1053; break; /* stsmax --> ldsmax. */ - case 1126: value = 1055; break; /* stsmaxlb --> ldsmaxlb. */ - case 1127: value = 1058; break; /* stsmaxlh --> ldsmaxlh. */ - case 1128: value = 1061; break; /* stsmaxl --> ldsmaxl. */ - case 1129: value = 1063; break; /* stsminb --> ldsminb. */ - case 1130: value = 1064; break; /* stsminh --> ldsminh. */ - case 1131: value = 1065; break; /* stsmin --> ldsmin. */ - case 1132: value = 1067; break; /* stsminlb --> ldsminlb. */ - case 1133: value = 1070; break; /* stsminlh --> ldsminlh. */ - case 1134: value = 1073; break; /* stsminl --> ldsminl. */ - case 1135: value = 1075; break; /* stumaxb --> ldumaxb. */ - case 1136: value = 1076; break; /* stumaxh --> ldumaxh. */ - case 1137: value = 1077; break; /* stumax --> ldumax. */ - case 1138: value = 1079; break; /* stumaxlb --> ldumaxlb. */ - case 1139: value = 1082; break; /* stumaxlh --> ldumaxlh. */ - case 1140: value = 1085; break; /* stumaxl --> ldumaxl. */ - case 1141: value = 1087; break; /* stuminb --> lduminb. */ - case 1142: value = 1088; break; /* stuminh --> lduminh. */ - case 1143: value = 1089; break; /* stumin --> ldumin. */ - case 1144: value = 1091; break; /* stuminlb --> lduminlb. */ - case 1145: value = 1094; break; /* stuminlh --> lduminlh. */ - case 1146: value = 1097; break; /* stuminl --> lduminl. */ - case 1148: value = 1147; break; /* mov --> movn. */ - case 1150: value = 1149; break; /* mov --> movz. */ - case 1188: value = 1187; break; /* autibsp --> autibz. */ - case 1187: value = 1186; break; /* autibz --> autiasp. */ - case 1186: value = 1185; break; /* autiasp --> autiaz. */ - case 1185: value = 1184; break; /* autiaz --> pacibsp. */ - case 1184: value = 1183; break; /* pacibsp --> pacibz. */ - case 1183: value = 1182; break; /* pacibz --> paciasp. */ - case 1182: value = 1181; break; /* paciasp --> paciaz. */ - case 1181: value = 1168; break; /* paciaz --> psb. */ - case 1168: value = 1167; break; /* psb --> esb. */ - case 1167: value = 1166; break; /* esb --> autib1716. */ - case 1166: value = 1165; break; /* autib1716 --> autia1716. */ - case 1165: value = 1164; break; /* autia1716 --> pacib1716. */ - case 1164: value = 1163; break; /* pacib1716 --> pacia1716. */ - case 1163: value = 1162; break; /* pacia1716 --> xpaclri. */ - case 1162: value = 1161; break; /* xpaclri --> sevl. */ - case 1161: value = 1160; break; /* sevl --> sev. */ - case 1160: value = 1159; break; /* sev --> wfi. */ - case 1159: value = 1158; break; /* wfi --> wfe. */ - case 1158: value = 1157; break; /* wfe --> yield. */ - case 1157: value = 1156; break; /* yield --> nop. */ - case 1156: value = 1155; break; /* nop --> hint. */ - case 1177: value = 1176; break; /* tlbi --> ic. */ - case 1176: value = 1175; break; /* ic --> dc. */ - case 1175: value = 1174; break; /* dc --> at. */ - case 1174: value = 1173; break; /* at --> sys. */ - case 1931: value = 1236; break; /* bic --> and. */ - case 1219: value = 1238; break; /* mov --> and. */ - case 1223: value = 1239; break; /* movs --> ands. */ - case 1932: value = 1274; break; /* cmple --> cmpge. */ - case 1935: value = 1277; break; /* cmplt --> cmpgt. */ - case 1933: value = 1279; break; /* cmplo --> cmphi. */ - case 1934: value = 1282; break; /* cmpls --> cmphs. */ - case 1216: value = 1304; break; /* mov --> cpy. */ - case 1218: value = 1305; break; /* mov --> cpy. */ - case 1942: value = 1221; break; /* fmov --> mov. */ - case 1221: value = 1306; break; /* mov --> cpy. */ - case 1211: value = 1318; break; /* mov --> dup. */ - case 1213: value = 1210; break; /* mov --> mov. */ - case 1210: value = 1319; break; /* mov --> dup. */ - case 1941: value = 1215; break; /* fmov --> mov. */ - case 1215: value = 1320; break; /* mov --> dup. */ - case 1214: value = 1321; break; /* mov --> dupm. */ - case 1936: value = 1323; break; /* eon --> eor. */ - case 1224: value = 1325; break; /* not --> eor. */ - case 1225: value = 1326; break; /* nots --> eors. */ - case 1937: value = 1331; break; /* facle --> facge. */ - case 1938: value = 1332; break; /* faclt --> facgt. */ - case 1939: value = 1341; break; /* fcmle --> fcmge. */ - case 1940: value = 1343; break; /* fcmlt --> fcmgt. */ - case 1208: value = 1349; break; /* fmov --> fcpy. */ - case 1207: value = 1366; break; /* fmov --> fdup. */ - case 1209: value = 1664; break; /* mov --> orr. */ - case 1943: value = 1665; break; /* orn --> orr. */ - case 1212: value = 1667; break; /* mov --> orr. */ - case 1222: value = 1668; break; /* movs --> orrs. */ - case 1217: value = 1724; break; /* mov --> sel. */ - case 1220: value = 1725; break; /* mov --> sel. */ + case 23: value = 22; break; /* cmn --> adds. */ + case 25: value = 24; break; /* neg --> sub. */ + case 27: value = 28; break; /* cmp --> negs. */ + case 28: value = 26; break; /* negs --> subs. */ + case 153: value = 152; break; /* mov --> umov. */ + case 155: value = 154; break; /* mov --> ins. */ + case 157: value = 156; break; /* mov --> ins. */ + case 243: value = 242; break; /* mvn --> not. */ + case 318: value = 317; break; /* mov --> orr. */ + case 389: value = 388; break; /* sxtl --> sshll. */ + case 391: value = 390; break; /* sxtl2 --> sshll2. */ + case 413: value = 412; break; /* uxtl --> ushll. */ + case 415: value = 414; break; /* uxtl2 --> ushll2. */ + case 536: value = 535; break; /* mov --> dup. */ + case 623: value = 622; break; /* sxtw --> sxth. */ + case 622: value = 621; break; /* sxth --> sxtb. */ + case 621: value = 624; break; /* sxtb --> asr. */ + case 624: value = 620; break; /* asr --> sbfx. */ + case 620: value = 619; break; /* sbfx --> sbfiz. */ + case 619: value = 618; break; /* sbfiz --> sbfm. */ + case 627: value = 628; break; /* bfc --> bfxil. */ + case 628: value = 626; break; /* bfxil --> bfi. */ + case 626: value = 625; break; /* bfi --> bfm. */ + case 633: value = 632; break; /* uxth --> uxtb. */ + case 632: value = 635; break; /* uxtb --> lsr. */ + case 635: value = 634; break; /* lsr --> lsl. */ + case 634: value = 631; break; /* lsl --> ubfx. */ + case 631: value = 630; break; /* ubfx --> ubfiz. */ + case 630: value = 629; break; /* ubfiz --> ubfm. */ + case 665: value = 664; break; /* cset --> cinc. */ + case 664: value = 663; break; /* cinc --> csinc. */ + case 668: value = 667; break; /* csetm --> cinv. */ + case 667: value = 666; break; /* cinv --> csinv. */ + case 670: value = 669; break; /* cneg --> csneg. */ + case 688: value = 689; break; /* rev --> rev64. */ + case 714: value = 713; break; /* lsl --> lslv. */ + case 716: value = 715; break; /* lsr --> lsrv. */ + case 718: value = 717; break; /* asr --> asrv. */ + case 720: value = 719; break; /* ror --> rorv. */ + case 723: value = 722; break; /* cmpp --> subps. */ + case 736: value = 735; break; /* mul --> madd. */ + case 738: value = 737; break; /* mneg --> msub. */ + case 740: value = 739; break; /* smull --> smaddl. */ + case 742: value = 741; break; /* smnegl --> smsubl. */ + case 745: value = 744; break; /* umull --> umaddl. */ + case 747: value = 746; break; /* umnegl --> umsubl. */ + case 758: value = 757; break; /* ror --> extr. */ + case 991: value = 990; break; /* bic --> and. */ + case 993: value = 992; break; /* mov --> orr. */ + case 996: value = 995; break; /* tst --> ands. */ + case 1001: value = 1000; break; /* uxtw --> mov. */ + case 1000: value = 999; break; /* mov --> orr. */ + case 1003: value = 1002; break; /* mvn --> orn. */ + case 1007: value = 1006; break; /* tst --> ands. */ + case 1133: value = 1037; break; /* staddb --> ldaddb. */ + case 1134: value = 1038; break; /* staddh --> ldaddh. */ + case 1135: value = 1039; break; /* stadd --> ldadd. */ + case 1136: value = 1041; break; /* staddlb --> ldaddlb. */ + case 1137: value = 1044; break; /* staddlh --> ldaddlh. */ + case 1138: value = 1047; break; /* staddl --> ldaddl. */ + case 1139: value = 1049; break; /* stclrb --> ldclrb. */ + case 1140: value = 1050; break; /* stclrh --> ldclrh. */ + case 1141: value = 1051; break; /* stclr --> ldclr. */ + case 1142: value = 1053; break; /* stclrlb --> ldclrlb. */ + case 1143: value = 1056; break; /* stclrlh --> ldclrlh. */ + case 1144: value = 1059; break; /* stclrl --> ldclrl. */ + case 1145: value = 1061; break; /* steorb --> ldeorb. */ + case 1146: value = 1062; break; /* steorh --> ldeorh. */ + case 1147: value = 1063; break; /* steor --> ldeor. */ + case 1148: value = 1065; break; /* steorlb --> ldeorlb. */ + case 1149: value = 1068; break; /* steorlh --> ldeorlh. */ + case 1150: value = 1071; break; /* steorl --> ldeorl. */ + case 1151: value = 1073; break; /* stsetb --> ldsetb. */ + case 1152: value = 1074; break; /* stseth --> ldseth. */ + case 1153: value = 1075; break; /* stset --> ldset. */ + case 1154: value = 1077; break; /* stsetlb --> ldsetlb. */ + case 1155: value = 1080; break; /* stsetlh --> ldsetlh. */ + case 1156: value = 1083; break; /* stsetl --> ldsetl. */ + case 1157: value = 1085; break; /* stsmaxb --> ldsmaxb. */ + case 1158: value = 1086; break; /* stsmaxh --> ldsmaxh. */ + case 1159: value = 1087; break; /* stsmax --> ldsmax. */ + case 1160: value = 1089; break; /* stsmaxlb --> ldsmaxlb. */ + case 1161: value = 1092; break; /* stsmaxlh --> ldsmaxlh. */ + case 1162: value = 1095; break; /* stsmaxl --> ldsmaxl. */ + case 1163: value = 1097; break; /* stsminb --> ldsminb. */ + case 1164: value = 1098; break; /* stsminh --> ldsminh. */ + case 1165: value = 1099; break; /* stsmin --> ldsmin. */ + case 1166: value = 1101; break; /* stsminlb --> ldsminlb. */ + case 1167: value = 1104; break; /* stsminlh --> ldsminlh. */ + case 1168: value = 1107; break; /* stsminl --> ldsminl. */ + case 1169: value = 1109; break; /* stumaxb --> ldumaxb. */ + case 1170: value = 1110; break; /* stumaxh --> ldumaxh. */ + case 1171: value = 1111; break; /* stumax --> ldumax. */ + case 1172: value = 1113; break; /* stumaxlb --> ldumaxlb. */ + case 1173: value = 1116; break; /* stumaxlh --> ldumaxlh. */ + case 1174: value = 1119; break; /* stumaxl --> ldumaxl. */ + case 1175: value = 1121; break; /* stuminb --> lduminb. */ + case 1176: value = 1122; break; /* stuminh --> lduminh. */ + case 1177: value = 1123; break; /* stumin --> ldumin. */ + case 1178: value = 1125; break; /* stuminlb --> lduminlb. */ + case 1179: value = 1128; break; /* stuminlh --> lduminlh. */ + case 1180: value = 1131; break; /* stuminl --> lduminl. */ + case 1182: value = 1181; break; /* mov --> movn. */ + case 1184: value = 1183; break; /* mov --> movz. */ + case 1234: value = 1233; break; /* autibsp --> autibz. */ + case 1233: value = 1232; break; /* autibz --> autiasp. */ + case 1232: value = 1231; break; /* autiasp --> autiaz. */ + case 1231: value = 1230; break; /* autiaz --> pacibsp. */ + case 1230: value = 1229; break; /* pacibsp --> pacibz. */ + case 1229: value = 1228; break; /* pacibz --> paciasp. */ + case 1228: value = 1227; break; /* paciasp --> paciaz. */ + case 1227: value = 1208; break; /* paciaz --> psb. */ + case 1208: value = 1207; break; /* psb --> esb. */ + case 1207: value = 1206; break; /* esb --> autib1716. */ + case 1206: value = 1205; break; /* autib1716 --> autia1716. */ + case 1205: value = 1204; break; /* autia1716 --> pacib1716. */ + case 1204: value = 1203; break; /* pacib1716 --> pacia1716. */ + case 1203: value = 1202; break; /* pacia1716 --> xpaclri. */ + case 1202: value = 1201; break; /* xpaclri --> sevl. */ + case 1201: value = 1200; break; /* sevl --> sev. */ + case 1200: value = 1199; break; /* sev --> wfi. */ + case 1199: value = 1198; break; /* wfi --> wfe. */ + case 1198: value = 1197; break; /* wfe --> yield. */ + case 1197: value = 1196; break; /* yield --> bti. */ + case 1196: value = 1195; break; /* bti --> csdb. */ + case 1195: value = 1194; break; /* csdb --> nop. */ + case 1194: value = 1193; break; /* nop --> hint. */ + case 1212: value = 1211; break; /* pssbb --> ssbb. */ + case 1211: value = 1210; break; /* ssbb --> dsb. */ + case 1223: value = 1222; break; /* cpp --> dvp. */ + case 1222: value = 1221; break; /* dvp --> cfp. */ + case 1221: value = 1220; break; /* cfp --> tlbi. */ + case 1220: value = 1219; break; /* tlbi --> ic. */ + case 1219: value = 1218; break; /* ic --> dc. */ + case 1218: value = 1217; break; /* dc --> at. */ + case 1217: value = 1216; break; /* at --> sys. */ + case 2032: value = 1282; break; /* bic --> and. */ + case 1265: value = 1284; break; /* mov --> and. */ + case 1269: value = 1285; break; /* movs --> ands. */ + case 2033: value = 1320; break; /* cmple --> cmpge. */ + case 2036: value = 1323; break; /* cmplt --> cmpgt. */ + case 2034: value = 1325; break; /* cmplo --> cmphi. */ + case 2035: value = 1328; break; /* cmpls --> cmphs. */ + case 1262: value = 1350; break; /* mov --> cpy. */ + case 1264: value = 1351; break; /* mov --> cpy. */ + case 2043: value = 1267; break; /* fmov --> mov. */ + case 1267: value = 1352; break; /* mov --> cpy. */ + case 1257: value = 1364; break; /* mov --> dup. */ + case 1259: value = 1256; break; /* mov --> mov. */ + case 1256: value = 1365; break; /* mov --> dup. */ + case 2042: value = 1261; break; /* fmov --> mov. */ + case 1261: value = 1366; break; /* mov --> dup. */ + case 1260: value = 1367; break; /* mov --> dupm. */ + case 2037: value = 1369; break; /* eon --> eor. */ + case 1270: value = 1371; break; /* not --> eor. */ + case 1271: value = 1372; break; /* nots --> eors. */ + case 2038: value = 1377; break; /* facle --> facge. */ + case 2039: value = 1378; break; /* faclt --> facgt. */ + case 2040: value = 1391; break; /* fcmle --> fcmge. */ + case 2041: value = 1393; break; /* fcmlt --> fcmgt. */ + case 1254: value = 1399; break; /* fmov --> fcpy. */ + case 1253: value = 1422; break; /* fmov --> fdup. */ + case 1255: value = 1753; break; /* mov --> orr. */ + case 2044: value = 1754; break; /* orn --> orr. */ + case 1258: value = 1756; break; /* mov --> orr. */ + case 1268: value = 1757; break; /* movs --> orrs. */ + case 1263: value = 1819; break; /* mov --> sel. */ + case 1266: value = 1820; break; /* mov --> sel. */ default: return NULL; } return aarch64_opcode_table + value; } -int +bfd_boolean aarch64_extract_operand (const aarch64_operand *self, aarch64_opnd_info *info, - aarch64_insn code, const aarch64_inst *inst) + aarch64_insn code, const aarch64_inst *inst, + aarch64_operand_error *errors) { /* Use the index as the key. */ int key = self - aarch64_operands; @@ -18645,14 +23751,14 @@ aarch64_extract_operand (const aarch64_operand *self, case 5: case 6: case 7: - case 9: + case 8: case 10: case 11: - case 15: + case 12: case 16: case 17: case 18: - case 20: + case 19: case 21: case 22: case 23: @@ -18661,18 +23767,8 @@ aarch64_extract_operand (const aarch64_operand *self, case 26: case 27: case 28: - case 36: - case 37: - case 141: - case 142: - case 143: - case 144: - case 145: - case 146: - case 147: - case 148: - case 149: - case 150: + case 29: + case 30: case 163: case 164: case 165: @@ -18683,35 +23779,46 @@ aarch64_extract_operand (const aarch64_operand *self, case 170: case 171: case 172: - case 175: - return aarch64_ext_regno (self, info, code, inst); - case 8: - return aarch64_ext_regrt_sysins (self, info, code, inst); - case 12: - return aarch64_ext_regno_pair (self, info, code, inst); + case 187: + case 188: + case 189: + case 190: + case 191: + case 192: + case 193: + case 194: + case 195: + case 201: + case 204: + return aarch64_ext_regno (self, info, code, inst, errors); + case 9: + return aarch64_ext_regrt_sysins (self, info, code, inst, errors); case 13: - return aarch64_ext_reg_extended (self, info, code, inst); + return aarch64_ext_regno_pair (self, info, code, inst, errors); case 14: - return aarch64_ext_reg_shifted (self, info, code, inst); - case 19: - return aarch64_ext_ft (self, info, code, inst); - case 29: - case 30: + return aarch64_ext_reg_extended (self, info, code, inst, errors); + case 15: + return aarch64_ext_reg_shifted (self, info, code, inst, errors); + case 20: + return aarch64_ext_ft (self, info, code, inst, errors); case 31: - return aarch64_ext_reglane (self, info, code, inst); case 32: - return aarch64_ext_reglist (self, info, code, inst); case 33: - return aarch64_ext_ldst_reglist (self, info, code, inst); case 34: - return aarch64_ext_ldst_reglist_r (self, info, code, inst); + case 207: + return aarch64_ext_reglane (self, info, code, inst, errors); case 35: - return aarch64_ext_ldst_elemlist (self, info, code, inst); + return aarch64_ext_reglist (self, info, code, inst, errors); + case 36: + return aarch64_ext_ldst_reglist (self, info, code, inst, errors); + case 37: + return aarch64_ext_ldst_reglist_r (self, info, code, inst, errors); case 38: - case 48: - case 49: - case 50: - case 51: + return aarch64_ext_ldst_elemlist (self, info, code, inst, errors); + case 39: + case 40: + case 41: + case 42: case 52: case 53: case 54: @@ -18721,151 +23828,186 @@ aarch64_extract_operand (const aarch64_operand *self, case 58: case 59: case 60: - case 68: - case 69: - case 70: - case 71: - case 72: - case 138: - case 140: - case 155: - case 156: - case 157: - case 158: - case 159: - case 160: - case 161: - case 162: - return aarch64_ext_imm (self, info, code, inst); - case 39: - case 40: - return aarch64_ext_advsimd_imm_shift (self, info, code, inst); - case 41: - case 42: - case 43: - return aarch64_ext_advsimd_imm_modified (self, info, code, inst); - case 44: - return aarch64_ext_shll_imm (self, info, code, inst); - case 47: - case 131: - return aarch64_ext_fpimm (self, info, code, inst); case 61: - case 136: - return aarch64_ext_limm (self, info, code, inst); case 62: - return aarch64_ext_aimm (self, info, code, inst); case 63: - return aarch64_ext_imm_half (self, info, code, inst); case 64: - return aarch64_ext_fbits (self, info, code, inst); + case 65: case 66: case 67: - return aarch64_ext_cond (self, info, code, inst); - case 73: + case 78: + case 79: case 80: - return aarch64_ext_addr_simple (self, info, code, inst); + case 81: + case 82: + case 160: + case 162: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 206: + return aarch64_ext_imm (self, info, code, inst, errors); + case 43: + case 44: + return aarch64_ext_advsimd_imm_shift (self, info, code, inst, errors); + case 45: + case 46: + case 47: + return aarch64_ext_advsimd_imm_modified (self, info, code, inst, errors); + case 48: + return aarch64_ext_shll_imm (self, info, code, inst, errors); + case 51: + case 150: + return aarch64_ext_fpimm (self, info, code, inst, errors); + case 68: + case 158: + return aarch64_ext_limm (self, info, code, inst, errors); + case 69: + return aarch64_ext_aimm (self, info, code, inst, errors); + case 70: + return aarch64_ext_imm_half (self, info, code, inst, errors); + case 71: + return aarch64_ext_fbits (self, info, code, inst, errors); + case 73: case 74: - return aarch64_ext_addr_regoff (self, info, code, inst); + case 155: + return aarch64_ext_imm_rotate2 (self, info, code, inst, errors); case 75: + case 154: + case 156: + return aarch64_ext_imm_rotate1 (self, info, code, inst, errors); case 76: case 77: - return aarch64_ext_addr_simm (self, info, code, inst); - case 78: - return aarch64_ext_addr_simm10 (self, info, code, inst); - case 79: - return aarch64_ext_addr_uimm12 (self, info, code, inst); - case 81: - return aarch64_ext_simd_addr_post (self, info, code, inst); - case 82: - return aarch64_ext_sysreg (self, info, code, inst); + return aarch64_ext_cond (self, info, code, inst, errors); case 83: - return aarch64_ext_pstatefield (self, info, code, inst); + case 92: + return aarch64_ext_addr_simple (self, info, code, inst, errors); case 84: + return aarch64_ext_addr_regoff (self, info, code, inst, errors); case 85: case 86: case 87: - return aarch64_ext_sysins_op (self, info, code, inst); - case 88: case 89: - return aarch64_ext_barrier (self, info, code, inst); - case 90: - return aarch64_ext_prfop (self, info, code, inst); case 91: - return aarch64_ext_hint (self, info, code, inst); - case 92: + return aarch64_ext_addr_simm (self, info, code, inst, errors); + case 88: + return aarch64_ext_addr_simm10 (self, info, code, inst, errors); + case 90: + return aarch64_ext_addr_uimm12 (self, info, code, inst, errors); case 93: + return aarch64_ext_addr_offset (self, info, code, inst, errors); case 94: + return aarch64_ext_simd_addr_post (self, info, code, inst, errors); case 95: - return aarch64_ext_sve_addr_ri_s4xvl (self, info, code, inst); + return aarch64_ext_sysreg (self, info, code, inst, errors); case 96: - return aarch64_ext_sve_addr_ri_s6xvl (self, info, code, inst); + return aarch64_ext_pstatefield (self, info, code, inst, errors); case 97: - return aarch64_ext_sve_addr_ri_s9xvl (self, info, code, inst); case 98: case 99: case 100: case 101: - return aarch64_ext_sve_addr_ri_u6 (self, info, code, inst); + return aarch64_ext_sysins_op (self, info, code, inst, errors); case 102: case 103: + return aarch64_ext_barrier (self, info, code, inst, errors); case 104: + return aarch64_ext_prfop (self, info, code, inst, errors); case 105: case 106: + return aarch64_ext_hint (self, info, code, inst, errors); case 107: case 108: + return aarch64_ext_sve_addr_ri_s4 (self, info, code, inst, errors); case 109: case 110: case 111: case 112: + return aarch64_ext_sve_addr_ri_s4xvl (self, info, code, inst, errors); case 113: - return aarch64_ext_sve_addr_rr_lsl (self, info, code, inst); + return aarch64_ext_sve_addr_ri_s6xvl (self, info, code, inst, errors); case 114: + return aarch64_ext_sve_addr_ri_s9xvl (self, info, code, inst, errors); case 115: case 116: case 117: case 118: + return aarch64_ext_sve_addr_ri_u6 (self, info, code, inst, errors); case 119: case 120: case 121: - return aarch64_ext_sve_addr_rz_xtw (self, info, code, inst); case 122: case 123: case 124: case 125: - return aarch64_ext_sve_addr_zi_u5 (self, info, code, inst); case 126: - return aarch64_ext_sve_addr_zz_lsl (self, info, code, inst); case 127: - return aarch64_ext_sve_addr_zz_sxtw (self, info, code, inst); case 128: - return aarch64_ext_sve_addr_zz_uxtw (self, info, code, inst); case 129: - return aarch64_ext_sve_aimm (self, info, code, inst); case 130: - return aarch64_ext_sve_asimm (self, info, code, inst); + case 131: case 132: - return aarch64_ext_sve_float_half_one (self, info, code, inst); + return aarch64_ext_sve_addr_rr_lsl (self, info, code, inst, errors); case 133: - return aarch64_ext_sve_float_half_two (self, info, code, inst); case 134: - return aarch64_ext_sve_float_zero_one (self, info, code, inst); case 135: - return aarch64_ext_inv_limm (self, info, code, inst); + case 136: case 137: - return aarch64_ext_sve_limm_mov (self, info, code, inst); + case 138: case 139: - return aarch64_ext_sve_scale (self, info, code, inst); + case 140: + return aarch64_ext_sve_addr_rz_xtw (self, info, code, inst, errors); + case 141: + case 142: + case 143: + case 144: + return aarch64_ext_sve_addr_zi_u5 (self, info, code, inst, errors); + case 145: + return aarch64_ext_sve_addr_zz_lsl (self, info, code, inst, errors); + case 146: + return aarch64_ext_sve_addr_zz_sxtw (self, info, code, inst, errors); + case 147: + return aarch64_ext_sve_addr_zz_uxtw (self, info, code, inst, errors); + case 148: + return aarch64_ext_sve_aimm (self, info, code, inst, errors); + case 149: + return aarch64_ext_sve_asimm (self, info, code, inst, errors); case 151: + return aarch64_ext_sve_float_half_one (self, info, code, inst, errors); case 152: - return aarch64_ext_sve_shlimm (self, info, code, inst); + return aarch64_ext_sve_float_half_two (self, info, code, inst, errors); case 153: - case 154: - return aarch64_ext_sve_shrimm (self, info, code, inst); + return aarch64_ext_sve_float_zero_one (self, info, code, inst, errors); + case 157: + return aarch64_ext_inv_limm (self, info, code, inst, errors); + case 159: + return aarch64_ext_sve_limm_mov (self, info, code, inst, errors); + case 161: + return aarch64_ext_sve_scale (self, info, code, inst, errors); case 173: - return aarch64_ext_sve_index (self, info, code, inst); case 174: + case 175: + return aarch64_ext_sve_shlimm (self, info, code, inst, errors); case 176: - return aarch64_ext_sve_reglist (self, info, code, inst); + case 177: + case 178: + return aarch64_ext_sve_shrimm (self, info, code, inst, errors); + case 196: + case 197: + case 198: + case 199: + case 200: + return aarch64_ext_sve_quad_index (self, info, code, inst, errors); + case 202: + return aarch64_ext_sve_index (self, info, code, inst, errors); + case 203: + case 205: + return aarch64_ext_sve_reglist (self, info, code, inst, errors); default: assert (0); abort (); } }