| /* This file is automatically generated by aarch64-gen. Do not edit! */ |
| /* Copyright (C) 2012-2024 Free Software Foundation, Inc. |
| Contributed by ARM Ltd. |
| |
| This file is part of the GNU opcodes library. |
| |
| This library is free software; you can redistribute it and/or modify |
| it under the terms of the GNU General Public License as published by |
| the Free Software Foundation; either version 3, or (at your option) |
| any later version. |
| |
| It is distributed in the hope that it will be useful, but WITHOUT |
| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY |
| or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public |
| License for more details. |
| |
| You should have received a copy of the GNU General Public License |
| along with this program; see the file COPYING3. If not, |
| see <http://www.gnu.org/licenses/>. */ |
| |
| #include "sysdep.h" |
| #include "aarch64-asm.h" |
| |
| |
| const aarch64_opcode * |
| aarch64_find_real_opcode (const aarch64_opcode *opcode) |
| { |
| /* Use the index as the key to locate the real opcode. */ |
| int key = opcode - aarch64_opcode_table; |
| int value; |
| switch (key) |
| { |
| case 3: /* ngc */ |
| case 2: /* sbc */ |
| value = 2; /* --> sbc. */ |
| break; |
| case 5: /* ngcs */ |
| case 4: /* sbcs */ |
| value = 4; /* --> sbcs. */ |
| break; |
| case 8: /* cmn */ |
| case 7: /* adds */ |
| value = 7; /* --> adds. */ |
| break; |
| case 11: /* cmp */ |
| case 10: /* subs */ |
| value = 10; /* --> subs. */ |
| break; |
| case 13: /* mov */ |
| case 12: /* add */ |
| value = 12; /* --> add. */ |
| break; |
| case 15: /* cmn */ |
| case 14: /* adds */ |
| value = 14; /* --> adds. */ |
| break; |
| case 18: /* cmp */ |
| case 17: /* subs */ |
| value = 17; /* --> subs. */ |
| break; |
| case 23: /* cmn */ |
| case 22: /* adds */ |
| value = 22; /* --> adds. */ |
| break; |
| case 25: /* neg */ |
| case 24: /* sub */ |
| value = 24; /* --> sub. */ |
| break; |
| case 27: /* cmp */ |
| case 28: /* negs */ |
| case 26: /* subs */ |
| value = 26; /* --> subs. */ |
| break; |
| case 153: /* mov */ |
| case 152: /* umov */ |
| value = 152; /* --> umov. */ |
| break; |
| case 155: /* mov */ |
| case 154: /* ins */ |
| value = 154; /* --> ins. */ |
| break; |
| case 157: /* mov */ |
| case 156: /* ins */ |
| value = 156; /* --> ins. */ |
| break; |
| case 243: /* mvn */ |
| case 242: /* not */ |
| value = 242; /* --> not. */ |
| break; |
| case 318: /* mov */ |
| case 317: /* orr */ |
| value = 317; /* --> orr. */ |
| break; |
| case 389: /* sxtl */ |
| case 388: /* sshll */ |
| value = 388; /* --> sshll. */ |
| break; |
| case 391: /* sxtl2 */ |
| case 390: /* sshll2 */ |
| value = 390; /* --> sshll2. */ |
| break; |
| case 413: /* uxtl */ |
| case 412: /* ushll */ |
| value = 412; /* --> ushll. */ |
| break; |
| case 415: /* uxtl2 */ |
| case 414: /* ushll2 */ |
| value = 414; /* --> ushll2. */ |
| break; |
| case 536: /* mov */ |
| case 535: /* dup */ |
| value = 535; /* --> dup. */ |
| break; |
| case 623: /* sxtw */ |
| case 622: /* sxth */ |
| case 621: /* sxtb */ |
| case 624: /* asr */ |
| case 620: /* sbfx */ |
| case 619: /* sbfiz */ |
| case 618: /* sbfm */ |
| value = 618; /* --> sbfm. */ |
| break; |
| case 627: /* bfc */ |
| case 628: /* bfxil */ |
| case 626: /* bfi */ |
| case 625: /* bfm */ |
| value = 625; /* --> bfm. */ |
| break; |
| case 633: /* uxth */ |
| case 632: /* uxtb */ |
| case 635: /* lsr */ |
| case 634: /* lsl */ |
| case 631: /* ubfx */ |
| case 630: /* ubfiz */ |
| case 629: /* ubfm */ |
| value = 629; /* --> ubfm. */ |
| break; |
| case 665: /* cset */ |
| case 664: /* cinc */ |
| case 663: /* csinc */ |
| value = 663; /* --> csinc. */ |
| break; |
| case 668: /* csetm */ |
| case 667: /* cinv */ |
| case 666: /* csinv */ |
| value = 666; /* --> csinv. */ |
| break; |
| case 670: /* cneg */ |
| case 669: /* csneg */ |
| value = 669; /* --> csneg. */ |
| break; |
| case 688: /* rev */ |
| case 689: /* rev64 */ |
| value = 688; /* --> rev. */ |
| break; |
| case 714: /* lsl */ |
| case 713: /* lslv */ |
| value = 713; /* --> lslv. */ |
| break; |
| case 716: /* lsr */ |
| case 715: /* lsrv */ |
| value = 715; /* --> lsrv. */ |
| break; |
| case 718: /* asr */ |
| case 717: /* asrv */ |
| value = 717; /* --> asrv. */ |
| break; |
| case 720: /* ror */ |
| case 719: /* rorv */ |
| value = 719; /* --> rorv. */ |
| break; |
| case 723: /* cmpp */ |
| case 722: /* subps */ |
| value = 722; /* --> subps. */ |
| break; |
| case 736: /* mul */ |
| case 735: /* madd */ |
| value = 735; /* --> madd. */ |
| break; |
| case 738: /* mneg */ |
| case 737: /* msub */ |
| value = 737; /* --> msub. */ |
| break; |
| case 740: /* smull */ |
| case 739: /* smaddl */ |
| value = 739; /* --> smaddl. */ |
| break; |
| case 742: /* smnegl */ |
| case 741: /* smsubl */ |
| value = 741; /* --> smsubl. */ |
| break; |
| case 745: /* umull */ |
| case 744: /* umaddl */ |
| value = 744; /* --> umaddl. */ |
| break; |
| case 747: /* umnegl */ |
| case 746: /* umsubl */ |
| value = 746; /* --> umsubl. */ |
| break; |
| case 759: /* ror */ |
| case 758: /* extr */ |
| value = 758; /* --> extr. */ |
| break; |
| case 996: /* bic */ |
| case 995: /* and */ |
| value = 995; /* --> and. */ |
| break; |
| case 998: /* mov */ |
| case 997: /* orr */ |
| value = 997; /* --> orr. */ |
| break; |
| case 1001: /* tst */ |
| case 1000: /* ands */ |
| value = 1000; /* --> ands. */ |
| break; |
| case 1006: /* uxtw */ |
| case 1005: /* mov */ |
| case 1004: /* orr */ |
| value = 1004; /* --> orr. */ |
| break; |
| case 1008: /* mvn */ |
| case 1007: /* orn */ |
| value = 1007; /* --> orn. */ |
| break; |
| case 1012: /* tst */ |
| case 1011: /* ands */ |
| value = 1011; /* --> ands. */ |
| break; |
| case 1138: /* staddb */ |
| case 1042: /* ldaddb */ |
| value = 1042; /* --> ldaddb. */ |
| break; |
| case 1139: /* staddh */ |
| case 1043: /* ldaddh */ |
| value = 1043; /* --> ldaddh. */ |
| break; |
| case 1140: /* stadd */ |
| case 1044: /* ldadd */ |
| value = 1044; /* --> ldadd. */ |
| break; |
| case 1141: /* staddlb */ |
| case 1046: /* ldaddlb */ |
| value = 1046; /* --> ldaddlb. */ |
| break; |
| case 1142: /* staddlh */ |
| case 1049: /* ldaddlh */ |
| value = 1049; /* --> ldaddlh. */ |
| break; |
| case 1143: /* staddl */ |
| case 1052: /* ldaddl */ |
| value = 1052; /* --> ldaddl. */ |
| break; |
| case 1144: /* stclrb */ |
| case 1054: /* ldclrb */ |
| value = 1054; /* --> ldclrb. */ |
| break; |
| case 1145: /* stclrh */ |
| case 1055: /* ldclrh */ |
| value = 1055; /* --> ldclrh. */ |
| break; |
| case 1146: /* stclr */ |
| case 1056: /* ldclr */ |
| value = 1056; /* --> ldclr. */ |
| break; |
| case 1147: /* stclrlb */ |
| case 1058: /* ldclrlb */ |
| value = 1058; /* --> ldclrlb. */ |
| break; |
| case 1148: /* stclrlh */ |
| case 1061: /* ldclrlh */ |
| value = 1061; /* --> ldclrlh. */ |
| break; |
| case 1149: /* stclrl */ |
| case 1064: /* ldclrl */ |
| value = 1064; /* --> ldclrl. */ |
| break; |
| case 1150: /* steorb */ |
| case 1066: /* ldeorb */ |
| value = 1066; /* --> ldeorb. */ |
| break; |
| case 1151: /* steorh */ |
| case 1067: /* ldeorh */ |
| value = 1067; /* --> ldeorh. */ |
| break; |
| case 1152: /* steor */ |
| case 1068: /* ldeor */ |
| value = 1068; /* --> ldeor. */ |
| break; |
| case 1153: /* steorlb */ |
| case 1070: /* ldeorlb */ |
| value = 1070; /* --> ldeorlb. */ |
| break; |
| case 1154: /* steorlh */ |
| case 1073: /* ldeorlh */ |
| value = 1073; /* --> ldeorlh. */ |
| break; |
| case 1155: /* steorl */ |
| case 1076: /* ldeorl */ |
| value = 1076; /* --> ldeorl. */ |
| break; |
| case 1156: /* stsetb */ |
| case 1078: /* ldsetb */ |
| value = 1078; /* --> ldsetb. */ |
| break; |
| case 1157: /* stseth */ |
| case 1079: /* ldseth */ |
| value = 1079; /* --> ldseth. */ |
| break; |
| case 1158: /* stset */ |
| case 1080: /* ldset */ |
| value = 1080; /* --> ldset. */ |
| break; |
| case 1159: /* stsetlb */ |
| case 1082: /* ldsetlb */ |
| value = 1082; /* --> ldsetlb. */ |
| break; |
| case 1160: /* stsetlh */ |
| case 1085: /* ldsetlh */ |
| value = 1085; /* --> ldsetlh. */ |
| break; |
| case 1161: /* stsetl */ |
| case 1088: /* ldsetl */ |
| value = 1088; /* --> ldsetl. */ |
| break; |
| case 1162: /* stsmaxb */ |
| case 1090: /* ldsmaxb */ |
| value = 1090; /* --> ldsmaxb. */ |
| break; |
| case 1163: /* stsmaxh */ |
| case 1091: /* ldsmaxh */ |
| value = 1091; /* --> ldsmaxh. */ |
| break; |
| case 1164: /* stsmax */ |
| case 1092: /* ldsmax */ |
| value = 1092; /* --> ldsmax. */ |
| break; |
| case 1165: /* stsmaxlb */ |
| case 1094: /* ldsmaxlb */ |
| value = 1094; /* --> ldsmaxlb. */ |
| break; |
| case 1166: /* stsmaxlh */ |
| case 1097: /* ldsmaxlh */ |
| value = 1097; /* --> ldsmaxlh. */ |
| break; |
| case 1167: /* stsmaxl */ |
| case 1100: /* ldsmaxl */ |
| value = 1100; /* --> ldsmaxl. */ |
| break; |
| case 1168: /* stsminb */ |
| case 1102: /* ldsminb */ |
| value = 1102; /* --> ldsminb. */ |
| break; |
| case 1169: /* stsminh */ |
| case 1103: /* ldsminh */ |
| value = 1103; /* --> ldsminh. */ |
| break; |
| case 1170: /* stsmin */ |
| case 1104: /* ldsmin */ |
| value = 1104; /* --> ldsmin. */ |
| break; |
| case 1171: /* stsminlb */ |
| case 1106: /* ldsminlb */ |
| value = 1106; /* --> ldsminlb. */ |
| break; |
| case 1172: /* stsminlh */ |
| case 1109: /* ldsminlh */ |
| value = 1109; /* --> ldsminlh. */ |
| break; |
| case 1173: /* stsminl */ |
| case 1112: /* ldsminl */ |
| value = 1112; /* --> ldsminl. */ |
| break; |
| case 1174: /* stumaxb */ |
| case 1114: /* ldumaxb */ |
| value = 1114; /* --> ldumaxb. */ |
| break; |
| case 1175: /* stumaxh */ |
| case 1115: /* ldumaxh */ |
| value = 1115; /* --> ldumaxh. */ |
| break; |
| case 1176: /* stumax */ |
| case 1116: /* ldumax */ |
| value = 1116; /* --> ldumax. */ |
| break; |
| case 1177: /* stumaxlb */ |
| case 1118: /* ldumaxlb */ |
| value = 1118; /* --> ldumaxlb. */ |
| break; |
| case 1178: /* stumaxlh */ |
| case 1121: /* ldumaxlh */ |
| value = 1121; /* --> ldumaxlh. */ |
| break; |
| case 1179: /* stumaxl */ |
| case 1124: /* ldumaxl */ |
| value = 1124; /* --> ldumaxl. */ |
| break; |
| case 1180: /* stuminb */ |
| case 1126: /* lduminb */ |
| value = 1126; /* --> lduminb. */ |
| break; |
| case 1181: /* stuminh */ |
| case 1127: /* lduminh */ |
| value = 1127; /* --> lduminh. */ |
| break; |
| case 1182: /* stumin */ |
| case 1128: /* ldumin */ |
| value = 1128; /* --> ldumin. */ |
| break; |
| case 1183: /* stuminlb */ |
| case 1130: /* lduminlb */ |
| value = 1130; /* --> lduminlb. */ |
| break; |
| case 1184: /* stuminlh */ |
| case 1133: /* lduminlh */ |
| value = 1133; /* --> lduminlh. */ |
| break; |
| case 1185: /* stuminl */ |
| case 1136: /* lduminl */ |
| value = 1136; /* --> lduminl. */ |
| break; |
| case 1217: /* mov */ |
| case 1216: /* movn */ |
| value = 1216; /* --> movn. */ |
| break; |
| case 1219: /* mov */ |
| case 1218: /* movz */ |
| value = 1218; /* --> movz. */ |
| break; |
| case 3216: /* clrbhb */ |
| case 1299: /* autibsp */ |
| case 1298: /* autibz */ |
| case 1297: /* autiasp */ |
| case 1296: /* autiaz */ |
| case 1295: /* pacibsp */ |
| case 1294: /* pacibz */ |
| case 1293: /* paciasp */ |
| case 1292: /* paciaz */ |
| case 1271: /* gcsb */ |
| case 1251: /* clearbhb */ |
| case 1250: /* tsb */ |
| case 1249: /* psb */ |
| case 1248: /* esb */ |
| case 1247: /* autib1716 */ |
| case 1246: /* autia1716 */ |
| case 1245: /* pacib1716 */ |
| case 1244: /* pacia1716 */ |
| case 1243: /* xpaclri */ |
| case 1241: /* sevl */ |
| case 1240: /* sev */ |
| case 1239: /* wfi */ |
| case 1238: /* wfe */ |
| case 1237: /* yield */ |
| case 1236: /* bti */ |
| case 1235: /* csdb */ |
| case 1234: /* nop */ |
| case 1233: /* hint */ |
| value = 1233; /* --> hint. */ |
| break; |
| case 1257: /* pssbb */ |
| case 1256: /* ssbb */ |
| case 1255: /* dfb */ |
| case 1253: /* dsb */ |
| value = 1253; /* --> dsb. */ |
| break; |
| case 1254: /* dsb */ |
| value = 1254; /* --> dsb. */ |
| break; |
| case 3217: /* trcit */ |
| case 1285: /* brb */ |
| case 1284: /* cosp */ |
| case 1283: /* cpp */ |
| case 1282: /* dvp */ |
| case 1281: /* cfp */ |
| case 1277: /* tlbi */ |
| case 1276: /* ic */ |
| case 1275: /* dc */ |
| case 1274: /* at */ |
| case 1272: /* sys */ |
| value = 1272; /* --> sys. */ |
| break; |
| case 1278: /* tlbip */ |
| case 1273: /* sysp */ |
| value = 1273; /* --> sysp. */ |
| break; |
| case 1279: /* wfet */ |
| value = 1279; /* --> wfet. */ |
| break; |
| case 1280: /* wfit */ |
| value = 1280; /* --> wfit. */ |
| break; |
| case 2101: /* bic */ |
| case 1348: /* and */ |
| value = 1348; /* --> and. */ |
| break; |
| case 1331: /* mov */ |
| case 1350: /* and */ |
| value = 1350; /* --> and. */ |
| break; |
| case 1335: /* movs */ |
| case 1351: /* ands */ |
| value = 1351; /* --> ands. */ |
| break; |
| case 2102: /* cmple */ |
| case 1386: /* cmpge */ |
| value = 1386; /* --> cmpge. */ |
| break; |
| case 2105: /* cmplt */ |
| case 1389: /* cmpgt */ |
| value = 1389; /* --> cmpgt. */ |
| break; |
| case 2103: /* cmplo */ |
| case 1391: /* cmphi */ |
| value = 1391; /* --> cmphi. */ |
| break; |
| case 2104: /* cmpls */ |
| case 1394: /* cmphs */ |
| value = 1394; /* --> cmphs. */ |
| break; |
| case 1328: /* mov */ |
| case 1416: /* cpy */ |
| value = 1416; /* --> cpy. */ |
| break; |
| case 1330: /* mov */ |
| case 1417: /* cpy */ |
| value = 1417; /* --> cpy. */ |
| break; |
| case 2112: /* fmov */ |
| case 1333: /* mov */ |
| case 1418: /* cpy */ |
| value = 1418; /* --> cpy. */ |
| break; |
| case 1322: /* mov */ |
| case 1430: /* dup */ |
| value = 1430; /* --> dup. */ |
| break; |
| case 1325: /* mov */ |
| case 1321: /* mov */ |
| case 1431: /* dup */ |
| value = 1431; /* --> dup. */ |
| break; |
| case 2111: /* fmov */ |
| case 1327: /* mov */ |
| case 1432: /* dup */ |
| value = 1432; /* --> dup. */ |
| break; |
| case 1326: /* mov */ |
| case 1433: /* dupm */ |
| value = 1433; /* --> dupm. */ |
| break; |
| case 2106: /* eon */ |
| case 1435: /* eor */ |
| value = 1435; /* --> eor. */ |
| break; |
| case 1336: /* not */ |
| case 1437: /* eor */ |
| value = 1437; /* --> eor. */ |
| break; |
| case 1337: /* nots */ |
| case 1438: /* eors */ |
| value = 1438; /* --> eors. */ |
| break; |
| case 2107: /* facle */ |
| case 1443: /* facge */ |
| value = 1443; /* --> facge. */ |
| break; |
| case 2108: /* faclt */ |
| case 1444: /* facgt */ |
| value = 1444; /* --> facgt. */ |
| break; |
| case 2109: /* fcmle */ |
| case 1457: /* fcmge */ |
| value = 1457; /* --> fcmge. */ |
| break; |
| case 2110: /* fcmlt */ |
| case 1459: /* fcmgt */ |
| value = 1459; /* --> fcmgt. */ |
| break; |
| case 1319: /* fmov */ |
| case 1465: /* fcpy */ |
| value = 1465; /* --> fcpy. */ |
| break; |
| case 1318: /* fmov */ |
| case 1488: /* fdup */ |
| value = 1488; /* --> fdup. */ |
| break; |
| case 1320: /* mov */ |
| case 1820: /* orr */ |
| value = 1820; /* --> orr. */ |
| break; |
| case 2113: /* orn */ |
| case 1821: /* orr */ |
| value = 1821; /* --> orr. */ |
| break; |
| case 1324: /* mov */ |
| case 1323: /* mov */ |
| case 1823: /* orr */ |
| value = 1823; /* --> orr. */ |
| break; |
| case 1334: /* movs */ |
| case 1824: /* orrs */ |
| value = 1824; /* --> orrs. */ |
| break; |
| case 1329: /* mov */ |
| case 1887: /* sel */ |
| value = 1887; /* --> sel. */ |
| break; |
| case 1332: /* mov */ |
| case 1888: /* sel */ |
| value = 1888; /* --> sel. */ |
| break; |
| default: return NULL; |
| } |
| |
| return aarch64_opcode_table + value; |
| } |
| |
| bool |
| aarch64_insert_operand (const aarch64_operand *self, |
| const aarch64_opnd_info *info, |
| aarch64_insn *code, const aarch64_inst *inst, |
| aarch64_operand_error *errors) |
| { |
| /* Use the index as the key. */ |
| int key = self - aarch64_operands; |
| switch (key) |
| { |
| case 1: |
| case 2: |
| case 3: |
| case 4: |
| case 5: |
| case 7: |
| case 8: |
| case 9: |
| case 10: |
| case 11: |
| case 12: |
| case 13: |
| case 14: |
| case 20: |
| case 21: |
| case 22: |
| case 23: |
| case 25: |
| case 26: |
| case 27: |
| case 28: |
| case 29: |
| case 30: |
| case 31: |
| case 32: |
| case 33: |
| case 34: |
| case 123: |
| case 124: |
| case 125: |
| case 184: |
| case 185: |
| case 186: |
| case 187: |
| case 188: |
| case 189: |
| case 190: |
| case 191: |
| case 192: |
| case 193: |
| case 194: |
| case 195: |
| case 196: |
| case 197: |
| case 213: |
| case 214: |
| case 215: |
| case 216: |
| case 226: |
| case 227: |
| case 228: |
| case 229: |
| case 230: |
| case 241: |
| case 245: |
| case 250: |
| case 258: |
| case 259: |
| case 260: |
| case 267: |
| case 268: |
| case 269: |
| case 270: |
| case 304: |
| case 308: |
| return aarch64_ins_regno (self, info, code, inst, errors); |
| case 6: |
| case 119: |
| case 120: |
| case 314: |
| case 317: |
| return aarch64_ins_none (self, info, code, inst, errors); |
| case 17: |
| return aarch64_ins_reg_extended (self, info, code, inst, errors); |
| case 18: |
| return aarch64_ins_reg_shifted (self, info, code, inst, errors); |
| case 19: |
| return aarch64_ins_reg_lsl_shifted (self, info, code, inst, errors); |
| case 24: |
| return aarch64_ins_ft (self, info, code, inst, errors); |
| case 35: |
| case 36: |
| case 37: |
| case 38: |
| case 39: |
| case 319: |
| return aarch64_ins_reglane (self, info, code, inst, errors); |
| case 40: |
| case 41: |
| case 42: |
| case 231: |
| case 232: |
| case 235: |
| case 271: |
| case 272: |
| case 287: |
| case 288: |
| case 289: |
| case 290: |
| case 291: |
| case 292: |
| case 293: |
| case 294: |
| case 295: |
| case 296: |
| case 297: |
| case 298: |
| case 299: |
| case 300: |
| case 301: |
| case 302: |
| case 303: |
| case 305: |
| case 306: |
| case 307: |
| case 309: |
| case 310: |
| case 311: |
| return aarch64_ins_simple_index (self, info, code, inst, errors); |
| case 43: |
| return aarch64_ins_reglist (self, info, code, inst, errors); |
| case 44: |
| return aarch64_ins_ldst_reglist (self, info, code, inst, errors); |
| case 45: |
| return aarch64_ins_ldst_reglist_r (self, info, code, inst, errors); |
| case 46: |
| return aarch64_ins_lut_reglist (self, info, code, inst, errors); |
| case 47: |
| return aarch64_ins_ldst_elemlist (self, info, code, inst, errors); |
| case 48: |
| case 49: |
| case 50: |
| case 51: |
| case 61: |
| case 62: |
| case 63: |
| case 64: |
| case 65: |
| case 66: |
| case 67: |
| case 68: |
| case 69: |
| case 70: |
| case 71: |
| case 72: |
| case 73: |
| case 74: |
| case 75: |
| case 76: |
| case 77: |
| case 89: |
| case 90: |
| case 91: |
| case 92: |
| case 118: |
| case 122: |
| case 181: |
| case 183: |
| case 204: |
| case 205: |
| case 206: |
| case 207: |
| case 208: |
| case 209: |
| case 210: |
| case 211: |
| case 212: |
| case 273: |
| case 312: |
| case 313: |
| case 315: |
| case 316: |
| case 318: |
| case 323: |
| case 324: |
| return aarch64_ins_imm (self, info, code, inst, errors); |
| case 52: |
| case 53: |
| return aarch64_ins_advsimd_imm_shift (self, info, code, inst, errors); |
| case 54: |
| case 55: |
| case 56: |
| return aarch64_ins_advsimd_imm_modified (self, info, code, inst, errors); |
| case 60: |
| case 171: |
| return aarch64_ins_fpimm (self, info, code, inst, errors); |
| case 78: |
| case 179: |
| return aarch64_ins_limm (self, info, code, inst, errors); |
| case 79: |
| return aarch64_ins_aimm (self, info, code, inst, errors); |
| case 80: |
| return aarch64_ins_imm_half (self, info, code, inst, errors); |
| case 81: |
| return aarch64_ins_fbits (self, info, code, inst, errors); |
| case 83: |
| case 84: |
| case 176: |
| return aarch64_ins_imm_rotate2 (self, info, code, inst, errors); |
| case 85: |
| case 175: |
| case 177: |
| return aarch64_ins_imm_rotate1 (self, info, code, inst, errors); |
| case 86: |
| case 87: |
| return aarch64_ins_cond (self, info, code, inst, errors); |
| case 93: |
| case 102: |
| return aarch64_ins_addr_simple (self, info, code, inst, errors); |
| case 94: |
| return aarch64_ins_addr_regoff (self, info, code, inst, errors); |
| case 95: |
| case 96: |
| case 97: |
| case 99: |
| case 101: |
| return aarch64_ins_addr_simm (self, info, code, inst, errors); |
| case 98: |
| return aarch64_ins_addr_simm10 (self, info, code, inst, errors); |
| case 100: |
| return aarch64_ins_addr_uimm12 (self, info, code, inst, errors); |
| case 103: |
| return aarch64_ins_addr_offset (self, info, code, inst, errors); |
| case 104: |
| return aarch64_ins_simd_addr_post (self, info, code, inst, errors); |
| case 105: |
| case 106: |
| return aarch64_ins_sysreg (self, info, code, inst, errors); |
| case 107: |
| return aarch64_ins_pstatefield (self, info, code, inst, errors); |
| case 108: |
| case 109: |
| case 110: |
| case 111: |
| case 112: |
| case 113: |
| return aarch64_ins_sysins_op (self, info, code, inst, errors); |
| case 114: |
| case 116: |
| return aarch64_ins_barrier (self, info, code, inst, errors); |
| case 115: |
| return aarch64_ins_barrier_dsb_nxs (self, info, code, inst, errors); |
| case 117: |
| return aarch64_ins_prfop (self, info, code, inst, errors); |
| case 121: |
| return aarch64_ins_hint (self, info, code, inst, errors); |
| case 126: |
| case 127: |
| return aarch64_ins_sve_addr_ri_s4 (self, info, code, inst, errors); |
| case 128: |
| case 129: |
| case 130: |
| case 131: |
| return aarch64_ins_sve_addr_ri_s4xvl (self, info, code, inst, errors); |
| case 132: |
| return aarch64_ins_sve_addr_ri_s6xvl (self, info, code, inst, errors); |
| case 133: |
| return aarch64_ins_sve_addr_ri_s9xvl (self, info, code, inst, errors); |
| case 134: |
| case 135: |
| case 136: |
| case 137: |
| return aarch64_ins_sve_addr_ri_u6 (self, info, code, inst, errors); |
| case 138: |
| case 139: |
| case 140: |
| case 141: |
| case 142: |
| case 143: |
| case 144: |
| case 145: |
| case 146: |
| case 147: |
| case 148: |
| case 149: |
| case 150: |
| case 151: |
| case 152: |
| case 153: |
| return aarch64_ins_sve_addr_rr_lsl (self, info, code, inst, errors); |
| case 154: |
| case 155: |
| case 156: |
| case 157: |
| case 158: |
| case 159: |
| case 160: |
| case 161: |
| return aarch64_ins_sve_addr_rz_xtw (self, info, code, inst, errors); |
| case 162: |
| case 163: |
| case 164: |
| case 165: |
| return aarch64_ins_sve_addr_zi_u5 (self, info, code, inst, errors); |
| case 166: |
| return aarch64_ins_sve_addr_zz_lsl (self, info, code, inst, errors); |
| case 167: |
| return aarch64_ins_sve_addr_zz_sxtw (self, info, code, inst, errors); |
| case 168: |
| return aarch64_ins_sve_addr_zz_uxtw (self, info, code, inst, errors); |
| case 169: |
| return aarch64_ins_sve_aimm (self, info, code, inst, errors); |
| case 170: |
| return aarch64_ins_sve_asimm (self, info, code, inst, errors); |
| case 172: |
| return aarch64_ins_sve_float_half_one (self, info, code, inst, errors); |
| case 173: |
| return aarch64_ins_sve_float_half_two (self, info, code, inst, errors); |
| case 174: |
| return aarch64_ins_sve_float_zero_one (self, info, code, inst, errors); |
| case 178: |
| return aarch64_ins_inv_limm (self, info, code, inst, errors); |
| case 180: |
| return aarch64_ins_sve_limm_mov (self, info, code, inst, errors); |
| case 182: |
| return aarch64_ins_sve_scale (self, info, code, inst, errors); |
| case 198: |
| case 199: |
| case 200: |
| return aarch64_ins_sve_shlimm (self, info, code, inst, errors); |
| case 201: |
| case 202: |
| case 203: |
| case 286: |
| return aarch64_ins_sve_shrimm (self, info, code, inst, errors); |
| case 217: |
| case 218: |
| case 219: |
| case 220: |
| return aarch64_ins_sme_za_vrs1 (self, info, code, inst, errors); |
| case 221: |
| case 222: |
| case 223: |
| case 224: |
| return aarch64_ins_sme_za_vrs2 (self, info, code, inst, errors); |
| case 225: |
| return aarch64_ins_sme_za_tile_to_vec (self, info, code, inst, errors); |
| case 233: |
| case 234: |
| case 236: |
| case 237: |
| case 238: |
| case 239: |
| case 240: |
| return aarch64_ins_sve_quad_index (self, info, code, inst, errors); |
| case 242: |
| case 243: |
| return aarch64_ins_sve_index (self, info, code, inst, errors); |
| case 244: |
| case 246: |
| case 266: |
| return aarch64_ins_sve_reglist (self, info, code, inst, errors); |
| case 247: |
| case 248: |
| case 251: |
| case 252: |
| case 253: |
| case 254: |
| case 255: |
| case 265: |
| return aarch64_ins_sve_aligned_reglist (self, info, code, inst, errors); |
| case 249: |
| case 256: |
| case 257: |
| return aarch64_ins_sve_strided_reglist (self, info, code, inst, errors); |
| case 261: |
| case 263: |
| case 274: |
| return aarch64_ins_sme_za_hv_tiles (self, info, code, inst, errors); |
| case 262: |
| case 264: |
| return aarch64_ins_sme_za_hv_tiles_range (self, info, code, inst, errors); |
| case 275: |
| case 276: |
| case 277: |
| case 278: |
| case 279: |
| case 280: |
| case 281: |
| return aarch64_ins_sme_za_array (self, info, code, inst, errors); |
| case 282: |
| return aarch64_ins_sme_addr_ri_u4xvl (self, info, code, inst, errors); |
| case 283: |
| return aarch64_ins_sme_sm_za (self, info, code, inst, errors); |
| case 284: |
| return aarch64_ins_sme_pred_reg_with_index (self, info, code, inst, errors); |
| case 285: |
| return aarch64_ins_plain_shrimm (self, info, code, inst, errors); |
| case 320: |
| case 321: |
| case 322: |
| return aarch64_ins_x0_to_x30 (self, info, code, inst, errors); |
| case 325: |
| case 326: |
| case 327: |
| case 328: |
| return aarch64_ins_rcpc3_addr_opt_offset (self, info, code, inst, errors); |
| case 329: |
| return aarch64_ins_rcpc3_addr_offset (self, info, code, inst, errors); |
| default: assert (0); abort (); |
| } |
| } |