1 /* This file is automatically generated by aarch64-gen. Do not edit! */ 2 /* Copyright (C) 2012-2024 Free Software Foundation, Inc. 3 Contributed by ARM Ltd. 4 5 This file is part of the GNU opcodes library. 6 7 This library is free software; you can redistribute it and/or modify 8 it under the terms of the GNU General Public License as published by 9 the Free Software Foundation; either version 3, or (at your option) 10 any later version. 11 12 It is distributed in the hope that it will be useful, but WITHOUT 13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 14 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 15 License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with this program; see the file COPYING3. If not, 19 see <http://www.gnu.org/licenses/>. */ 20 21 #include "sysdep.h" 22 #include "aarch64-asm.h" 23 24 25 const aarch64_opcode * 26 aarch64_find_real_opcode (const aarch64_opcode *opcode) 27 { 28 /* Use the index as the key to locate the real opcode. */ 29 int key = opcode - aarch64_opcode_table; 30 int value; 31 switch (key) 32 { 33 case 3: /* ngc */ 34 case 2: /* sbc */ 35 value = 2; /* --> sbc. */ 36 break; 37 case 5: /* ngcs */ 38 case 4: /* sbcs */ 39 value = 4; /* --> sbcs. */ 40 break; 41 case 8: /* cmn */ 42 case 7: /* adds */ 43 value = 7; /* --> adds. */ 44 break; 45 case 11: /* cmp */ 46 case 10: /* subs */ 47 value = 10; /* --> subs. */ 48 break; 49 case 13: /* mov */ 50 case 12: /* add */ 51 value = 12; /* --> add. */ 52 break; 53 case 15: /* cmn */ 54 case 14: /* adds */ 55 value = 14; /* --> adds. */ 56 break; 57 case 18: /* cmp */ 58 case 17: /* subs */ 59 value = 17; /* --> subs. */ 60 break; 61 case 23: /* cmn */ 62 case 22: /* adds */ 63 value = 22; /* --> adds. */ 64 break; 65 case 25: /* neg */ 66 case 24: /* sub */ 67 value = 24; /* --> sub. */ 68 break; 69 case 27: /* cmp */ 70 case 28: /* negs */ 71 case 26: /* subs */ 72 value = 26; /* --> subs. */ 73 break; 74 case 153: /* mov */ 75 case 152: /* umov */ 76 value = 152; /* --> umov. */ 77 break; 78 case 155: /* mov */ 79 case 154: /* ins */ 80 value = 154; /* --> ins. */ 81 break; 82 case 157: /* mov */ 83 case 156: /* ins */ 84 value = 156; /* --> ins. */ 85 break; 86 case 243: /* mvn */ 87 case 242: /* not */ 88 value = 242; /* --> not. */ 89 break; 90 case 318: /* mov */ 91 case 317: /* orr */ 92 value = 317; /* --> orr. */ 93 break; 94 case 389: /* sxtl */ 95 case 388: /* sshll */ 96 value = 388; /* --> sshll. */ 97 break; 98 case 391: /* sxtl2 */ 99 case 390: /* sshll2 */ 100 value = 390; /* --> sshll2. */ 101 break; 102 case 413: /* uxtl */ 103 case 412: /* ushll */ 104 value = 412; /* --> ushll. */ 105 break; 106 case 415: /* uxtl2 */ 107 case 414: /* ushll2 */ 108 value = 414; /* --> ushll2. */ 109 break; 110 case 536: /* mov */ 111 case 535: /* dup */ 112 value = 535; /* --> dup. */ 113 break; 114 case 623: /* sxtw */ 115 case 622: /* sxth */ 116 case 621: /* sxtb */ 117 case 624: /* asr */ 118 case 620: /* sbfx */ 119 case 619: /* sbfiz */ 120 case 618: /* sbfm */ 121 value = 618; /* --> sbfm. */ 122 break; 123 case 627: /* bfc */ 124 case 628: /* bfxil */ 125 case 626: /* bfi */ 126 case 625: /* bfm */ 127 value = 625; /* --> bfm. */ 128 break; 129 case 633: /* uxth */ 130 case 632: /* uxtb */ 131 case 635: /* lsr */ 132 case 634: /* lsl */ 133 case 631: /* ubfx */ 134 case 630: /* ubfiz */ 135 case 629: /* ubfm */ 136 value = 629; /* --> ubfm. */ 137 break; 138 case 665: /* cset */ 139 case 664: /* cinc */ 140 case 663: /* csinc */ 141 value = 663; /* --> csinc. */ 142 break; 143 case 668: /* csetm */ 144 case 667: /* cinv */ 145 case 666: /* csinv */ 146 value = 666; /* --> csinv. */ 147 break; 148 case 670: /* cneg */ 149 case 669: /* csneg */ 150 value = 669; /* --> csneg. */ 151 break; 152 case 688: /* rev */ 153 case 689: /* rev64 */ 154 value = 688; /* --> rev. */ 155 break; 156 case 714: /* lsl */ 157 case 713: /* lslv */ 158 value = 713; /* --> lslv. */ 159 break; 160 case 716: /* lsr */ 161 case 715: /* lsrv */ 162 value = 715; /* --> lsrv. */ 163 break; 164 case 718: /* asr */ 165 case 717: /* asrv */ 166 value = 717; /* --> asrv. */ 167 break; 168 case 720: /* ror */ 169 case 719: /* rorv */ 170 value = 719; /* --> rorv. */ 171 break; 172 case 723: /* cmpp */ 173 case 722: /* subps */ 174 value = 722; /* --> subps. */ 175 break; 176 case 736: /* mul */ 177 case 735: /* madd */ 178 value = 735; /* --> madd. */ 179 break; 180 case 738: /* mneg */ 181 case 737: /* msub */ 182 value = 737; /* --> msub. */ 183 break; 184 case 740: /* smull */ 185 case 739: /* smaddl */ 186 value = 739; /* --> smaddl. */ 187 break; 188 case 742: /* smnegl */ 189 case 741: /* smsubl */ 190 value = 741; /* --> smsubl. */ 191 break; 192 case 745: /* umull */ 193 case 744: /* umaddl */ 194 value = 744; /* --> umaddl. */ 195 break; 196 case 747: /* umnegl */ 197 case 746: /* umsubl */ 198 value = 746; /* --> umsubl. */ 199 break; 200 case 759: /* ror */ 201 case 758: /* extr */ 202 value = 758; /* --> extr. */ 203 break; 204 case 996: /* bic */ 205 case 995: /* and */ 206 value = 995; /* --> and. */ 207 break; 208 case 998: /* mov */ 209 case 997: /* orr */ 210 value = 997; /* --> orr. */ 211 break; 212 case 1001: /* tst */ 213 case 1000: /* ands */ 214 value = 1000; /* --> ands. */ 215 break; 216 case 1006: /* uxtw */ 217 case 1005: /* mov */ 218 case 1004: /* orr */ 219 value = 1004; /* --> orr. */ 220 break; 221 case 1008: /* mvn */ 222 case 1007: /* orn */ 223 value = 1007; /* --> orn. */ 224 break; 225 case 1012: /* tst */ 226 case 1011: /* ands */ 227 value = 1011; /* --> ands. */ 228 break; 229 case 1138: /* staddb */ 230 case 1042: /* ldaddb */ 231 value = 1042; /* --> ldaddb. */ 232 break; 233 case 1139: /* staddh */ 234 case 1043: /* ldaddh */ 235 value = 1043; /* --> ldaddh. */ 236 break; 237 case 1140: /* stadd */ 238 case 1044: /* ldadd */ 239 value = 1044; /* --> ldadd. */ 240 break; 241 case 1141: /* staddlb */ 242 case 1046: /* ldaddlb */ 243 value = 1046; /* --> ldaddlb. */ 244 break; 245 case 1142: /* staddlh */ 246 case 1049: /* ldaddlh */ 247 value = 1049; /* --> ldaddlh. */ 248 break; 249 case 1143: /* staddl */ 250 case 1052: /* ldaddl */ 251 value = 1052; /* --> ldaddl. */ 252 break; 253 case 1144: /* stclrb */ 254 case 1054: /* ldclrb */ 255 value = 1054; /* --> ldclrb. */ 256 break; 257 case 1145: /* stclrh */ 258 case 1055: /* ldclrh */ 259 value = 1055; /* --> ldclrh. */ 260 break; 261 case 1146: /* stclr */ 262 case 1056: /* ldclr */ 263 value = 1056; /* --> ldclr. */ 264 break; 265 case 1147: /* stclrlb */ 266 case 1058: /* ldclrlb */ 267 value = 1058; /* --> ldclrlb. */ 268 break; 269 case 1148: /* stclrlh */ 270 case 1061: /* ldclrlh */ 271 value = 1061; /* --> ldclrlh. */ 272 break; 273 case 1149: /* stclrl */ 274 case 1064: /* ldclrl */ 275 value = 1064; /* --> ldclrl. */ 276 break; 277 case 1150: /* steorb */ 278 case 1066: /* ldeorb */ 279 value = 1066; /* --> ldeorb. */ 280 break; 281 case 1151: /* steorh */ 282 case 1067: /* ldeorh */ 283 value = 1067; /* --> ldeorh. */ 284 break; 285 case 1152: /* steor */ 286 case 1068: /* ldeor */ 287 value = 1068; /* --> ldeor. */ 288 break; 289 case 1153: /* steorlb */ 290 case 1070: /* ldeorlb */ 291 value = 1070; /* --> ldeorlb. */ 292 break; 293 case 1154: /* steorlh */ 294 case 1073: /* ldeorlh */ 295 value = 1073; /* --> ldeorlh. */ 296 break; 297 case 1155: /* steorl */ 298 case 1076: /* ldeorl */ 299 value = 1076; /* --> ldeorl. */ 300 break; 301 case 1156: /* stsetb */ 302 case 1078: /* ldsetb */ 303 value = 1078; /* --> ldsetb. */ 304 break; 305 case 1157: /* stseth */ 306 case 1079: /* ldseth */ 307 value = 1079; /* --> ldseth. */ 308 break; 309 case 1158: /* stset */ 310 case 1080: /* ldset */ 311 value = 1080; /* --> ldset. */ 312 break; 313 case 1159: /* stsetlb */ 314 case 1082: /* ldsetlb */ 315 value = 1082; /* --> ldsetlb. */ 316 break; 317 case 1160: /* stsetlh */ 318 case 1085: /* ldsetlh */ 319 value = 1085; /* --> ldsetlh. */ 320 break; 321 case 1161: /* stsetl */ 322 case 1088: /* ldsetl */ 323 value = 1088; /* --> ldsetl. */ 324 break; 325 case 1162: /* stsmaxb */ 326 case 1090: /* ldsmaxb */ 327 value = 1090; /* --> ldsmaxb. */ 328 break; 329 case 1163: /* stsmaxh */ 330 case 1091: /* ldsmaxh */ 331 value = 1091; /* --> ldsmaxh. */ 332 break; 333 case 1164: /* stsmax */ 334 case 1092: /* ldsmax */ 335 value = 1092; /* --> ldsmax. */ 336 break; 337 case 1165: /* stsmaxlb */ 338 case 1094: /* ldsmaxlb */ 339 value = 1094; /* --> ldsmaxlb. */ 340 break; 341 case 1166: /* stsmaxlh */ 342 case 1097: /* ldsmaxlh */ 343 value = 1097; /* --> ldsmaxlh. */ 344 break; 345 case 1167: /* stsmaxl */ 346 case 1100: /* ldsmaxl */ 347 value = 1100; /* --> ldsmaxl. */ 348 break; 349 case 1168: /* stsminb */ 350 case 1102: /* ldsminb */ 351 value = 1102; /* --> ldsminb. */ 352 break; 353 case 1169: /* stsminh */ 354 case 1103: /* ldsminh */ 355 value = 1103; /* --> ldsminh. */ 356 break; 357 case 1170: /* stsmin */ 358 case 1104: /* ldsmin */ 359 value = 1104; /* --> ldsmin. */ 360 break; 361 case 1171: /* stsminlb */ 362 case 1106: /* ldsminlb */ 363 value = 1106; /* --> ldsminlb. */ 364 break; 365 case 1172: /* stsminlh */ 366 case 1109: /* ldsminlh */ 367 value = 1109; /* --> ldsminlh. */ 368 break; 369 case 1173: /* stsminl */ 370 case 1112: /* ldsminl */ 371 value = 1112; /* --> ldsminl. */ 372 break; 373 case 1174: /* stumaxb */ 374 case 1114: /* ldumaxb */ 375 value = 1114; /* --> ldumaxb. */ 376 break; 377 case 1175: /* stumaxh */ 378 case 1115: /* ldumaxh */ 379 value = 1115; /* --> ldumaxh. */ 380 break; 381 case 1176: /* stumax */ 382 case 1116: /* ldumax */ 383 value = 1116; /* --> ldumax. */ 384 break; 385 case 1177: /* stumaxlb */ 386 case 1118: /* ldumaxlb */ 387 value = 1118; /* --> ldumaxlb. */ 388 break; 389 case 1178: /* stumaxlh */ 390 case 1121: /* ldumaxlh */ 391 value = 1121; /* --> ldumaxlh. */ 392 break; 393 case 1179: /* stumaxl */ 394 case 1124: /* ldumaxl */ 395 value = 1124; /* --> ldumaxl. */ 396 break; 397 case 1180: /* stuminb */ 398 case 1126: /* lduminb */ 399 value = 1126; /* --> lduminb. */ 400 break; 401 case 1181: /* stuminh */ 402 case 1127: /* lduminh */ 403 value = 1127; /* --> lduminh. */ 404 break; 405 case 1182: /* stumin */ 406 case 1128: /* ldumin */ 407 value = 1128; /* --> ldumin. */ 408 break; 409 case 1183: /* stuminlb */ 410 case 1130: /* lduminlb */ 411 value = 1130; /* --> lduminlb. */ 412 break; 413 case 1184: /* stuminlh */ 414 case 1133: /* lduminlh */ 415 value = 1133; /* --> lduminlh. */ 416 break; 417 case 1185: /* stuminl */ 418 case 1136: /* lduminl */ 419 value = 1136; /* --> lduminl. */ 420 break; 421 case 1217: /* mov */ 422 case 1216: /* movn */ 423 value = 1216; /* --> movn. */ 424 break; 425 case 1219: /* mov */ 426 case 1218: /* movz */ 427 value = 1218; /* --> movz. */ 428 break; 429 case 3215: /* clrbhb */ 430 case 1298: /* autibsp */ 431 case 1297: /* autibz */ 432 case 1296: /* autiasp */ 433 case 1295: /* autiaz */ 434 case 1294: /* pacibsp */ 435 case 1293: /* pacibz */ 436 case 1292: /* paciasp */ 437 case 1291: /* paciaz */ 438 case 1271: /* gcsb */ 439 case 1251: /* clearbhb */ 440 case 1250: /* tsb */ 441 case 1249: /* psb */ 442 case 1248: /* esb */ 443 case 1247: /* autib1716 */ 444 case 1246: /* autia1716 */ 445 case 1245: /* pacib1716 */ 446 case 1244: /* pacia1716 */ 447 case 1243: /* xpaclri */ 448 case 1241: /* sevl */ 449 case 1240: /* sev */ 450 case 1239: /* wfi */ 451 case 1238: /* wfe */ 452 case 1237: /* yield */ 453 case 1236: /* bti */ 454 case 1235: /* csdb */ 455 case 1234: /* nop */ 456 case 1233: /* hint */ 457 value = 1233; /* --> hint. */ 458 break; 459 case 1257: /* pssbb */ 460 case 1256: /* ssbb */ 461 case 1255: /* dfb */ 462 case 1253: /* dsb */ 463 value = 1253; /* --> dsb. */ 464 break; 465 case 1254: /* dsb */ 466 value = 1254; /* --> dsb. */ 467 break; 468 case 3216: /* trcit */ 469 case 1284: /* cosp */ 470 case 1283: /* cpp */ 471 case 1282: /* dvp */ 472 case 1281: /* cfp */ 473 case 1277: /* tlbi */ 474 case 1276: /* ic */ 475 case 1275: /* dc */ 476 case 1274: /* at */ 477 case 1272: /* sys */ 478 value = 1272; /* --> sys. */ 479 break; 480 case 1278: /* tlbip */ 481 case 1273: /* sysp */ 482 value = 1273; /* --> sysp. */ 483 break; 484 case 1279: /* wfet */ 485 value = 1279; /* --> wfet. */ 486 break; 487 case 1280: /* wfit */ 488 value = 1280; /* --> wfit. */ 489 break; 490 case 2100: /* bic */ 491 case 1347: /* and */ 492 value = 1347; /* --> and. */ 493 break; 494 case 1330: /* mov */ 495 case 1349: /* and */ 496 value = 1349; /* --> and. */ 497 break; 498 case 1334: /* movs */ 499 case 1350: /* ands */ 500 value = 1350; /* --> ands. */ 501 break; 502 case 2101: /* cmple */ 503 case 1385: /* cmpge */ 504 value = 1385; /* --> cmpge. */ 505 break; 506 case 2104: /* cmplt */ 507 case 1388: /* cmpgt */ 508 value = 1388; /* --> cmpgt. */ 509 break; 510 case 2102: /* cmplo */ 511 case 1390: /* cmphi */ 512 value = 1390; /* --> cmphi. */ 513 break; 514 case 2103: /* cmpls */ 515 case 1393: /* cmphs */ 516 value = 1393; /* --> cmphs. */ 517 break; 518 case 1327: /* mov */ 519 case 1415: /* cpy */ 520 value = 1415; /* --> cpy. */ 521 break; 522 case 1329: /* mov */ 523 case 1416: /* cpy */ 524 value = 1416; /* --> cpy. */ 525 break; 526 case 2111: /* fmov */ 527 case 1332: /* mov */ 528 case 1417: /* cpy */ 529 value = 1417; /* --> cpy. */ 530 break; 531 case 1321: /* mov */ 532 case 1429: /* dup */ 533 value = 1429; /* --> dup. */ 534 break; 535 case 1324: /* mov */ 536 case 1320: /* mov */ 537 case 1430: /* dup */ 538 value = 1430; /* --> dup. */ 539 break; 540 case 2110: /* fmov */ 541 case 1326: /* mov */ 542 case 1431: /* dup */ 543 value = 1431; /* --> dup. */ 544 break; 545 case 1325: /* mov */ 546 case 1432: /* dupm */ 547 value = 1432; /* --> dupm. */ 548 break; 549 case 2105: /* eon */ 550 case 1434: /* eor */ 551 value = 1434; /* --> eor. */ 552 break; 553 case 1335: /* not */ 554 case 1436: /* eor */ 555 value = 1436; /* --> eor. */ 556 break; 557 case 1336: /* nots */ 558 case 1437: /* eors */ 559 value = 1437; /* --> eors. */ 560 break; 561 case 2106: /* facle */ 562 case 1442: /* facge */ 563 value = 1442; /* --> facge. */ 564 break; 565 case 2107: /* faclt */ 566 case 1443: /* facgt */ 567 value = 1443; /* --> facgt. */ 568 break; 569 case 2108: /* fcmle */ 570 case 1456: /* fcmge */ 571 value = 1456; /* --> fcmge. */ 572 break; 573 case 2109: /* fcmlt */ 574 case 1458: /* fcmgt */ 575 value = 1458; /* --> fcmgt. */ 576 break; 577 case 1318: /* fmov */ 578 case 1464: /* fcpy */ 579 value = 1464; /* --> fcpy. */ 580 break; 581 case 1317: /* fmov */ 582 case 1487: /* fdup */ 583 value = 1487; /* --> fdup. */ 584 break; 585 case 1319: /* mov */ 586 case 1819: /* orr */ 587 value = 1819; /* --> orr. */ 588 break; 589 case 2112: /* orn */ 590 case 1820: /* orr */ 591 value = 1820; /* --> orr. */ 592 break; 593 case 1323: /* mov */ 594 case 1322: /* mov */ 595 case 1822: /* orr */ 596 value = 1822; /* --> orr. */ 597 break; 598 case 1333: /* movs */ 599 case 1823: /* orrs */ 600 value = 1823; /* --> orrs. */ 601 break; 602 case 1328: /* mov */ 603 case 1886: /* sel */ 604 value = 1886; /* --> sel. */ 605 break; 606 case 1331: /* mov */ 607 case 1887: /* sel */ 608 value = 1887; /* --> sel. */ 609 break; 610 default: return NULL; 611 } 612 613 return aarch64_opcode_table + value; 614 } 615 616 bool 617 aarch64_insert_operand (const aarch64_operand *self, 618 const aarch64_opnd_info *info, 619 aarch64_insn *code, const aarch64_inst *inst, 620 aarch64_operand_error *errors) 621 { 622 /* Use the index as the key. */ 623 int key = self - aarch64_operands; 624 switch (key) 625 { 626 case 1: 627 case 2: 628 case 3: 629 case 4: 630 case 5: 631 case 7: 632 case 8: 633 case 9: 634 case 10: 635 case 11: 636 case 12: 637 case 13: 638 case 14: 639 case 20: 640 case 21: 641 case 22: 642 case 23: 643 case 25: 644 case 26: 645 case 27: 646 case 28: 647 case 29: 648 case 30: 649 case 31: 650 case 32: 651 case 33: 652 case 34: 653 case 117: 654 case 118: 655 case 176: 656 case 177: 657 case 178: 658 case 179: 659 case 180: 660 case 181: 661 case 182: 662 case 183: 663 case 184: 664 case 185: 665 case 186: 666 case 187: 667 case 188: 668 case 189: 669 case 204: 670 case 205: 671 case 206: 672 case 207: 673 case 216: 674 case 217: 675 case 218: 676 case 219: 677 case 220: 678 case 228: 679 case 232: 680 case 236: 681 case 243: 682 case 244: 683 case 251: 684 case 252: 685 case 253: 686 case 254: 687 return aarch64_ins_regno (self, info, code, inst, errors); 688 case 6: 689 case 114: 690 case 115: 691 case 286: 692 case 288: 693 return aarch64_ins_none (self, info, code, inst, errors); 694 case 17: 695 return aarch64_ins_reg_extended (self, info, code, inst, errors); 696 case 18: 697 return aarch64_ins_reg_shifted (self, info, code, inst, errors); 698 case 19: 699 return aarch64_ins_reg_lsl_shifted (self, info, code, inst, errors); 700 case 24: 701 return aarch64_ins_ft (self, info, code, inst, errors); 702 case 35: 703 case 36: 704 case 37: 705 case 38: 706 case 290: 707 return aarch64_ins_reglane (self, info, code, inst, errors); 708 case 39: 709 return aarch64_ins_reglist (self, info, code, inst, errors); 710 case 40: 711 return aarch64_ins_ldst_reglist (self, info, code, inst, errors); 712 case 41: 713 return aarch64_ins_ldst_reglist_r (self, info, code, inst, errors); 714 case 42: 715 return aarch64_ins_ldst_elemlist (self, info, code, inst, errors); 716 case 43: 717 case 44: 718 case 45: 719 case 46: 720 case 56: 721 case 57: 722 case 58: 723 case 59: 724 case 60: 725 case 61: 726 case 62: 727 case 63: 728 case 64: 729 case 65: 730 case 66: 731 case 67: 732 case 68: 733 case 69: 734 case 70: 735 case 71: 736 case 72: 737 case 84: 738 case 85: 739 case 86: 740 case 87: 741 case 113: 742 case 173: 743 case 175: 744 case 196: 745 case 197: 746 case 198: 747 case 199: 748 case 200: 749 case 201: 750 case 202: 751 case 203: 752 case 257: 753 case 284: 754 case 285: 755 case 287: 756 case 289: 757 case 294: 758 case 295: 759 return aarch64_ins_imm (self, info, code, inst, errors); 760 case 47: 761 case 48: 762 return aarch64_ins_advsimd_imm_shift (self, info, code, inst, errors); 763 case 49: 764 case 50: 765 case 51: 766 return aarch64_ins_advsimd_imm_modified (self, info, code, inst, errors); 767 case 55: 768 case 163: 769 return aarch64_ins_fpimm (self, info, code, inst, errors); 770 case 73: 771 case 171: 772 return aarch64_ins_limm (self, info, code, inst, errors); 773 case 74: 774 return aarch64_ins_aimm (self, info, code, inst, errors); 775 case 75: 776 return aarch64_ins_imm_half (self, info, code, inst, errors); 777 case 76: 778 return aarch64_ins_fbits (self, info, code, inst, errors); 779 case 78: 780 case 79: 781 case 168: 782 return aarch64_ins_imm_rotate2 (self, info, code, inst, errors); 783 case 80: 784 case 167: 785 case 169: 786 return aarch64_ins_imm_rotate1 (self, info, code, inst, errors); 787 case 81: 788 case 82: 789 return aarch64_ins_cond (self, info, code, inst, errors); 790 case 88: 791 case 97: 792 return aarch64_ins_addr_simple (self, info, code, inst, errors); 793 case 89: 794 return aarch64_ins_addr_regoff (self, info, code, inst, errors); 795 case 90: 796 case 91: 797 case 92: 798 case 94: 799 case 96: 800 return aarch64_ins_addr_simm (self, info, code, inst, errors); 801 case 93: 802 return aarch64_ins_addr_simm10 (self, info, code, inst, errors); 803 case 95: 804 return aarch64_ins_addr_uimm12 (self, info, code, inst, errors); 805 case 98: 806 return aarch64_ins_addr_offset (self, info, code, inst, errors); 807 case 99: 808 return aarch64_ins_simd_addr_post (self, info, code, inst, errors); 809 case 100: 810 case 101: 811 return aarch64_ins_sysreg (self, info, code, inst, errors); 812 case 102: 813 return aarch64_ins_pstatefield (self, info, code, inst, errors); 814 case 103: 815 case 104: 816 case 105: 817 case 106: 818 case 107: 819 case 108: 820 return aarch64_ins_sysins_op (self, info, code, inst, errors); 821 case 109: 822 case 111: 823 return aarch64_ins_barrier (self, info, code, inst, errors); 824 case 110: 825 return aarch64_ins_barrier_dsb_nxs (self, info, code, inst, errors); 826 case 112: 827 return aarch64_ins_prfop (self, info, code, inst, errors); 828 case 116: 829 return aarch64_ins_hint (self, info, code, inst, errors); 830 case 119: 831 case 120: 832 return aarch64_ins_sve_addr_ri_s4 (self, info, code, inst, errors); 833 case 121: 834 case 122: 835 case 123: 836 case 124: 837 return aarch64_ins_sve_addr_ri_s4xvl (self, info, code, inst, errors); 838 case 125: 839 return aarch64_ins_sve_addr_ri_s6xvl (self, info, code, inst, errors); 840 case 126: 841 return aarch64_ins_sve_addr_ri_s9xvl (self, info, code, inst, errors); 842 case 127: 843 case 128: 844 case 129: 845 case 130: 846 return aarch64_ins_sve_addr_ri_u6 (self, info, code, inst, errors); 847 case 131: 848 case 132: 849 case 133: 850 case 134: 851 case 135: 852 case 136: 853 case 137: 854 case 138: 855 case 139: 856 case 140: 857 case 141: 858 case 142: 859 case 143: 860 case 144: 861 case 145: 862 return aarch64_ins_sve_addr_rr_lsl (self, info, code, inst, errors); 863 case 146: 864 case 147: 865 case 148: 866 case 149: 867 case 150: 868 case 151: 869 case 152: 870 case 153: 871 return aarch64_ins_sve_addr_rz_xtw (self, info, code, inst, errors); 872 case 154: 873 case 155: 874 case 156: 875 case 157: 876 return aarch64_ins_sve_addr_zi_u5 (self, info, code, inst, errors); 877 case 158: 878 return aarch64_ins_sve_addr_zz_lsl (self, info, code, inst, errors); 879 case 159: 880 return aarch64_ins_sve_addr_zz_sxtw (self, info, code, inst, errors); 881 case 160: 882 return aarch64_ins_sve_addr_zz_uxtw (self, info, code, inst, errors); 883 case 161: 884 return aarch64_ins_sve_aimm (self, info, code, inst, errors); 885 case 162: 886 return aarch64_ins_sve_asimm (self, info, code, inst, errors); 887 case 164: 888 return aarch64_ins_sve_float_half_one (self, info, code, inst, errors); 889 case 165: 890 return aarch64_ins_sve_float_half_two (self, info, code, inst, errors); 891 case 166: 892 return aarch64_ins_sve_float_zero_one (self, info, code, inst, errors); 893 case 170: 894 return aarch64_ins_inv_limm (self, info, code, inst, errors); 895 case 172: 896 return aarch64_ins_sve_limm_mov (self, info, code, inst, errors); 897 case 174: 898 return aarch64_ins_sve_scale (self, info, code, inst, errors); 899 case 190: 900 case 191: 901 case 192: 902 return aarch64_ins_sve_shlimm (self, info, code, inst, errors); 903 case 193: 904 case 194: 905 case 195: 906 case 270: 907 return aarch64_ins_sve_shrimm (self, info, code, inst, errors); 908 case 208: 909 case 209: 910 case 210: 911 case 211: 912 return aarch64_ins_sme_za_vrs1 (self, info, code, inst, errors); 913 case 212: 914 case 213: 915 case 214: 916 case 215: 917 return aarch64_ins_sme_za_vrs2 (self, info, code, inst, errors); 918 case 221: 919 case 222: 920 case 223: 921 case 224: 922 case 225: 923 case 226: 924 case 227: 925 return aarch64_ins_sve_quad_index (self, info, code, inst, errors); 926 case 229: 927 return aarch64_ins_sve_index_imm (self, info, code, inst, errors); 928 case 230: 929 return aarch64_ins_sve_index (self, info, code, inst, errors); 930 case 231: 931 case 233: 932 case 250: 933 case 296: 934 case 297: 935 case 298: 936 return aarch64_ins_sve_reglist (self, info, code, inst, errors); 937 case 234: 938 case 235: 939 case 237: 940 case 238: 941 case 239: 942 case 240: 943 case 249: 944 return aarch64_ins_sve_aligned_reglist (self, info, code, inst, errors); 945 case 241: 946 case 242: 947 return aarch64_ins_sve_strided_reglist (self, info, code, inst, errors); 948 case 245: 949 case 247: 950 case 258: 951 return aarch64_ins_sme_za_hv_tiles (self, info, code, inst, errors); 952 case 246: 953 case 248: 954 return aarch64_ins_sme_za_hv_tiles_range (self, info, code, inst, errors); 955 case 255: 956 case 256: 957 case 271: 958 case 272: 959 case 273: 960 case 274: 961 case 275: 962 case 276: 963 case 277: 964 case 278: 965 case 279: 966 case 280: 967 case 281: 968 case 282: 969 case 283: 970 return aarch64_ins_simple_index (self, info, code, inst, errors); 971 case 259: 972 case 260: 973 case 261: 974 case 262: 975 case 263: 976 case 264: 977 case 265: 978 return aarch64_ins_sme_za_array (self, info, code, inst, errors); 979 case 266: 980 return aarch64_ins_sme_addr_ri_u4xvl (self, info, code, inst, errors); 981 case 267: 982 return aarch64_ins_sme_sm_za (self, info, code, inst, errors); 983 case 268: 984 return aarch64_ins_sme_pred_reg_with_index (self, info, code, inst, errors); 985 case 269: 986 return aarch64_ins_plain_shrimm (self, info, code, inst, errors); 987 case 291: 988 case 292: 989 case 293: 990 return aarch64_ins_x0_to_x30 (self, info, code, inst, errors); 991 case 299: 992 case 300: 993 case 301: 994 case 302: 995 return aarch64_ins_rcpc3_addr_opt_offset (self, info, code, inst, errors); 996 case 303: 997 return aarch64_ins_rcpc3_addr_offset (self, info, code, inst, errors); 998 default: assert (0); abort (); 999 } 1000 } 1001