blob: 841f5c0e8700210c04fee3d50aabae0515ea4e5b [file] [log] [blame]
/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
|* *|
|* Assembly Writer Source Fragment *|
|* *|
|* Automatically generated file, do not edit! *|
|* *|
\*===----------------------------------------------------------------------===*/
/// printInstruction - This method is automatically generated by tablegen
/// from the instruction set description.
void RISCVInstPrinter::printInstruction(const MCInst *MI, uint64_t Address, const MCSubtargetInfo &STI, raw_ostream &O) {
static const char AsmStrs[] = {
/* 0 */ 'c', '.', 's', 'r', 'a', 'i', '6', '4', 9, 0,
/* 10 */ 'c', '.', 's', 'l', 'l', 'i', '6', '4', 9, 0,
/* 20 */ 'c', '.', 's', 'r', 'l', 'i', '6', '4', 9, 0,
/* 30 */ 'l', 'l', 'a', 9, 0,
/* 35 */ 's', 'f', 'e', 'n', 'c', 'e', '.', 'v', 'm', 'a', 9, 0,
/* 47 */ 's', 'r', 'a', 9, 0,
/* 52 */ 'l', 'b', 9, 0,
/* 56 */ 's', 'b', 9, 0,
/* 60 */ 'c', '.', 's', 'u', 'b', 9, 0,
/* 67 */ 'a', 'u', 'i', 'p', 'c', 9, 0,
/* 74 */ 'c', 's', 'r', 'r', 'c', 9, 0,
/* 81 */ 'f', 's', 'u', 'b', '.', 'd', 9, 0,
/* 89 */ 'f', 'm', 's', 'u', 'b', '.', 'd', 9, 0,
/* 98 */ 'f', 'n', 'm', 's', 'u', 'b', '.', 'd', 9, 0,
/* 108 */ 's', 'c', '.', 'd', 9, 0,
/* 114 */ 'f', 'a', 'd', 'd', '.', 'd', 9, 0,
/* 122 */ 'f', 'm', 'a', 'd', 'd', '.', 'd', 9, 0,
/* 131 */ 'f', 'n', 'm', 'a', 'd', 'd', '.', 'd', 9, 0,
/* 141 */ 'a', 'm', 'o', 'a', 'd', 'd', '.', 'd', 9, 0,
/* 151 */ 'a', 'm', 'o', 'a', 'n', 'd', '.', 'd', 9, 0,
/* 161 */ 'f', 'l', 'e', '.', 'd', 9, 0,
/* 168 */ 'f', 's', 'g', 'n', 'j', '.', 'd', 9, 0,
/* 177 */ 'f', 'c', 'v', 't', '.', 'l', '.', 'd', 9, 0,
/* 187 */ 'f', 'm', 'u', 'l', '.', 'd', 9, 0,
/* 195 */ 'f', 'm', 'i', 'n', '.', 'd', 9, 0,
/* 203 */ 'a', 'm', 'o', 'm', 'i', 'n', '.', 'd', 9, 0,
/* 213 */ 'f', 's', 'g', 'n', 'j', 'n', '.', 'd', 9, 0,
/* 223 */ 'a', 'm', 'o', 's', 'w', 'a', 'p', '.', 'd', 9, 0,
/* 234 */ 'f', 'e', 'q', '.', 'd', 9, 0,
/* 241 */ 'l', 'r', '.', 'd', 9, 0,
/* 247 */ 'a', 'm', 'o', 'o', 'r', '.', 'd', 9, 0,
/* 256 */ 'a', 'm', 'o', 'x', 'o', 'r', '.', 'd', 9, 0,
/* 266 */ 'f', 'c', 'v', 't', '.', 's', '.', 'd', 9, 0,
/* 276 */ 'f', 'c', 'l', 'a', 's', 's', '.', 'd', 9, 0,
/* 286 */ 'f', 'l', 't', '.', 'd', 9, 0,
/* 293 */ 'f', 's', 'q', 'r', 't', '.', 'd', 9, 0,
/* 302 */ 'f', 'c', 'v', 't', '.', 'l', 'u', '.', 'd', 9, 0,
/* 313 */ 'a', 'm', 'o', 'm', 'i', 'n', 'u', '.', 'd', 9, 0,
/* 324 */ 'f', 'c', 'v', 't', '.', 'w', 'u', '.', 'd', 9, 0,
/* 335 */ 'a', 'm', 'o', 'm', 'a', 'x', 'u', '.', 'd', 9, 0,
/* 346 */ 'f', 'd', 'i', 'v', '.', 'd', 9, 0,
/* 354 */ 'f', 'c', 'v', 't', '.', 'w', '.', 'd', 9, 0,
/* 364 */ 'f', 'm', 'v', '.', 'x', '.', 'd', 9, 0,
/* 373 */ 'f', 'm', 'a', 'x', '.', 'd', 9, 0,
/* 381 */ 'a', 'm', 'o', 'm', 'a', 'x', '.', 'd', 9, 0,
/* 391 */ 'f', 's', 'g', 'n', 'j', 'x', '.', 'd', 9, 0,
/* 401 */ 'c', '.', 'a', 'd', 'd', 9, 0,
/* 408 */ 'l', 'a', '.', 't', 'l', 's', '.', 'g', 'd', 9, 0,
/* 419 */ 'c', '.', 'l', 'd', 9, 0,
/* 425 */ 'c', '.', 'f', 'l', 'd', 9, 0,
/* 432 */ 'c', '.', 'a', 'n', 'd', 9, 0,
/* 439 */ 'c', '.', 's', 'd', 9, 0,
/* 445 */ 'c', '.', 'f', 's', 'd', 9, 0,
/* 452 */ 'f', 'e', 'n', 'c', 'e', 9, 0,
/* 459 */ 'b', 'g', 'e', 9, 0,
/* 464 */ 'l', 'a', '.', 't', 'l', 's', '.', 'i', 'e', 9, 0,
/* 475 */ 'b', 'n', 'e', 9, 0,
/* 480 */ 'm', 'u', 'l', 'h', 9, 0,
/* 486 */ 's', 'h', 9, 0,
/* 490 */ 'f', 'e', 'n', 'c', 'e', '.', 'i', 9, 0,
/* 499 */ 'c', '.', 's', 'r', 'a', 'i', 9, 0,
/* 507 */ 'c', 's', 'r', 'r', 'c', 'i', 9, 0,
/* 515 */ 'c', '.', 'a', 'd', 'd', 'i', 9, 0,
/* 523 */ 'c', '.', 'a', 'n', 'd', 'i', 9, 0,
/* 531 */ 'w', 'f', 'i', 9, 0,
/* 536 */ 'c', '.', 'l', 'i', 9, 0,
/* 542 */ 'c', '.', 's', 'l', 'l', 'i', 9, 0,
/* 550 */ 'c', '.', 's', 'r', 'l', 'i', 9, 0,
/* 558 */ 'x', 'o', 'r', 'i', 9, 0,
/* 564 */ 'c', 's', 'r', 'r', 's', 'i', 9, 0,
/* 572 */ 's', 'l', 't', 'i', 9, 0,
/* 578 */ 'c', '.', 'l', 'u', 'i', 9, 0,
/* 585 */ 'c', 's', 'r', 'r', 'w', 'i', 9, 0,
/* 593 */ 'c', '.', 'j', 9, 0,
/* 598 */ 'c', '.', 'e', 'b', 'r', 'e', 'a', 'k', 9, 0,
/* 608 */ 'f', 'c', 'v', 't', '.', 'd', '.', 'l', 9, 0,
/* 618 */ 'f', 'c', 'v', 't', '.', 's', '.', 'l', 9, 0,
/* 628 */ 'c', '.', 'j', 'a', 'l', 9, 0,
/* 635 */ 't', 'a', 'i', 'l', 9, 0,
/* 641 */ 'e', 'c', 'a', 'l', 'l', 9, 0,
/* 648 */ 's', 'l', 'l', 9, 0,
/* 653 */ 's', 'c', '.', 'd', '.', 'r', 'l', 9, 0,
/* 662 */ 'a', 'm', 'o', 'a', 'd', 'd', '.', 'd', '.', 'r', 'l', 9, 0,
/* 675 */ 'a', 'm', 'o', 'a', 'n', 'd', '.', 'd', '.', 'r', 'l', 9, 0,
/* 688 */ 'a', 'm', 'o', 'm', 'i', 'n', '.', 'd', '.', 'r', 'l', 9, 0,
/* 701 */ 'a', 'm', 'o', 's', 'w', 'a', 'p', '.', 'd', '.', 'r', 'l', 9, 0,
/* 715 */ 'l', 'r', '.', 'd', '.', 'r', 'l', 9, 0,
/* 724 */ 'a', 'm', 'o', 'o', 'r', '.', 'd', '.', 'r', 'l', 9, 0,
/* 736 */ 'a', 'm', 'o', 'x', 'o', 'r', '.', 'd', '.', 'r', 'l', 9, 0,
/* 749 */ 'a', 'm', 'o', 'm', 'i', 'n', 'u', '.', 'd', '.', 'r', 'l', 9, 0,
/* 763 */ 'a', 'm', 'o', 'm', 'a', 'x', 'u', '.', 'd', '.', 'r', 'l', 9, 0,
/* 777 */ 'a', 'm', 'o', 'm', 'a', 'x', '.', 'd', '.', 'r', 'l', 9, 0,
/* 790 */ 's', 'c', '.', 'w', '.', 'r', 'l', 9, 0,
/* 799 */ 'a', 'm', 'o', 'a', 'd', 'd', '.', 'w', '.', 'r', 'l', 9, 0,
/* 812 */ 'a', 'm', 'o', 'a', 'n', 'd', '.', 'w', '.', 'r', 'l', 9, 0,
/* 825 */ 'a', 'm', 'o', 'm', 'i', 'n', '.', 'w', '.', 'r', 'l', 9, 0,
/* 838 */ 'a', 'm', 'o', 's', 'w', 'a', 'p', '.', 'w', '.', 'r', 'l', 9, 0,
/* 852 */ 'l', 'r', '.', 'w', '.', 'r', 'l', 9, 0,
/* 861 */ 'a', 'm', 'o', 'o', 'r', '.', 'w', '.', 'r', 'l', 9, 0,
/* 873 */ 'a', 'm', 'o', 'x', 'o', 'r', '.', 'w', '.', 'r', 'l', 9, 0,
/* 886 */ 'a', 'm', 'o', 'm', 'i', 'n', 'u', '.', 'w', '.', 'r', 'l', 9, 0,
/* 900 */ 'a', 'm', 'o', 'm', 'a', 'x', 'u', '.', 'w', '.', 'r', 'l', 9, 0,
/* 914 */ 'a', 'm', 'o', 'm', 'a', 'x', '.', 'w', '.', 'r', 'l', 9, 0,
/* 927 */ 's', 'c', '.', 'd', '.', 'a', 'q', 'r', 'l', 9, 0,
/* 938 */ 'a', 'm', 'o', 'a', 'd', 'd', '.', 'd', '.', 'a', 'q', 'r', 'l', 9, 0,
/* 953 */ 'a', 'm', 'o', 'a', 'n', 'd', '.', 'd', '.', 'a', 'q', 'r', 'l', 9, 0,
/* 968 */ 'a', 'm', 'o', 'm', 'i', 'n', '.', 'd', '.', 'a', 'q', 'r', 'l', 9, 0,
/* 983 */ 'a', 'm', 'o', 's', 'w', 'a', 'p', '.', 'd', '.', 'a', 'q', 'r', 'l', 9, 0,
/* 999 */ 'l', 'r', '.', 'd', '.', 'a', 'q', 'r', 'l', 9, 0,
/* 1010 */ 'a', 'm', 'o', 'o', 'r', '.', 'd', '.', 'a', 'q', 'r', 'l', 9, 0,
/* 1024 */ 'a', 'm', 'o', 'x', 'o', 'r', '.', 'd', '.', 'a', 'q', 'r', 'l', 9, 0,
/* 1039 */ 'a', 'm', 'o', 'm', 'i', 'n', 'u', '.', 'd', '.', 'a', 'q', 'r', 'l', 9, 0,
/* 1055 */ 'a', 'm', 'o', 'm', 'a', 'x', 'u', '.', 'd', '.', 'a', 'q', 'r', 'l', 9, 0,
/* 1071 */ 'a', 'm', 'o', 'm', 'a', 'x', '.', 'd', '.', 'a', 'q', 'r', 'l', 9, 0,
/* 1086 */ 's', 'c', '.', 'w', '.', 'a', 'q', 'r', 'l', 9, 0,
/* 1097 */ 'a', 'm', 'o', 'a', 'd', 'd', '.', 'w', '.', 'a', 'q', 'r', 'l', 9, 0,
/* 1112 */ 'a', 'm', 'o', 'a', 'n', 'd', '.', 'w', '.', 'a', 'q', 'r', 'l', 9, 0,
/* 1127 */ 'a', 'm', 'o', 'm', 'i', 'n', '.', 'w', '.', 'a', 'q', 'r', 'l', 9, 0,
/* 1142 */ 'a', 'm', 'o', 's', 'w', 'a', 'p', '.', 'w', '.', 'a', 'q', 'r', 'l', 9, 0,
/* 1158 */ 'l', 'r', '.', 'w', '.', 'a', 'q', 'r', 'l', 9, 0,
/* 1169 */ 'a', 'm', 'o', 'o', 'r', '.', 'w', '.', 'a', 'q', 'r', 'l', 9, 0,
/* 1183 */ 'a', 'm', 'o', 'x', 'o', 'r', '.', 'w', '.', 'a', 'q', 'r', 'l', 9, 0,
/* 1198 */ 'a', 'm', 'o', 'm', 'i', 'n', 'u', '.', 'w', '.', 'a', 'q', 'r', 'l', 9, 0,
/* 1214 */ 'a', 'm', 'o', 'm', 'a', 'x', 'u', '.', 'w', '.', 'a', 'q', 'r', 'l', 9, 0,
/* 1230 */ 'a', 'm', 'o', 'm', 'a', 'x', '.', 'w', '.', 'a', 'q', 'r', 'l', 9, 0,
/* 1245 */ 's', 'r', 'l', 9, 0,
/* 1250 */ 'm', 'u', 'l', 9, 0,
/* 1255 */ 'r', 'e', 'm', 9, 0,
/* 1260 */ 'c', '.', 'a', 'd', 'd', 'i', '4', 's', 'p', 'n', 9, 0,
/* 1272 */ 'f', 'e', 'n', 'c', 'e', '.', 't', 's', 'o', 9, 0,
/* 1283 */ 'c', '.', 'u', 'n', 'i', 'm', 'p', 9, 0,
/* 1292 */ 'c', '.', 'n', 'o', 'p', 9, 0,
/* 1299 */ 'c', '.', 'a', 'd', 'd', 'i', '1', '6', 's', 'p', 9, 0,
/* 1311 */ 'c', '.', 'l', 'd', 's', 'p', 9, 0,
/* 1319 */ 'c', '.', 'f', 'l', 'd', 's', 'p', 9, 0,
/* 1328 */ 'c', '.', 's', 'd', 's', 'p', 9, 0,
/* 1336 */ 'c', '.', 'f', 's', 'd', 's', 'p', 9, 0,
/* 1345 */ 'c', '.', 'l', 'w', 's', 'p', 9, 0,
/* 1353 */ 'c', '.', 'f', 'l', 'w', 's', 'p', 9, 0,
/* 1362 */ 'c', '.', 's', 'w', 's', 'p', 9, 0,
/* 1370 */ 'c', '.', 'f', 's', 'w', 's', 'p', 9, 0,
/* 1379 */ 's', 'c', '.', 'd', '.', 'a', 'q', 9, 0,
/* 1388 */ 'a', 'm', 'o', 'a', 'd', 'd', '.', 'd', '.', 'a', 'q', 9, 0,
/* 1401 */ 'a', 'm', 'o', 'a', 'n', 'd', '.', 'd', '.', 'a', 'q', 9, 0,
/* 1414 */ 'a', 'm', 'o', 'm', 'i', 'n', '.', 'd', '.', 'a', 'q', 9, 0,
/* 1427 */ 'a', 'm', 'o', 's', 'w', 'a', 'p', '.', 'd', '.', 'a', 'q', 9, 0,
/* 1441 */ 'l', 'r', '.', 'd', '.', 'a', 'q', 9, 0,
/* 1450 */ 'a', 'm', 'o', 'o', 'r', '.', 'd', '.', 'a', 'q', 9, 0,
/* 1462 */ 'a', 'm', 'o', 'x', 'o', 'r', '.', 'd', '.', 'a', 'q', 9, 0,
/* 1475 */ 'a', 'm', 'o', 'm', 'i', 'n', 'u', '.', 'd', '.', 'a', 'q', 9, 0,
/* 1489 */ 'a', 'm', 'o', 'm', 'a', 'x', 'u', '.', 'd', '.', 'a', 'q', 9, 0,
/* 1503 */ 'a', 'm', 'o', 'm', 'a', 'x', '.', 'd', '.', 'a', 'q', 9, 0,
/* 1516 */ 's', 'c', '.', 'w', '.', 'a', 'q', 9, 0,
/* 1525 */ 'a', 'm', 'o', 'a', 'd', 'd', '.', 'w', '.', 'a', 'q', 9, 0,
/* 1538 */ 'a', 'm', 'o', 'a', 'n', 'd', '.', 'w', '.', 'a', 'q', 9, 0,
/* 1551 */ 'a', 'm', 'o', 'm', 'i', 'n', '.', 'w', '.', 'a', 'q', 9, 0,
/* 1564 */ 'a', 'm', 'o', 's', 'w', 'a', 'p', '.', 'w', '.', 'a', 'q', 9, 0,
/* 1578 */ 'l', 'r', '.', 'w', '.', 'a', 'q', 9, 0,
/* 1587 */ 'a', 'm', 'o', 'o', 'r', '.', 'w', '.', 'a', 'q', 9, 0,
/* 1599 */ 'a', 'm', 'o', 'x', 'o', 'r', '.', 'w', '.', 'a', 'q', 9, 0,
/* 1612 */ 'a', 'm', 'o', 'm', 'i', 'n', 'u', '.', 'w', '.', 'a', 'q', 9, 0,
/* 1626 */ 'a', 'm', 'o', 'm', 'a', 'x', 'u', '.', 'w', '.', 'a', 'q', 9, 0,
/* 1640 */ 'a', 'm', 'o', 'm', 'a', 'x', '.', 'w', '.', 'a', 'q', 9, 0,
/* 1653 */ 'b', 'e', 'q', 9, 0,
/* 1658 */ 'c', '.', 'j', 'r', 9, 0,
/* 1664 */ 'c', '.', 'j', 'a', 'l', 'r', 9, 0,
/* 1672 */ 'c', '.', 'o', 'r', 9, 0,
/* 1678 */ 'c', '.', 'x', 'o', 'r', 9, 0,
/* 1685 */ 'f', 's', 'u', 'b', '.', 's', 9, 0,
/* 1693 */ 'f', 'm', 's', 'u', 'b', '.', 's', 9, 0,
/* 1702 */ 'f', 'n', 'm', 's', 'u', 'b', '.', 's', 9, 0,
/* 1712 */ 'f', 'c', 'v', 't', '.', 'd', '.', 's', 9, 0,
/* 1722 */ 'f', 'a', 'd', 'd', '.', 's', 9, 0,
/* 1730 */ 'f', 'm', 'a', 'd', 'd', '.', 's', 9, 0,
/* 1739 */ 'f', 'n', 'm', 'a', 'd', 'd', '.', 's', 9, 0,
/* 1749 */ 'f', 'l', 'e', '.', 's', 9, 0,
/* 1756 */ 'f', 's', 'g', 'n', 'j', '.', 's', 9, 0,
/* 1765 */ 'f', 'c', 'v', 't', '.', 'l', '.', 's', 9, 0,
/* 1775 */ 'f', 'm', 'u', 'l', '.', 's', 9, 0,
/* 1783 */ 'f', 'm', 'i', 'n', '.', 's', 9, 0,
/* 1791 */ 'f', 's', 'g', 'n', 'j', 'n', '.', 's', 9, 0,
/* 1801 */ 'f', 'e', 'q', '.', 's', 9, 0,
/* 1808 */ 'f', 'c', 'l', 'a', 's', 's', '.', 's', 9, 0,
/* 1818 */ 'f', 'l', 't', '.', 's', 9, 0,
/* 1825 */ 'f', 's', 'q', 'r', 't', '.', 's', 9, 0,
/* 1834 */ 'f', 'c', 'v', 't', '.', 'l', 'u', '.', 's', 9, 0,
/* 1845 */ 'f', 'c', 'v', 't', '.', 'w', 'u', '.', 's', 9, 0,
/* 1856 */ 'f', 'd', 'i', 'v', '.', 's', 9, 0,
/* 1864 */ 'f', 'c', 'v', 't', '.', 'w', '.', 's', 9, 0,
/* 1874 */ 'f', 'm', 'a', 'x', '.', 's', 9, 0,
/* 1882 */ 'f', 's', 'g', 'n', 'j', 'x', '.', 's', 9, 0,
/* 1892 */ 'c', 's', 'r', 'r', 's', 9, 0,
/* 1899 */ 'm', 'r', 'e', 't', 9, 0,
/* 1905 */ 's', 'r', 'e', 't', 9, 0,
/* 1911 */ 'u', 'r', 'e', 't', 9, 0,
/* 1917 */ 'b', 'l', 't', 9, 0,
/* 1922 */ 's', 'l', 't', 9, 0,
/* 1927 */ 'l', 'b', 'u', 9, 0,
/* 1932 */ 'b', 'g', 'e', 'u', 9, 0,
/* 1938 */ 'm', 'u', 'l', 'h', 'u', 9, 0,
/* 1945 */ 's', 'l', 't', 'i', 'u', 9, 0,
/* 1952 */ 'f', 'c', 'v', 't', '.', 'd', '.', 'l', 'u', 9, 0,
/* 1963 */ 'f', 'c', 'v', 't', '.', 's', '.', 'l', 'u', 9, 0,
/* 1974 */ 'r', 'e', 'm', 'u', 9, 0,
/* 1980 */ 'm', 'u', 'l', 'h', 's', 'u', 9, 0,
/* 1988 */ 'b', 'l', 't', 'u', 9, 0,
/* 1994 */ 's', 'l', 't', 'u', 9, 0,
/* 2000 */ 'd', 'i', 'v', 'u', 9, 0,
/* 2006 */ 'f', 'c', 'v', 't', '.', 'd', '.', 'w', 'u', 9, 0,
/* 2017 */ 'f', 'c', 'v', 't', '.', 's', '.', 'w', 'u', 9, 0,
/* 2028 */ 'l', 'w', 'u', 9, 0,
/* 2033 */ 'd', 'i', 'v', 9, 0,
/* 2038 */ 'c', '.', 'm', 'v', 9, 0,
/* 2044 */ 's', 'c', '.', 'w', 9, 0,
/* 2050 */ 'f', 'c', 'v', 't', '.', 'd', '.', 'w', 9, 0,
/* 2060 */ 'a', 'm', 'o', 'a', 'd', 'd', '.', 'w', 9, 0,
/* 2070 */ 'a', 'm', 'o', 'a', 'n', 'd', '.', 'w', 9, 0,
/* 2080 */ 'a', 'm', 'o', 'm', 'i', 'n', '.', 'w', 9, 0,
/* 2090 */ 'a', 'm', 'o', 's', 'w', 'a', 'p', '.', 'w', 9, 0,
/* 2101 */ 'l', 'r', '.', 'w', 9, 0,
/* 2107 */ 'a', 'm', 'o', 'o', 'r', '.', 'w', 9, 0,
/* 2116 */ 'a', 'm', 'o', 'x', 'o', 'r', '.', 'w', 9, 0,
/* 2126 */ 'f', 'c', 'v', 't', '.', 's', '.', 'w', 9, 0,
/* 2136 */ 'a', 'm', 'o', 'm', 'i', 'n', 'u', '.', 'w', 9, 0,
/* 2147 */ 'a', 'm', 'o', 'm', 'a', 'x', 'u', '.', 'w', 9, 0,
/* 2158 */ 'f', 'm', 'v', '.', 'x', '.', 'w', 9, 0,
/* 2167 */ 'a', 'm', 'o', 'm', 'a', 'x', '.', 'w', 9, 0,
/* 2177 */ 's', 'r', 'a', 'w', 9, 0,
/* 2183 */ 'c', '.', 's', 'u', 'b', 'w', 9, 0,
/* 2191 */ 'c', '.', 'a', 'd', 'd', 'w', 9, 0,
/* 2199 */ 's', 'r', 'a', 'i', 'w', 9, 0,
/* 2206 */ 'c', '.', 'a', 'd', 'd', 'i', 'w', 9, 0,
/* 2215 */ 's', 'l', 'l', 'i', 'w', 9, 0,
/* 2222 */ 's', 'r', 'l', 'i', 'w', 9, 0,
/* 2229 */ 'c', '.', 'l', 'w', 9, 0,
/* 2235 */ 'c', '.', 'f', 'l', 'w', 9, 0,
/* 2242 */ 's', 'l', 'l', 'w', 9, 0,
/* 2248 */ 's', 'r', 'l', 'w', 9, 0,
/* 2254 */ 'm', 'u', 'l', 'w', 9, 0,
/* 2260 */ 'r', 'e', 'm', 'w', 9, 0,
/* 2266 */ 'c', 's', 'r', 'r', 'w', 9, 0,
/* 2273 */ 'c', '.', 's', 'w', 9, 0,
/* 2279 */ 'c', '.', 'f', 's', 'w', 9, 0,
/* 2286 */ 'r', 'e', 'm', 'u', 'w', 9, 0,
/* 2293 */ 'd', 'i', 'v', 'u', 'w', 9, 0,
/* 2300 */ 'd', 'i', 'v', 'w', 9, 0,
/* 2306 */ 'f', 'm', 'v', '.', 'd', '.', 'x', 9, 0,
/* 2315 */ 'f', 'm', 'v', '.', 'w', '.', 'x', 9, 0,
/* 2324 */ 'c', '.', 'b', 'n', 'e', 'z', 9, 0,
/* 2332 */ 'c', '.', 'b', 'e', 'q', 'z', 9, 0,
/* 2340 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', 32, 'P', 'a', 't', 'c', 'h', 'a', 'b', 'l', 'e', 32, 'R', 'E', 'T', '.', 0,
/* 2371 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'T', 'y', 'p', 'e', 'd', 32, 'E', 'v', 'e', 'n', 't', 32, 'L', 'o', 'g', '.', 0,
/* 2395 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'C', 'u', 's', 't', 'o', 'm', 32, 'E', 'v', 'e', 'n', 't', 32, 'L', 'o', 'g', '.', 0,
/* 2420 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', 32, 'E', 'n', 't', 'e', 'r', '.', 0,
/* 2443 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'T', 'a', 'i', 'l', 32, 'C', 'a', 'l', 'l', 32, 'E', 'x', 'i', 't', '.', 0,
/* 2466 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', 32, 'E', 'x', 'i', 't', '.', 0,
/* 2488 */ 'L', 'I', 'F', 'E', 'T', 'I', 'M', 'E', '_', 'E', 'N', 'D', 0,
/* 2501 */ 'B', 'U', 'N', 'D', 'L', 'E', 0,
/* 2508 */ 'D', 'B', 'G', '_', 'V', 'A', 'L', 'U', 'E', 0,
/* 2518 */ 'D', 'B', 'G', '_', 'L', 'A', 'B', 'E', 'L', 0,
/* 2528 */ 'L', 'I', 'F', 'E', 'T', 'I', 'M', 'E', '_', 'S', 'T', 'A', 'R', 'T', 0,
/* 2543 */ '#', 32, 'F', 'E', 'n', 't', 'r', 'y', 32, 'c', 'a', 'l', 'l', 0,
};
static const uint16_t OpInfo0[] = {
0U, // PHI
0U, // INLINEASM
0U, // INLINEASM_BR
0U, // CFI_INSTRUCTION
0U, // EH_LABEL
0U, // GC_LABEL
0U, // ANNOTATION_LABEL
0U, // KILL
0U, // EXTRACT_SUBREG
0U, // INSERT_SUBREG
0U, // IMPLICIT_DEF
0U, // SUBREG_TO_REG
0U, // COPY_TO_REGCLASS
2509U, // DBG_VALUE
2519U, // DBG_LABEL
0U, // REG_SEQUENCE
0U, // COPY
2502U, // BUNDLE
2529U, // LIFETIME_START
2489U, // LIFETIME_END
0U, // STACKMAP
2544U, // FENTRY_CALL
0U, // PATCHPOINT
0U, // LOAD_STACK_GUARD
0U, // STATEPOINT
0U, // LOCAL_ESCAPE
0U, // FAULTING_OP
0U, // PATCHABLE_OP
2421U, // PATCHABLE_FUNCTION_ENTER
2341U, // PATCHABLE_RET
2467U, // PATCHABLE_FUNCTION_EXIT
2444U, // PATCHABLE_TAIL_CALL
2396U, // PATCHABLE_EVENT_CALL
2372U, // PATCHABLE_TYPED_EVENT_CALL
0U, // ICALL_BRANCH_FUNNEL
0U, // G_ADD
0U, // G_SUB
0U, // G_MUL
0U, // G_SDIV
0U, // G_UDIV
0U, // G_SREM
0U, // G_UREM
0U, // G_AND
0U, // G_OR
0U, // G_XOR
0U, // G_IMPLICIT_DEF
0U, // G_PHI
0U, // G_FRAME_INDEX
0U, // G_GLOBAL_VALUE
0U, // G_EXTRACT
0U, // G_UNMERGE_VALUES
0U, // G_INSERT
0U, // G_MERGE_VALUES
0U, // G_BUILD_VECTOR
0U, // G_BUILD_VECTOR_TRUNC
0U, // G_CONCAT_VECTORS
0U, // G_PTRTOINT
0U, // G_INTTOPTR
0U, // G_BITCAST
0U, // G_INTRINSIC_TRUNC
0U, // G_INTRINSIC_ROUND
0U, // G_READCYCLECOUNTER
0U, // G_LOAD
0U, // G_SEXTLOAD
0U, // G_ZEXTLOAD
0U, // G_INDEXED_LOAD
0U, // G_INDEXED_SEXTLOAD
0U, // G_INDEXED_ZEXTLOAD
0U, // G_STORE
0U, // G_INDEXED_STORE
0U, // G_ATOMIC_CMPXCHG_WITH_SUCCESS
0U, // G_ATOMIC_CMPXCHG
0U, // G_ATOMICRMW_XCHG
0U, // G_ATOMICRMW_ADD
0U, // G_ATOMICRMW_SUB
0U, // G_ATOMICRMW_AND
0U, // G_ATOMICRMW_NAND
0U, // G_ATOMICRMW_OR
0U, // G_ATOMICRMW_XOR
0U, // G_ATOMICRMW_MAX
0U, // G_ATOMICRMW_MIN
0U, // G_ATOMICRMW_UMAX
0U, // G_ATOMICRMW_UMIN
0U, // G_ATOMICRMW_FADD
0U, // G_ATOMICRMW_FSUB
0U, // G_FENCE
0U, // G_BRCOND
0U, // G_BRINDIRECT
0U, // G_INTRINSIC
0U, // G_INTRINSIC_W_SIDE_EFFECTS
0U, // G_ANYEXT
0U, // G_TRUNC
0U, // G_CONSTANT
0U, // G_FCONSTANT
0U, // G_VASTART
0U, // G_VAARG
0U, // G_SEXT
0U, // G_SEXT_INREG
0U, // G_ZEXT
0U, // G_SHL
0U, // G_LSHR
0U, // G_ASHR
0U, // G_ICMP
0U, // G_FCMP
0U, // G_SELECT
0U, // G_UADDO
0U, // G_UADDE
0U, // G_USUBO
0U, // G_USUBE
0U, // G_SADDO
0U, // G_SADDE
0U, // G_SSUBO
0U, // G_SSUBE
0U, // G_UMULO
0U, // G_SMULO
0U, // G_UMULH
0U, // G_SMULH
0U, // G_FADD
0U, // G_FSUB
0U, // G_FMUL
0U, // G_FMA
0U, // G_FMAD
0U, // G_FDIV
0U, // G_FREM
0U, // G_FPOW
0U, // G_FEXP
0U, // G_FEXP2
0U, // G_FLOG
0U, // G_FLOG2
0U, // G_FLOG10
0U, // G_FNEG
0U, // G_FPEXT
0U, // G_FPTRUNC
0U, // G_FPTOSI
0U, // G_FPTOUI
0U, // G_SITOFP
0U, // G_UITOFP
0U, // G_FABS
0U, // G_FCOPYSIGN
0U, // G_FCANONICALIZE
0U, // G_FMINNUM
0U, // G_FMAXNUM
0U, // G_FMINNUM_IEEE
0U, // G_FMAXNUM_IEEE
0U, // G_FMINIMUM
0U, // G_FMAXIMUM
0U, // G_PTR_ADD
0U, // G_PTR_MASK
0U, // G_SMIN
0U, // G_SMAX
0U, // G_UMIN
0U, // G_UMAX
0U, // G_BR
0U, // G_BRJT
0U, // G_INSERT_VECTOR_ELT
0U, // G_EXTRACT_VECTOR_ELT
0U, // G_SHUFFLE_VECTOR
0U, // G_CTTZ
0U, // G_CTTZ_ZERO_UNDEF
0U, // G_CTLZ
0U, // G_CTLZ_ZERO_UNDEF
0U, // G_CTPOP
0U, // G_BSWAP
0U, // G_BITREVERSE
0U, // G_FCEIL
0U, // G_FCOS
0U, // G_FSIN
0U, // G_FSQRT
0U, // G_FFLOOR
0U, // G_FRINT
0U, // G_FNEARBYINT
0U, // G_ADDRSPACE_CAST
0U, // G_BLOCK_ADDR
0U, // G_JUMP_TABLE
0U, // G_DYN_STACKALLOC
0U, // G_READ_REGISTER
0U, // G_WRITE_REGISTER
9U, // ADJCALLSTACKDOWN
9U, // ADJCALLSTACKUP
9U, // BuildPairF64Pseudo
4500U, // PseudoAddTPRel
9U, // PseudoAtomicLoadNand32
9U, // PseudoAtomicLoadNand64
9U, // PseudoBR
9U, // PseudoBRIND
21123U, // PseudoCALL
9U, // PseudoCALLIndirect
4739U, // PseudoCALLReg
9U, // PseudoCmpXchg32
9U, // PseudoCmpXchg64
37292U, // PseudoFLD
39102U, // PseudoFLW
37312U, // PseudoFSD
39146U, // PseudoFSW
4128U, // PseudoLA
4505U, // PseudoLA_TLS_GD
4561U, // PseudoLA_TLS_IE
4149U, // PseudoLB
6024U, // PseudoLBU
4518U, // PseudoLD
4579U, // PseudoLH
6037U, // PseudoLHU
4635U, // PseudoLI
4127U, // PseudoLLA
6328U, // PseudoLW
6125U, // PseudoLWU
9U, // PseudoMaskedAtomicLoadAdd32
9U, // PseudoMaskedAtomicLoadMax32
9U, // PseudoMaskedAtomicLoadMin32
9U, // PseudoMaskedAtomicLoadNand32
9U, // PseudoMaskedAtomicLoadSub32
9U, // PseudoMaskedAtomicLoadUMax32
9U, // PseudoMaskedAtomicLoadUMin32
9U, // PseudoMaskedAtomicSwap32
9U, // PseudoMaskedCmpXchg32
9U, // PseudoRET
36921U, // PseudoSB
37306U, // PseudoSD
37351U, // PseudoSH
39140U, // PseudoSW
21116U, // PseudoTAIL
9U, // PseudoTAILIndirect
9U, // ReadCycleWide
9U, // Select_FPR32_Using_CC_GPR
9U, // Select_FPR64_Using_CC_GPR
9U, // Select_GPR_Using_CC_GPR
9U, // SplitF64Pseudo
4500U, // ADD
4614U, // ADDI
6305U, // ADDIW
6290U, // ADDW
37006U, // AMOADD_D
38253U, // AMOADD_D_AQ
37803U, // AMOADD_D_AQ_RL
37527U, // AMOADD_D_RL
38925U, // AMOADD_W
38390U, // AMOADD_W_AQ
37962U, // AMOADD_W_AQ_RL
37664U, // AMOADD_W_RL
37016U, // AMOAND_D
38266U, // AMOAND_D_AQ
37818U, // AMOAND_D_AQ_RL
37540U, // AMOAND_D_RL
38935U, // AMOAND_W
38403U, // AMOAND_W_AQ
37977U, // AMOAND_W_AQ_RL
37677U, // AMOAND_W_RL
37200U, // AMOMAXU_D
38354U, // AMOMAXU_D_AQ
37920U, // AMOMAXU_D_AQ_RL
37628U, // AMOMAXU_D_RL
39012U, // AMOMAXU_W
38491U, // AMOMAXU_W_AQ
38079U, // AMOMAXU_W_AQ_RL
37765U, // AMOMAXU_W_RL
37246U, // AMOMAX_D
38368U, // AMOMAX_D_AQ
37936U, // AMOMAX_D_AQ_RL
37642U, // AMOMAX_D_RL
39032U, // AMOMAX_W
38505U, // AMOMAX_W_AQ
38095U, // AMOMAX_W_AQ_RL
37779U, // AMOMAX_W_RL
37178U, // AMOMINU_D
38340U, // AMOMINU_D_AQ
37904U, // AMOMINU_D_AQ_RL
37614U, // AMOMINU_D_RL
39001U, // AMOMINU_W
38477U, // AMOMINU_W_AQ
38063U, // AMOMINU_W_AQ_RL
37751U, // AMOMINU_W_RL
37068U, // AMOMIN_D
38279U, // AMOMIN_D_AQ
37833U, // AMOMIN_D_AQ_RL
37553U, // AMOMIN_D_RL
38945U, // AMOMIN_W
38416U, // AMOMIN_W_AQ
37992U, // AMOMIN_W_AQ_RL
37690U, // AMOMIN_W_RL
37112U, // AMOOR_D
38315U, // AMOOR_D_AQ
37875U, // AMOOR_D_AQ_RL
37589U, // AMOOR_D_RL
38972U, // AMOOR_W
38452U, // AMOOR_W_AQ
38034U, // AMOOR_W_AQ_RL
37726U, // AMOOR_W_RL
37088U, // AMOSWAP_D
38292U, // AMOSWAP_D_AQ
37848U, // AMOSWAP_D_AQ_RL
37566U, // AMOSWAP_D_RL
38955U, // AMOSWAP_W
38429U, // AMOSWAP_W_AQ
38007U, // AMOSWAP_W_AQ_RL
37703U, // AMOSWAP_W_RL
37121U, // AMOXOR_D
38327U, // AMOXOR_D_AQ
37889U, // AMOXOR_D_AQ_RL
37601U, // AMOXOR_D_RL
38981U, // AMOXOR_W
38464U, // AMOXOR_W_AQ
38048U, // AMOXOR_W_AQ_RL
37738U, // AMOXOR_W_RL
4531U, // AND
4622U, // ANDI
4164U, // AUIPC
5750U, // BEQ
4556U, // BGE
6029U, // BGEU
6014U, // BLT
6085U, // BLTU
4572U, // BNE
4171U, // CSRRC
4604U, // CSRRCI
5989U, // CSRRS
4661U, // CSRRSI
6363U, // CSRRW
4682U, // CSRRWI
41362U, // C_ADD
41476U, // C_ADDI
42260U, // C_ADDI16SP
5357U, // C_ADDI4SPN
43167U, // C_ADDIW
41476U, // C_ADDI_HINT_IMM_ZERO
41476U, // C_ADDI_HINT_X0
41476U, // C_ADDI_NOP
43152U, // C_ADDW
41362U, // C_ADD_HINT
41393U, // C_AND
41484U, // C_ANDI
6429U, // C_BEQZ
6421U, // C_BNEZ
599U, // C_EBREAK
37290U, // C_FLD
38184U, // C_FLDSP
39100U, // C_FLW
38218U, // C_FLWSP
37310U, // C_FSD
38201U, // C_FSDSP
39144U, // C_FSW
38235U, // C_FSWSP
21074U, // C_J
21109U, // C_JAL
22145U, // C_JALR
22139U, // C_JR
37284U, // C_LD
38176U, // C_LDSP
4633U, // C_LI
4633U, // C_LI_HINT
4675U, // C_LUI
4675U, // C_LUI_HINT
39094U, // C_LW
38210U, // C_LWSP
6135U, // C_MV
6135U, // C_MV_HINT
1293U, // C_NOP
21773U, // C_NOP_HINT
42633U, // C_OR
37304U, // C_SD
38193U, // C_SDSP
41503U, // C_SLLI
24587U, // C_SLLI64_HINT
41503U, // C_SLLI_HINT
41460U, // C_SRAI
24577U, // C_SRAI64_HINT
41511U, // C_SRLI
24597U, // C_SRLI64_HINT
41021U, // C_SUB
43144U, // C_SUBW
39138U, // C_SW
38227U, // C_SWSP
1284U, // C_UNIMP
42639U, // C_XOR
6130U, // DIV
6097U, // DIVU
6390U, // DIVUW
6397U, // DIVW
601U, // EBREAK
642U, // ECALL
4211U, // FADD_D
5819U, // FADD_S
4373U, // FCLASS_D
5905U, // FCLASS_S
4705U, // FCVT_D_L
6049U, // FCVT_D_LU
5809U, // FCVT_D_S
6147U, // FCVT_D_W
6103U, // FCVT_D_WU
4399U, // FCVT_LU_D
5931U, // FCVT_LU_S
4274U, // FCVT_L_D
5862U, // FCVT_L_S
4363U, // FCVT_S_D
4715U, // FCVT_S_L
6060U, // FCVT_S_LU
6223U, // FCVT_S_W
6114U, // FCVT_S_WU
4421U, // FCVT_WU_D
5942U, // FCVT_WU_S
4451U, // FCVT_W_D
5961U, // FCVT_W_S
4443U, // FDIV_D
5953U, // FDIV_S
12741U, // FENCE
491U, // FENCE_I
1273U, // FENCE_TSO
4331U, // FEQ_D
5898U, // FEQ_S
37292U, // FLD
4258U, // FLE_D
5846U, // FLE_S
4383U, // FLT_D
5915U, // FLT_S
39102U, // FLW
4219U, // FMADD_D
5827U, // FMADD_S
4470U, // FMAX_D
5971U, // FMAX_S
4292U, // FMIN_D
5880U, // FMIN_S
4186U, // FMSUB_D
5790U, // FMSUB_S
4284U, // FMUL_D
5872U, // FMUL_S
6403U, // FMV_D_X
6412U, // FMV_W_X
4461U, // FMV_X_D
6255U, // FMV_X_W
4228U, // FNMADD_D
5836U, // FNMADD_S
4195U, // FNMSUB_D
5799U, // FNMSUB_S
37312U, // FSD
4310U, // FSGNJN_D
5888U, // FSGNJN_S
4488U, // FSGNJX_D
5979U, // FSGNJX_S
4265U, // FSGNJ_D
5853U, // FSGNJ_S
4390U, // FSQRT_D
5922U, // FSQRT_S
4178U, // FSUB_D
5782U, // FSUB_S
39146U, // FSW
4727U, // JAL
38531U, // JALR
36917U, // LB
38792U, // LBU
37286U, // LD
37347U, // LH
38805U, // LHU
37106U, // LR_D
38306U, // LR_D_AQ
37864U, // LR_D_AQ_RL
37580U, // LR_D_RL
38966U, // LR_W
38443U, // LR_W_AQ
38023U, // LR_W_AQ_RL
37717U, // LR_W_RL
4677U, // LUI
39096U, // LW
38893U, // LWU
1900U, // MRET
5347U, // MUL
4577U, // MULH
6077U, // MULHSU
6035U, // MULHU
6351U, // MULW
5771U, // OR
4656U, // ORI
5352U, // REM
6071U, // REMU
6383U, // REMUW
6357U, // REMW
36921U, // SB
36973U, // SC_D
38244U, // SC_D_AQ
37792U, // SC_D_AQ_RL
37518U, // SC_D_RL
38909U, // SC_W
38381U, // SC_W_AQ
37951U, // SC_W_AQ_RL
37655U, // SC_W_RL
37306U, // SD
4132U, // SFENCE_VMA
37351U, // SH
4745U, // SLL
4641U, // SLLI
6312U, // SLLIW
6339U, // SLLW
6019U, // SLT
4669U, // SLTI
6042U, // SLTIU
6091U, // SLTU
4144U, // SRA
4598U, // SRAI
6296U, // SRAIW
6274U, // SRAW
1906U, // SRET
5342U, // SRL
4649U, // SRLI
6319U, // SRLIW
6345U, // SRLW
4159U, // SUB
6282U, // SUBW
39140U, // SW
1286U, // UNIMP
1912U, // URET
532U, // WFI
5777U, // XOR
4655U, // XORI
};
static const uint8_t OpInfo1[] = {
0U, // PHI
0U, // INLINEASM
0U, // INLINEASM_BR
0U, // CFI_INSTRUCTION
0U, // EH_LABEL
0U, // GC_LABEL
0U, // ANNOTATION_LABEL
0U, // KILL
0U, // EXTRACT_SUBREG
0U, // INSERT_SUBREG
0U, // IMPLICIT_DEF
0U, // SUBREG_TO_REG
0U, // COPY_TO_REGCLASS
0U, // DBG_VALUE
0U, // DBG_LABEL
0U, // REG_SEQUENCE
0U, // COPY
0U, // BUNDLE
0U, // LIFETIME_START
0U, // LIFETIME_END
0U, // STACKMAP
0U, // FENTRY_CALL
0U, // PATCHPOINT
0U, // LOAD_STACK_GUARD
0U, // STATEPOINT
0U, // LOCAL_ESCAPE
0U, // FAULTING_OP
0U, // PATCHABLE_OP
0U, // PATCHABLE_FUNCTION_ENTER
0U, // PATCHABLE_RET
0U, // PATCHABLE_FUNCTION_EXIT
0U, // PATCHABLE_TAIL_CALL
0U, // PATCHABLE_EVENT_CALL
0U, // PATCHABLE_TYPED_EVENT_CALL
0U, // ICALL_BRANCH_FUNNEL
0U, // G_ADD
0U, // G_SUB
0U, // G_MUL
0U, // G_SDIV
0U, // G_UDIV
0U, // G_SREM
0U, // G_UREM
0U, // G_AND
0U, // G_OR
0U, // G_XOR
0U, // G_IMPLICIT_DEF
0U, // G_PHI
0U, // G_FRAME_INDEX
0U, // G_GLOBAL_VALUE
0U, // G_EXTRACT
0U, // G_UNMERGE_VALUES
0U, // G_INSERT
0U, // G_MERGE_VALUES
0U, // G_BUILD_VECTOR
0U, // G_BUILD_VECTOR_TRUNC
0U, // G_CONCAT_VECTORS
0U, // G_PTRTOINT
0U, // G_INTTOPTR
0U, // G_BITCAST
0U, // G_INTRINSIC_TRUNC
0U, // G_INTRINSIC_ROUND
0U, // G_READCYCLECOUNTER
0U, // G_LOAD
0U, // G_SEXTLOAD
0U, // G_ZEXTLOAD
0U, // G_INDEXED_LOAD
0U, // G_INDEXED_SEXTLOAD
0U, // G_INDEXED_ZEXTLOAD
0U, // G_STORE
0U, // G_INDEXED_STORE
0U, // G_ATOMIC_CMPXCHG_WITH_SUCCESS
0U, // G_ATOMIC_CMPXCHG
0U, // G_ATOMICRMW_XCHG
0U, // G_ATOMICRMW_ADD
0U, // G_ATOMICRMW_SUB
0U, // G_ATOMICRMW_AND
0U, // G_ATOMICRMW_NAND
0U, // G_ATOMICRMW_OR
0U, // G_ATOMICRMW_XOR
0U, // G_ATOMICRMW_MAX
0U, // G_ATOMICRMW_MIN
0U, // G_ATOMICRMW_UMAX
0U, // G_ATOMICRMW_UMIN
0U, // G_ATOMICRMW_FADD
0U, // G_ATOMICRMW_FSUB
0U, // G_FENCE
0U, // G_BRCOND
0U, // G_BRINDIRECT
0U, // G_INTRINSIC
0U, // G_INTRINSIC_W_SIDE_EFFECTS
0U, // G_ANYEXT
0U, // G_TRUNC
0U, // G_CONSTANT
0U, // G_FCONSTANT
0U, // G_VASTART
0U, // G_VAARG
0U, // G_SEXT
0U, // G_SEXT_INREG
0U, // G_ZEXT
0U, // G_SHL
0U, // G_LSHR
0U, // G_ASHR
0U, // G_ICMP
0U, // G_FCMP
0U, // G_SELECT
0U, // G_UADDO
0U, // G_UADDE
0U, // G_USUBO
0U, // G_USUBE
0U, // G_SADDO
0U, // G_SADDE
0U, // G_SSUBO
0U, // G_SSUBE
0U, // G_UMULO
0U, // G_SMULO
0U, // G_UMULH
0U, // G_SMULH
0U, // G_FADD
0U, // G_FSUB
0U, // G_FMUL
0U, // G_FMA
0U, // G_FMAD
0U, // G_FDIV
0U, // G_FREM
0U, // G_FPOW
0U, // G_FEXP
0U, // G_FEXP2
0U, // G_FLOG
0U, // G_FLOG2
0U, // G_FLOG10
0U, // G_FNEG
0U, // G_FPEXT
0U, // G_FPTRUNC
0U, // G_FPTOSI
0U, // G_FPTOUI
0U, // G_SITOFP
0U, // G_UITOFP
0U, // G_FABS
0U, // G_FCOPYSIGN
0U, // G_FCANONICALIZE
0U, // G_FMINNUM
0U, // G_FMAXNUM
0U, // G_FMINNUM_IEEE
0U, // G_FMAXNUM_IEEE
0U, // G_FMINIMUM
0U, // G_FMAXIMUM
0U, // G_PTR_ADD
0U, // G_PTR_MASK
0U, // G_SMIN
0U, // G_SMAX
0U, // G_UMIN
0U, // G_UMAX
0U, // G_BR
0U, // G_BRJT
0U, // G_INSERT_VECTOR_ELT
0U, // G_EXTRACT_VECTOR_ELT
0U, // G_SHUFFLE_VECTOR
0U, // G_CTTZ
0U, // G_CTTZ_ZERO_UNDEF
0U, // G_CTLZ
0U, // G_CTLZ_ZERO_UNDEF
0U, // G_CTPOP
0U, // G_BSWAP
0U, // G_BITREVERSE
0U, // G_FCEIL
0U, // G_FCOS
0U, // G_FSIN
0U, // G_FSQRT
0U, // G_FFLOOR
0U, // G_FRINT
0U, // G_FNEARBYINT
0U, // G_ADDRSPACE_CAST
0U, // G_BLOCK_ADDR
0U, // G_JUMP_TABLE
0U, // G_DYN_STACKALLOC
0U, // G_READ_REGISTER
0U, // G_WRITE_REGISTER
0U, // ADJCALLSTACKDOWN
0U, // ADJCALLSTACKUP
0U, // BuildPairF64Pseudo
0U, // PseudoAddTPRel
0U, // PseudoAtomicLoadNand32
0U, // PseudoAtomicLoadNand64
0U, // PseudoBR
0U, // PseudoBRIND
0U, // PseudoCALL
0U, // PseudoCALLIndirect
2U, // PseudoCALLReg
0U, // PseudoCmpXchg32
0U, // PseudoCmpXchg64
8U, // PseudoFLD
8U, // PseudoFLW
8U, // PseudoFSD
8U, // PseudoFSW
2U, // PseudoLA
2U, // PseudoLA_TLS_GD
2U, // PseudoLA_TLS_IE
2U, // PseudoLB
2U, // PseudoLBU
2U, // PseudoLD
2U, // PseudoLH
2U, // PseudoLHU
2U, // PseudoLI
2U, // PseudoLLA
2U, // PseudoLW
2U, // PseudoLWU
0U, // PseudoMaskedAtomicLoadAdd32
0U, // PseudoMaskedAtomicLoadMax32
0U, // PseudoMaskedAtomicLoadMin32
0U, // PseudoMaskedAtomicLoadNand32
0U, // PseudoMaskedAtomicLoadSub32
0U, // PseudoMaskedAtomicLoadUMax32
0U, // PseudoMaskedAtomicLoadUMin32
0U, // PseudoMaskedAtomicSwap32
0U, // PseudoMaskedCmpXchg32
0U, // PseudoRET
8U, // PseudoSB
8U, // PseudoSD
8U, // PseudoSH
8U, // PseudoSW
0U, // PseudoTAIL
0U, // PseudoTAILIndirect
0U, // ReadCycleWide
0U, // Select_FPR32_Using_CC_GPR
0U, // Select_FPR64_Using_CC_GPR
0U, // Select_GPR_Using_CC_GPR
0U, // SplitF64Pseudo
32U, // ADD
32U, // ADDI
32U, // ADDIW
32U, // ADDW
16U, // AMOADD_D
16U, // AMOADD_D_AQ
16U, // AMOADD_D_AQ_RL
16U, // AMOADD_D_RL
16U, // AMOADD_W
16U, // AMOADD_W_AQ
16U, // AMOADD_W_AQ_RL
16U, // AMOADD_W_RL
16U, // AMOAND_D
16U, // AMOAND_D_AQ
16U, // AMOAND_D_AQ_RL
16U, // AMOAND_D_RL
16U, // AMOAND_W
16U, // AMOAND_W_AQ
16U, // AMOAND_W_AQ_RL
16U, // AMOAND_W_RL
16U, // AMOMAXU_D
16U, // AMOMAXU_D_AQ
16U, // AMOMAXU_D_AQ_RL
16U, // AMOMAXU_D_RL
16U, // AMOMAXU_W
16U, // AMOMAXU_W_AQ
16U, // AMOMAXU_W_AQ_RL
16U, // AMOMAXU_W_RL
16U, // AMOMAX_D
16U, // AMOMAX_D_AQ
16U, // AMOMAX_D_AQ_RL
16U, // AMOMAX_D_RL
16U, // AMOMAX_W
16U, // AMOMAX_W_AQ
16U, // AMOMAX_W_AQ_RL
16U, // AMOMAX_W_RL
16U, // AMOMINU_D
16U, // AMOMINU_D_AQ
16U, // AMOMINU_D_AQ_RL
16U, // AMOMINU_D_RL
16U, // AMOMINU_W
16U, // AMOMINU_W_AQ
16U, // AMOMINU_W_AQ_RL
16U, // AMOMINU_W_RL
16U, // AMOMIN_D
16U, // AMOMIN_D_AQ
16U, // AMOMIN_D_AQ_RL
16U, // AMOMIN_D_RL
16U, // AMOMIN_W
16U, // AMOMIN_W_AQ
16U, // AMOMIN_W_AQ_RL
16U, // AMOMIN_W_RL
16U, // AMOOR_D
16U, // AMOOR_D_AQ
16U, // AMOOR_D_AQ_RL
16U, // AMOOR_D_RL
16U, // AMOOR_W
16U, // AMOOR_W_AQ
16U, // AMOOR_W_AQ_RL
16U, // AMOOR_W_RL
16U, // AMOSWAP_D
16U, // AMOSWAP_D_AQ
16U, // AMOSWAP_D_AQ_RL
16U, // AMOSWAP_D_RL
16U, // AMOSWAP_W
16U, // AMOSWAP_W_AQ
16U, // AMOSWAP_W_AQ_RL
16U, // AMOSWAP_W_RL
16U, // AMOXOR_D
16U, // AMOXOR_D_AQ
16U, // AMOXOR_D_AQ_RL
16U, // AMOXOR_D_RL
16U, // AMOXOR_W
16U, // AMOXOR_W_AQ
16U, // AMOXOR_W_AQ_RL
16U, // AMOXOR_W_RL
32U, // AND
32U, // ANDI
2U, // AUIPC
32U, // BEQ
32U, // BGE
32U, // BGEU
32U, // BLT
32U, // BLTU
32U, // BNE
1U, // CSRRC
1U, // CSRRCI
1U, // CSRRS
1U, // CSRRSI
1U, // CSRRW
1U, // CSRRWI
2U, // C_ADD
2U, // C_ADDI
2U, // C_ADDI16SP
32U, // C_ADDI4SPN
2U, // C_ADDIW
2U, // C_ADDI_HINT_IMM_ZERO
2U, // C_ADDI_HINT_X0
2U, // C_ADDI_NOP
2U, // C_ADDW
2U, // C_ADD_HINT
2U, // C_AND
2U, // C_ANDI
2U, // C_BEQZ
2U, // C_BNEZ
0U, // C_EBREAK
4U, // C_FLD
4U, // C_FLDSP
4U, // C_FLW
4U, // C_FLWSP
4U, // C_FSD
4U, // C_FSDSP
4U, // C_FSW
4U, // C_FSWSP
0U, // C_J
0U, // C_JAL
0U, // C_JALR
0U, // C_JR
4U, // C_LD
4U, // C_LDSP
2U, // C_LI
2U, // C_LI_HINT
2U, // C_LUI
2U, // C_LUI_HINT
4U, // C_LW
4U, // C_LWSP
2U, // C_MV
2U, // C_MV_HINT
0U, // C_NOP
0U, // C_NOP_HINT
2U, // C_OR
4U, // C_SD
4U, // C_SDSP
2U, // C_SLLI
0U, // C_SLLI64_HINT
2U, // C_SLLI_HINT
2U, // C_SRAI
0U, // C_SRAI64_HINT
2U, // C_SRLI
0U, // C_SRLI64_HINT
2U, // C_SUB
2U, // C_SUBW
4U, // C_SW
4U, // C_SWSP
0U, // C_UNIMP
2U, // C_XOR
32U, // DIV
32U, // DIVU
32U, // DIVUW
32U, // DIVW
0U, // EBREAK
0U, // ECALL
64U, // FADD_D
64U, // FADD_S
2U, // FCLASS_D
2U, // FCLASS_S
24U, // FCVT_D_L
24U, // FCVT_D_LU
2U, // FCVT_D_S
2U, // FCVT_D_W
2U, // FCVT_D_WU
24U, // FCVT_LU_D
24U, // FCVT_LU_S
24U, // FCVT_L_D
24U, // FCVT_L_S
24U, // FCVT_S_D
24U, // FCVT_S_L
24U, // FCVT_S_LU
24U, // FCVT_S_W
24U, // FCVT_S_WU
24U, // FCVT_WU_D
24U, // FCVT_WU_S
24U, // FCVT_W_D
24U, // FCVT_W_S
64U, // FDIV_D
64U, // FDIV_S
0U, // FENCE
0U, // FENCE_I
0U, // FENCE_TSO
32U, // FEQ_D
32U, // FEQ_S
4U, // FLD
32U, // FLE_D
32U, // FLE_S
32U, // FLT_D
32U, // FLT_S
4U, // FLW
128U, // FMADD_D
128U, // FMADD_S
32U, // FMAX_D
32U, // FMAX_S
32U, // FMIN_D
32U, // FMIN_S
128U, // FMSUB_D
128U, // FMSUB_S
64U, // FMUL_D
64U, // FMUL_S
2U, // FMV_D_X
2U, // FMV_W_X
2U, // FMV_X_D
2U, // FMV_X_W
128U, // FNMADD_D
128U, // FNMADD_S
128U, // FNMSUB_D
128U, // FNMSUB_S
4U, // FSD
32U, // FSGNJN_D
32U, // FSGNJN_S
32U, // FSGNJX_D
32U, // FSGNJX_S
32U, // FSGNJ_D
32U, // FSGNJ_S
24U, // FSQRT_D
24U, // FSQRT_S
64U, // FSUB_D
64U, // FSUB_S
4U, // FSW
2U, // JAL
4U, // JALR
4U, // LB
4U, // LBU
4U, // LD
4U, // LH
4U, // LHU
1U, // LR_D
1U, // LR_D_AQ
1U, // LR_D_AQ_RL
1U, // LR_D_RL
1U, // LR_W
1U, // LR_W_AQ
1U, // LR_W_AQ_RL
1U, // LR_W_RL
2U, // LUI
4U, // LW
4U, // LWU
0U, // MRET
32U, // MUL
32U, // MULH
32U, // MULHSU
32U, // MULHU
32U, // MULW
32U, // OR
32U, // ORI
32U, // REM
32U, // REMU
32U, // REMUW
32U, // REMW
4U, // SB
16U, // SC_D
16U, // SC_D_AQ
16U, // SC_D_AQ_RL
16U, // SC_D_RL
16U, // SC_W
16U, // SC_W_AQ
16U, // SC_W_AQ_RL
16U, // SC_W_RL
4U, // SD
2U, // SFENCE_VMA
4U, // SH
32U, // SLL
32U, // SLLI
32U, // SLLIW
32U, // SLLW
32U, // SLT
32U, // SLTI
32U, // SLTIU
32U, // SLTU
32U, // SRA
32U, // SRAI
32U, // SRAIW
32U, // SRAW
0U, // SRET
32U, // SRL
32U, // SRLI
32U, // SRLIW
32U, // SRLW
32U, // SUB
32U, // SUBW
4U, // SW
0U, // UNIMP
0U, // URET
0U, // WFI
32U, // XOR
32U, // XORI
};
O << "\t";
// Emit the opcode for the instruction.
uint32_t Bits = 0;
Bits |= OpInfo0[MI->getOpcode()] << 0;
Bits |= OpInfo1[MI->getOpcode()] << 16;
assert(Bits != 0 && "Cannot print this instruction.");
O << AsmStrs+(Bits & 4095)-1;
// Fragment 0 encoded into 2 bits for 4 unique commands.
switch ((Bits >> 12) & 3) {
default: llvm_unreachable("Invalid command number.");
case 0:
// DBG_VALUE, DBG_LABEL, BUNDLE, LIFETIME_START, LIFETIME_END, FENTRY_CAL...
return;
break;
case 1:
// PseudoAddTPRel, PseudoCALL, PseudoCALLReg, PseudoFLD, PseudoFLW, Pseud...
printOperand(MI, 0, STI, O);
break;
case 2:
// C_ADD, C_ADDI, C_ADDI16SP, C_ADDIW, C_ADDI_HINT_IMM_ZERO, C_ADDI_HINT_...
printOperand(MI, 1, STI, O);
break;
case 3:
// FENCE
printFenceArg(MI, 0, STI, O);
O << ", ";
printFenceArg(MI, 1, STI, O);
return;
break;
}
// Fragment 1 encoded into 1 bits for 2 unique commands.
if ((Bits >> 14) & 1) {
// PseudoCALL, PseudoTAIL, C_J, C_JAL, C_JALR, C_JR, C_NOP_HINT, C_SLLI64...
return;
} else {
// PseudoAddTPRel, PseudoCALLReg, PseudoFLD, PseudoFLW, PseudoFSD, Pseudo...
O << ", ";
}
// Fragment 2 encoded into 2 bits for 4 unique commands.
switch ((Bits >> 15) & 3) {
default: llvm_unreachable("Invalid command number.");
case 0:
// PseudoAddTPRel, PseudoCALLReg, PseudoLA, PseudoLA_TLS_GD, PseudoLA_TLS...
printOperand(MI, 1, STI, O);
break;
case 1:
// PseudoFLD, PseudoFLW, PseudoFSD, PseudoFSW, PseudoSB, PseudoSD, Pseudo...
printOperand(MI, 2, STI, O);
break;
case 2:
// CSRRC, CSRRCI, CSRRS, CSRRSI, CSRRW, CSRRWI
printCSRSystemRegister(MI, 1, STI, O);
O << ", ";
printOperand(MI, 2, STI, O);
return;
break;
case 3:
// LR_D, LR_D_AQ, LR_D_AQ_RL, LR_D_RL, LR_W, LR_W_AQ, LR_W_AQ_RL, LR_W_RL
printAtomicMemOp(MI, 1, STI, O);
return;
break;
}
// Fragment 3 encoded into 2 bits for 3 unique commands.
switch ((Bits >> 17) & 3) {
default: llvm_unreachable("Invalid command number.");
case 0:
// PseudoAddTPRel, PseudoFLD, PseudoFLW, PseudoFSD, PseudoFSW, PseudoSB, ...
O << ", ";
break;
case 1:
// PseudoCALLReg, PseudoLA, PseudoLA_TLS_GD, PseudoLA_TLS_IE, PseudoLB, P...
return;
break;
case 2:
// C_FLD, C_FLDSP, C_FLW, C_FLWSP, C_FSD, C_FSDSP, C_FSW, C_FSWSP, C_LD, ...
O << '(';
printOperand(MI, 1, STI, O);
O << ')';
return;
break;
}
// Fragment 4 encoded into 2 bits for 4 unique commands.
switch ((Bits >> 19) & 3) {
default: llvm_unreachable("Invalid command number.");
case 0:
// PseudoAddTPRel, ADD, ADDI, ADDIW, ADDW, AND, ANDI, BEQ, BGE, BGEU, BLT...
printOperand(MI, 2, STI, O);
break;
case 1:
// PseudoFLD, PseudoFLW, PseudoFSD, PseudoFSW, PseudoSB, PseudoSD, Pseudo...
printOperand(MI, 1, STI, O);
return;
break;
case 2:
// AMOADD_D, AMOADD_D_AQ, AMOADD_D_AQ_RL, AMOADD_D_RL, AMOADD_W, AMOADD_W...
printAtomicMemOp(MI, 1, STI, O);
return;
break;
case 3:
// FCVT_D_L, FCVT_D_LU, FCVT_LU_D, FCVT_LU_S, FCVT_L_D, FCVT_L_S, FCVT_S_...
printFRMArg(MI, 2, STI, O);
return;
break;
}
// Fragment 5 encoded into 1 bits for 2 unique commands.
if ((Bits >> 21) & 1) {
// ADD, ADDI, ADDIW, ADDW, AND, ANDI, BEQ, BGE, BGEU, BLT, BLTU, BNE, C_A...
return;
} else {
// PseudoAddTPRel, FADD_D, FADD_S, FDIV_D, FDIV_S, FMADD_D, FMADD_S, FMSU...
O << ", ";
}
// Fragment 6 encoded into 1 bits for 2 unique commands.
if ((Bits >> 22) & 1) {
// FADD_D, FADD_S, FDIV_D, FDIV_S, FMUL_D, FMUL_S, FSUB_D, FSUB_S
printFRMArg(MI, 3, STI, O);
return;
} else {
// PseudoAddTPRel, FMADD_D, FMADD_S, FMSUB_D, FMSUB_S, FNMADD_D, FNMADD_S...
printOperand(MI, 3, STI, O);
}
// Fragment 7 encoded into 1 bits for 2 unique commands.
if ((Bits >> 23) & 1) {
// FMADD_D, FMADD_S, FMSUB_D, FMSUB_S, FNMADD_D, FNMADD_S, FNMSUB_D, FNMS...
O << ", ";
printFRMArg(MI, 4, STI, O);
return;
} else {
// PseudoAddTPRel
return;
}
}
/// getRegisterName - This method is automatically generated by tblgen
/// from the register set description. This returns the assembler name
/// for the specified register.
const char *RISCVInstPrinter::
getRegisterName(unsigned RegNo, unsigned AltIdx) {
assert(RegNo && RegNo < 97 && "Invalid register number!");
static const char AsmStrsABIRegAltName[] = {
/* 0 */ 'f', 's', '1', '0', 0,
/* 5 */ 'f', 't', '1', '0', 0,
/* 10 */ 'f', 'a', '0', 0,
/* 14 */ 'f', 's', '0', 0,
/* 18 */ 'f', 't', '0', 0,
/* 22 */ 'f', 's', '1', '1', 0,
/* 27 */ 'f', 't', '1', '1', 0,
/* 32 */ 'f', 'a', '1', 0,
/* 36 */ 'f', 's', '1', 0,
/* 40 */ 'f', 't', '1', 0,
/* 44 */ 'f', 'a', '2', 0,
/* 48 */ 'f', 's', '2', 0,
/* 52 */ 'f', 't', '2', 0,
/* 56 */ 'f', 'a', '3', 0,
/* 60 */ 'f', 's', '3', 0,
/* 64 */ 'f', 't', '3', 0,
/* 68 */ 'f', 'a', '4', 0,
/* 72 */ 'f', 's', '4', 0,
/* 76 */ 'f', 't', '4', 0,
/* 80 */ 'f', 'a', '5', 0,
/* 84 */ 'f', 's', '5', 0,
/* 88 */ 'f', 't', '5', 0,
/* 92 */ 'f', 'a', '6', 0,
/* 96 */ 'f', 's', '6', 0,
/* 100 */ 'f', 't', '6', 0,
/* 104 */ 'f', 'a', '7', 0,
/* 108 */ 'f', 's', '7', 0,
/* 112 */ 'f', 't', '7', 0,
/* 116 */ 'f', 's', '8', 0,
/* 120 */ 'f', 't', '8', 0,
/* 124 */ 'f', 's', '9', 0,
/* 128 */ 'f', 't', '9', 0,
/* 132 */ 'r', 'a', 0,
/* 135 */ 'z', 'e', 'r', 'o', 0,
/* 140 */ 'g', 'p', 0,
/* 143 */ 's', 'p', 0,
/* 146 */ 't', 'p', 0,
};
static const uint8_t RegAsmOffsetABIRegAltName[] = {
135, 132, 143, 140, 146, 19, 41, 53, 15, 37, 11, 33, 45, 57,
69, 81, 93, 105, 49, 61, 73, 85, 97, 109, 117, 125, 1, 23,
65, 77, 89, 101, 18, 40, 52, 64, 76, 88, 100, 112, 14, 36,
10, 32, 44, 56, 68, 80, 92, 104, 48, 60, 72, 84, 96, 108,
116, 124, 0, 22, 120, 128, 5, 27, 18, 40, 52, 64, 76, 88,
100, 112, 14, 36, 10, 32, 44, 56, 68, 80, 92, 104, 48, 60,
72, 84, 96, 108, 116, 124, 0, 22, 120, 128, 5, 27,
};
static const char AsmStrsNoRegAltName[] = {
/* 0 */ 'f', '1', '0', 0,
/* 4 */ 'x', '1', '0', 0,
/* 8 */ 'f', '2', '0', 0,
/* 12 */ 'x', '2', '0', 0,
/* 16 */ 'f', '3', '0', 0,
/* 20 */ 'x', '3', '0', 0,
/* 24 */ 'f', '0', 0,
/* 27 */ 'x', '0', 0,
/* 30 */ 'f', '1', '1', 0,
/* 34 */ 'x', '1', '1', 0,
/* 38 */ 'f', '2', '1', 0,
/* 42 */ 'x', '2', '1', 0,
/* 46 */ 'f', '3', '1', 0,
/* 50 */ 'x', '3', '1', 0,
/* 54 */ 'f', '1', 0,
/* 57 */ 'x', '1', 0,
/* 60 */ 'f', '1', '2', 0,
/* 64 */ 'x', '1', '2', 0,
/* 68 */ 'f', '2', '2', 0,
/* 72 */ 'x', '2', '2', 0,
/* 76 */ 'f', '2', 0,
/* 79 */ 'x', '2', 0,
/* 82 */ 'f', '1', '3', 0,
/* 86 */ 'x', '1', '3', 0,
/* 90 */ 'f', '2', '3', 0,
/* 94 */ 'x', '2', '3', 0,
/* 98 */ 'f', '3', 0,
/* 101 */ 'x', '3', 0,
/* 104 */ 'f', '1', '4', 0,
/* 108 */ 'x', '1', '4', 0,
/* 112 */ 'f', '2', '4', 0,
/* 116 */ 'x', '2', '4', 0,
/* 120 */ 'f', '4', 0,
/* 123 */ 'x', '4', 0,
/* 126 */ 'f', '1', '5', 0,
/* 130 */ 'x', '1', '5', 0,
/* 134 */ 'f', '2', '5', 0,
/* 138 */ 'x', '2', '5', 0,
/* 142 */ 'f', '5', 0,
/* 145 */ 'x', '5', 0,
/* 148 */ 'f', '1', '6', 0,
/* 152 */ 'x', '1', '6', 0,
/* 156 */ 'f', '2', '6', 0,
/* 160 */ 'x', '2', '6', 0,
/* 164 */ 'f', '6', 0,
/* 167 */ 'x', '6', 0,
/* 170 */ 'f', '1', '7', 0,
/* 174 */ 'x', '1', '7', 0,
/* 178 */ 'f', '2', '7', 0,
/* 182 */ 'x', '2', '7', 0,
/* 186 */ 'f', '7', 0,
/* 189 */ 'x', '7', 0,
/* 192 */ 'f', '1', '8', 0,
/* 196 */ 'x', '1', '8', 0,
/* 200 */ 'f', '2', '8', 0,
/* 204 */ 'x', '2', '8', 0,
/* 208 */ 'f', '8', 0,
/* 211 */ 'x', '8', 0,
/* 214 */ 'f', '1', '9', 0,
/* 218 */ 'x', '1', '9', 0,
/* 222 */ 'f', '2', '9', 0,
/* 226 */ 'x', '2', '9', 0,
/* 230 */ 'f', '9', 0,
/* 233 */ 'x', '9', 0,
};
static const uint8_t RegAsmOffsetNoRegAltName[] = {
27, 57, 79, 101, 123, 145, 167, 189, 211, 233, 4, 34, 64, 86,
108, 130, 152, 174, 196, 218, 12, 42, 72, 94, 116, 138, 160, 182,
204, 226, 20, 50, 24, 54, 76, 98, 120, 142, 164, 186, 208, 230,
0, 30, 60, 82, 104, 126, 148, 170, 192, 214, 8, 38, 68, 90,
112, 134, 156, 178, 200, 222, 16, 46, 24, 54, 76, 98, 120, 142,
164, 186, 208, 230, 0, 30, 60, 82, 104, 126, 148, 170, 192, 214,
8, 38, 68, 90, 112, 134, 156, 178, 200, 222, 16, 46,
};
switch(AltIdx) {
default: llvm_unreachable("Invalid register alt name index!");
case RISCV::ABIRegAltName:
assert(*(AsmStrsABIRegAltName+RegAsmOffsetABIRegAltName[RegNo-1]) &&
"Invalid alt name index for register!");
return AsmStrsABIRegAltName+RegAsmOffsetABIRegAltName[RegNo-1];
case RISCV::NoRegAltName:
assert(*(AsmStrsNoRegAltName+RegAsmOffsetNoRegAltName[RegNo-1]) &&
"Invalid alt name index for register!");
return AsmStrsNoRegAltName+RegAsmOffsetNoRegAltName[RegNo-1];
}
}
#ifdef PRINT_ALIAS_INSTR
#undef PRINT_ALIAS_INSTR
static bool RISCVInstPrinterValidateMCOperand(const MCOperand &MCOp,
const MCSubtargetInfo &STI,
unsigned PredicateIndex);
bool RISCVInstPrinter::printAliasInstr(const MCInst *MI, const MCSubtargetInfo &STI, raw_ostream &OS) {
static const PatternsForOpcode OpToPatterns[] = {
{RISCV::ADDI, 0, 2 },
{RISCV::ADDIW, 2, 1 },
{RISCV::BEQ, 3, 1 },
{RISCV::BGE, 4, 2 },
{RISCV::BLT, 6, 2 },
{RISCV::BNE, 8, 1 },
{RISCV::CSRRC, 9, 1 },
{RISCV::CSRRCI, 10, 1 },
{RISCV::CSRRS, 11, 11 },
{RISCV::CSRRSI, 22, 1 },
{RISCV::CSRRW, 23, 7 },
{RISCV::CSRRWI, 30, 5 },
{RISCV::FADD_D, 35, 1 },
{RISCV::FADD_S, 36, 1 },
{RISCV::FCVT_D_L, 37, 1 },
{RISCV::FCVT_D_LU, 38, 1 },
{RISCV::FCVT_LU_D, 39, 1 },
{RISCV::FCVT_LU_S, 40, 1 },
{RISCV::FCVT_L_D, 41, 1 },
{RISCV::FCVT_L_S, 42, 1 },
{RISCV::FCVT_S_D, 43, 1 },
{RISCV::FCVT_S_L, 44, 1 },
{RISCV::FCVT_S_LU, 45, 1 },
{RISCV::FCVT_S_W, 46, 1 },
{RISCV::FCVT_S_WU, 47, 1 },
{RISCV::FCVT_WU_D, 48, 1 },
{RISCV::FCVT_WU_S, 49, 1 },
{RISCV::FCVT_W_D, 50, 1 },
{RISCV::FCVT_W_S, 51, 1 },
{RISCV::FDIV_D, 52, 1 },
{RISCV::FDIV_S, 53, 1 },
{RISCV::FENCE, 54, 1 },
{RISCV::FMADD_D, 55, 1 },
{RISCV::FMADD_S, 56, 1 },
{RISCV::FMSUB_D, 57, 1 },
{RISCV::FMSUB_S, 58, 1 },
{RISCV::FMUL_D, 59, 1 },
{RISCV::FMUL_S, 60, 1 },
{RISCV::FNMADD_D, 61, 1 },
{RISCV::FNMADD_S, 62, 1 },
{RISCV::FNMSUB_D, 63, 1 },
{RISCV::FNMSUB_S, 64, 1 },
{RISCV::FSGNJN_D, 65, 1 },
{RISCV::FSGNJN_S, 66, 1 },
{RISCV::FSGNJX_D, 67, 1 },
{RISCV::FSGNJX_S, 68, 1 },
{RISCV::FSGNJ_D, 69, 1 },
{RISCV::FSGNJ_S, 70, 1 },
{RISCV::FSQRT_D, 71, 1 },
{RISCV::FSQRT_S, 72, 1 },
{RISCV::FSUB_D, 73, 1 },
{RISCV::FSUB_S, 74, 1 },
{RISCV::JAL, 75, 2 },
{RISCV::JALR, 77, 6 },
{RISCV::SFENCE_VMA, 83, 2 },
{RISCV::SLT, 85, 2 },
{RISCV::SLTIU, 87, 1 },
{RISCV::SLTU, 88, 1 },
{RISCV::SUB, 89, 1 },
{RISCV::SUBW, 90, 1 },
{RISCV::XORI, 91, 1 },
};
static const AliasPattern Patterns[] = {
// RISCV::ADDI - 0
{0, 0, 3, 3 },
{4, 3, 3, 3 },
// RISCV::ADDIW - 2
{14, 6, 3, 4 },
// RISCV::BEQ - 3
{28, 10, 3, 3 },
// RISCV::BGE - 4
{40, 13, 3, 3 },
{52, 16, 3, 3 },
// RISCV::BLT - 6
{64, 19, 3, 3 },
{76, 22, 3, 3 },
// RISCV::BNE - 8
{88, 25, 3, 3 },
// RISCV::CSRRC - 9
{100, 28, 3, 3 },
// RISCV::CSRRCI - 10
{114, 31, 3, 2 },
// RISCV::CSRRS - 11
{129, 33, 3, 4 },
{138, 37, 3, 4 },
{146, 41, 3, 4 },
{157, 45, 3, 3 },
{170, 48, 3, 3 },
{181, 51, 3, 3 },
{191, 54, 3, 4 },
{205, 58, 3, 4 },
{217, 62, 3, 4 },
{228, 66, 3, 3 },
{242, 69, 3, 3 },
// RISCV::CSRRSI - 22
{256, 72, 3, 2 },
// RISCV::CSRRW - 23
{271, 74, 3, 4 },
{280, 78, 3, 4 },
{288, 82, 3, 4 },
{299, 86, 3, 3 },
{313, 89, 3, 4 },
{326, 93, 3, 4 },
{338, 97, 3, 4 },
// RISCV::CSRRWI - 30
{353, 101, 3, 3 },
{362, 104, 3, 3 },
{374, 107, 3, 2 },
{389, 109, 3, 3 },
{402, 112, 3, 3 },
// RISCV::FADD_D - 35
{418, 115, 4, 5 },
// RISCV::FADD_S - 36
{436, 120, 4, 5 },
// RISCV::FCVT_D_L - 37
{454, 125, 3, 5 },
// RISCV::FCVT_D_LU - 38
{470, 130, 3, 5 },
// RISCV::FCVT_LU_D - 39
{487, 135, 3, 5 },
// RISCV::FCVT_LU_S - 40
{504, 140, 3, 5 },
// RISCV::FCVT_L_D - 41
{521, 145, 3, 5 },
// RISCV::FCVT_L_S - 42
{537, 150, 3, 5 },
// RISCV::FCVT_S_D - 43
{553, 155, 3, 4 },
// RISCV::FCVT_S_L - 44
{569, 159, 3, 5 },
// RISCV::FCVT_S_LU - 45
{585, 164, 3, 5 },
// RISCV::FCVT_S_W - 46
{602, 169, 3, 4 },
// RISCV::FCVT_S_WU - 47
{618, 173, 3, 4 },
// RISCV::FCVT_WU_D - 48
{635, 177, 3, 4 },
// RISCV::FCVT_WU_S - 49
{652, 181, 3, 4 },
// RISCV::FCVT_W_D - 50
{669, 185, 3, 4 },
// RISCV::FCVT_W_S - 51
{685, 189, 3, 4 },
// RISCV::FDIV_D - 52
{701, 193, 4, 5 },
// RISCV::FDIV_S - 53
{719, 198, 4, 5 },
// RISCV::FENCE - 54
{737, 203, 2, 2 },
// RISCV::FMADD_D - 55
{743, 205, 5, 6 },
// RISCV::FMADD_S - 56
{766, 211, 5, 6 },
// RISCV::FMSUB_D - 57
{789, 217, 5, 6 },
// RISCV::FMSUB_S - 58
{812, 223, 5, 6 },
// RISCV::FMUL_D - 59
{835, 229, 4, 5 },
// RISCV::FMUL_S - 60
{853, 234, 4, 5 },
// RISCV::FNMADD_D - 61
{871, 239, 5, 6 },
// RISCV::FNMADD_S - 62
{895, 245, 5, 6 },
// RISCV::FNMSUB_D - 63
{919, 251, 5, 6 },
// RISCV::FNMSUB_S - 64
{943, 257, 5, 6 },
// RISCV::FSGNJN_D - 65
{967, 263, 3, 4 },
// RISCV::FSGNJN_S - 66
{981, 267, 3, 4 },
// RISCV::FSGNJX_D - 67
{995, 271, 3, 4 },
// RISCV::FSGNJX_S - 68
{1009, 275, 3, 4 },
// RISCV::FSGNJ_D - 69
{1023, 279, 3, 4 },
// RISCV::FSGNJ_S - 70
{1036, 283, 3, 4 },
// RISCV::FSQRT_D - 71
{1049, 287, 3, 4 },
// RISCV::FSQRT_S - 72
{1064, 291, 3, 4 },
// RISCV::FSUB_D - 73
{1079, 295, 4, 5 },
// RISCV::FSUB_S - 74
{1097, 300, 4, 5 },
// RISCV::JAL - 75
{1115, 305, 2, 2 },
{1120, 307, 2, 2 },
// RISCV::JALR - 77
{1127, 309, 3, 3 },
{1131, 312, 3, 3 },
{1137, 315, 3, 3 },
{1145, 318, 3, 3 },
{1157, 321, 3, 3 },
{1167, 324, 3, 3 },
// RISCV::SFENCE_VMA - 83
{1179, 327, 2, 2 },
{1190, 329, 2, 2 },
// RISCV::SLT - 85
{1204, 331, 3, 3 },
{1216, 334, 3, 3 },
// RISCV::SLTIU - 87
{1228, 337, 3, 3 },
// RISCV::SLTU - 88
{1240, 340, 3, 3 },
// RISCV::SUB - 89
{1252, 343, 3, 3 },
// RISCV::SUBW - 90
{1263, 346, 3, 4 },
// RISCV::XORI - 91
{1275, 350, 3, 3 },
};
static const AliasPatternCond Conds[] = {
// (ADDI X0, X0, 0) - 0
{AliasPatternCond::K_Reg, RISCV::X0},
{AliasPatternCond::K_Reg, RISCV::X0},
{AliasPatternCond::K_Imm, uint32_t(0)},
// (ADDI GPR:$rd, GPR:$rs, 0) - 3
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Imm, uint32_t(0)},
// (ADDIW GPR:$rd, GPR:$rs, 0) - 6
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Imm, uint32_t(0)},
{AliasPatternCond::K_Feature, RISCV::Feature64Bit},
// (BEQ GPR:$rs, X0, simm13_lsb0:$offset) - 10
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Reg, RISCV::X0},
{AliasPatternCond::K_Custom, 1},
// (BGE X0, GPR:$rs, simm13_lsb0:$offset) - 13
{AliasPatternCond::K_Reg, RISCV::X0},
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Custom, 1},
// (BGE GPR:$rs, X0, simm13_lsb0:$offset) - 16
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Reg, RISCV::X0},
{AliasPatternCond::K_Custom, 1},
// (BLT GPR:$rs, X0, simm13_lsb0:$offset) - 19
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Reg, RISCV::X0},
{AliasPatternCond::K_Custom, 1},
// (BLT X0, GPR:$rs, simm13_lsb0:$offset) - 22
{AliasPatternCond::K_Reg, RISCV::X0},
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Custom, 1},
// (BNE GPR:$rs, X0, simm13_lsb0:$offset) - 25
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Reg, RISCV::X0},
{AliasPatternCond::K_Custom, 1},
// (CSRRC X0, csr_sysreg:$csr, GPR:$rs) - 28
{AliasPatternCond::K_Reg, RISCV::X0},
{AliasPatternCond::K_Ignore, 0},
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
// (CSRRCI X0, csr_sysreg:$csr, uimm5:$imm) - 31
{AliasPatternCond::K_Reg, RISCV::X0},
{AliasPatternCond::K_Ignore, 0},
// (CSRRS GPR:$rd, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 }, X0) - 33
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Imm, uint32_t(3)},
{AliasPatternCond::K_Reg, RISCV::X0},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
// (CSRRS GPR:$rd, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 }, X0) - 37
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Imm, uint32_t(2)},
{AliasPatternCond::K_Reg, RISCV::X0},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
// (CSRRS GPR:$rd, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, X0) - 41
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Imm, uint32_t(1)},
{AliasPatternCond::K_Reg, RISCV::X0},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
// (CSRRS GPR:$rd, { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 }, X0) - 45
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Imm, uint32_t(3074)},
{AliasPatternCond::K_Reg, RISCV::X0},
// (CSRRS GPR:$rd, { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, X0) - 48
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Imm, uint32_t(3072)},
{AliasPatternCond::K_Reg, RISCV::X0},
// (CSRRS GPR:$rd, { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, X0) - 51
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Imm, uint32_t(3073)},
{AliasPatternCond::K_Reg, RISCV::X0},
// (CSRRS GPR:$rd, { 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0 }, X0) - 54
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Imm, uint32_t(3202)},
{AliasPatternCond::K_Reg, RISCV::X0},
{AliasPatternCond::K_NegFeature, RISCV::Feature64Bit},
// (CSRRS GPR:$rd, { 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 }, X0) - 58
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Imm, uint32_t(3200)},
{AliasPatternCond::K_Reg, RISCV::X0},
{AliasPatternCond::K_NegFeature, RISCV::Feature64Bit},
// (CSRRS GPR:$rd, { 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1 }, X0) - 62
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Imm, uint32_t(3201)},
{AliasPatternCond::K_Reg, RISCV::X0},
{AliasPatternCond::K_NegFeature, RISCV::Feature64Bit},
// (CSRRS GPR:$rd, csr_sysreg:$csr, X0) - 66
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Ignore, 0},
{AliasPatternCond::K_Reg, RISCV::X0},
// (CSRRS X0, csr_sysreg:$csr, GPR:$rs) - 69
{AliasPatternCond::K_Reg, RISCV::X0},
{AliasPatternCond::K_Ignore, 0},
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
// (CSRRSI X0, csr_sysreg:$csr, uimm5:$imm) - 72
{AliasPatternCond::K_Reg, RISCV::X0},
{AliasPatternCond::K_Ignore, 0},
// (CSRRW X0, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 }, GPR:$rs) - 74
{AliasPatternCond::K_Reg, RISCV::X0},
{AliasPatternCond::K_Imm, uint32_t(3)},
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
// (CSRRW X0, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 }, GPR:$rs) - 78
{AliasPatternCond::K_Reg, RISCV::X0},
{AliasPatternCond::K_Imm, uint32_t(2)},
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
// (CSRRW X0, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, GPR:$rs) - 82
{AliasPatternCond::K_Reg, RISCV::X0},
{AliasPatternCond::K_Imm, uint32_t(1)},
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
// (CSRRW X0, csr_sysreg:$csr, GPR:$rs) - 86
{AliasPatternCond::K_Reg, RISCV::X0},
{AliasPatternCond::K_Ignore, 0},
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
// (CSRRW GPR:$rd, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 }, GPR:$rs) - 89
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Imm, uint32_t(3)},
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
// (CSRRW GPR:$rd, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 }, GPR:$rs) - 93
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Imm, uint32_t(2)},
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
// (CSRRW GPR:$rd, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, GPR:$rs) - 97
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Imm, uint32_t(1)},
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
// (CSRRWI X0, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 }, uimm5:$imm) - 101
{AliasPatternCond::K_Reg, RISCV::X0},
{AliasPatternCond::K_Imm, uint32_t(2)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
// (CSRRWI X0, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, uimm5:$imm) - 104
{AliasPatternCond::K_Reg, RISCV::X0},
{AliasPatternCond::K_Imm, uint32_t(1)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
// (CSRRWI X0, csr_sysreg:$csr, uimm5:$imm) - 107
{AliasPatternCond::K_Reg, RISCV::X0},
{AliasPatternCond::K_Ignore, 0},
// (CSRRWI GPR:$rd, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 }, uimm5:$imm) - 109
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Imm, uint32_t(2)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
// (CSRRWI GPR:$rd, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, uimm5:$imm) - 112
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Imm, uint32_t(1)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
// (FADD_D FPR64:$rd, FPR64:$rs1, FPR64:$rs2, { 1, 1, 1 }) - 115
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_Imm, uint32_t(7)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
// (FADD_S FPR32:$rd, FPR32:$rs1, FPR32:$rs2, { 1, 1, 1 }) - 120
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_Imm, uint32_t(7)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
// (FCVT_D_L FPR64:$rd, GPR:$rs1, { 1, 1, 1 }) - 125
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Imm, uint32_t(7)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
{AliasPatternCond::K_Feature, RISCV::Feature64Bit},
// (FCVT_D_LU FPR64:$rd, GPR:$rs1, { 1, 1, 1 }) - 130
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Imm, uint32_t(7)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
{AliasPatternCond::K_Feature, RISCV::Feature64Bit},
// (FCVT_LU_D GPR:$rd, FPR64:$rs1, { 1, 1, 1 }) - 135
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_Imm, uint32_t(7)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
{AliasPatternCond::K_Feature, RISCV::Feature64Bit},
// (FCVT_LU_S GPR:$rd, FPR32:$rs1, { 1, 1, 1 }) - 140
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_Imm, uint32_t(7)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
{AliasPatternCond::K_Feature, RISCV::Feature64Bit},
// (FCVT_L_D GPR:$rd, FPR64:$rs1, { 1, 1, 1 }) - 145
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_Imm, uint32_t(7)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
{AliasPatternCond::K_Feature, RISCV::Feature64Bit},
// (FCVT_L_S GPR:$rd, FPR32:$rs1, { 1, 1, 1 }) - 150
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_Imm, uint32_t(7)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
{AliasPatternCond::K_Feature, RISCV::Feature64Bit},
// (FCVT_S_D FPR32:$rd, FPR64:$rs1, { 1, 1, 1 }) - 155
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_Imm, uint32_t(7)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
// (FCVT_S_L FPR32:$rd, GPR:$rs1, { 1, 1, 1 }) - 159
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Imm, uint32_t(7)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
{AliasPatternCond::K_Feature, RISCV::Feature64Bit},
// (FCVT_S_LU FPR32:$rd, GPR:$rs1, { 1, 1, 1 }) - 164
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Imm, uint32_t(7)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
{AliasPatternCond::K_Feature, RISCV::Feature64Bit},
// (FCVT_S_W FPR32:$rd, GPR:$rs1, { 1, 1, 1 }) - 169
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Imm, uint32_t(7)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
// (FCVT_S_WU FPR32:$rd, GPR:$rs1, { 1, 1, 1 }) - 173
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Imm, uint32_t(7)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
// (FCVT_WU_D GPR:$rd, FPR64:$rs1, { 1, 1, 1 }) - 177
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_Imm, uint32_t(7)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
// (FCVT_WU_S GPR:$rd, FPR32:$rs1, { 1, 1, 1 }) - 181
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_Imm, uint32_t(7)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
// (FCVT_W_D GPR:$rd, FPR64:$rs1, { 1, 1, 1 }) - 185
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_Imm, uint32_t(7)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
// (FCVT_W_S GPR:$rd, FPR32:$rs1, { 1, 1, 1 }) - 189
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_Imm, uint32_t(7)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
// (FDIV_D FPR64:$rd, FPR64:$rs1, FPR64:$rs2, { 1, 1, 1 }) - 193
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_Imm, uint32_t(7)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
// (FDIV_S FPR32:$rd, FPR32:$rs1, FPR32:$rs2, { 1, 1, 1 }) - 198
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_Imm, uint32_t(7)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
// (FENCE 15, 15) - 203
{AliasPatternCond::K_Imm, uint32_t(15)},
{AliasPatternCond::K_Imm, uint32_t(15)},
// (FMADD_D FPR64:$rd, FPR64:$rs1, FPR64:$rs2, FPR64:$rs3, { 1, 1, 1 }) - 205
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_Imm, uint32_t(7)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
// (FMADD_S FPR32:$rd, FPR32:$rs1, FPR32:$rs2, FPR32:$rs3, { 1, 1, 1 }) - 211
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_Imm, uint32_t(7)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
// (FMSUB_D FPR64:$rd, FPR64:$rs1, FPR64:$rs2, FPR64:$rs3, { 1, 1, 1 }) - 217
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_Imm, uint32_t(7)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
// (FMSUB_S FPR32:$rd, FPR32:$rs1, FPR32:$rs2, FPR32:$rs3, { 1, 1, 1 }) - 223
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_Imm, uint32_t(7)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
// (FMUL_D FPR64:$rd, FPR64:$rs1, FPR64:$rs2, { 1, 1, 1 }) - 229
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_Imm, uint32_t(7)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
// (FMUL_S FPR32:$rd, FPR32:$rs1, FPR32:$rs2, { 1, 1, 1 }) - 234
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_Imm, uint32_t(7)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
// (FNMADD_D FPR64:$rd, FPR64:$rs1, FPR64:$rs2, FPR64:$rs3, { 1, 1, 1 }) - 239
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_Imm, uint32_t(7)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
// (FNMADD_S FPR32:$rd, FPR32:$rs1, FPR32:$rs2, FPR32:$rs3, { 1, 1, 1 }) - 245
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_Imm, uint32_t(7)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
// (FNMSUB_D FPR64:$rd, FPR64:$rs1, FPR64:$rs2, FPR64:$rs3, { 1, 1, 1 }) - 251
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_Imm, uint32_t(7)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
// (FNMSUB_S FPR32:$rd, FPR32:$rs1, FPR32:$rs2, FPR32:$rs3, { 1, 1, 1 }) - 257
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_Imm, uint32_t(7)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
// (FSGNJN_D FPR64:$rd, FPR64:$rs, FPR64:$rs) - 263
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_TiedReg, 1},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
// (FSGNJN_S FPR32:$rd, FPR32:$rs, FPR32:$rs) - 267
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_TiedReg, 1},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
// (FSGNJX_D FPR64:$rd, FPR64:$rs, FPR64:$rs) - 271
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_TiedReg, 1},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
// (FSGNJX_S FPR32:$rd, FPR32:$rs, FPR32:$rs) - 275
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_TiedReg, 1},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
// (FSGNJ_D FPR64:$rd, FPR64:$rs, FPR64:$rs) - 279
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_TiedReg, 1},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
// (FSGNJ_S FPR32:$rd, FPR32:$rs, FPR32:$rs) - 283
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_TiedReg, 1},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
// (FSQRT_D FPR64:$rd, FPR64:$rs1, { 1, 1, 1 }) - 287
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_Imm, uint32_t(7)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
// (FSQRT_S FPR32:$rd, FPR32:$rs1, { 1, 1, 1 }) - 291
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_Imm, uint32_t(7)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
// (FSUB_D FPR64:$rd, FPR64:$rs1, FPR64:$rs2, { 1, 1, 1 }) - 295
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
{AliasPatternCond::K_Imm, uint32_t(7)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
// (FSUB_S FPR32:$rd, FPR32:$rs1, FPR32:$rs2, { 1, 1, 1 }) - 300
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
{AliasPatternCond::K_Imm, uint32_t(7)},
{AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
// (JAL X0, simm21_lsb0_jal:$offset) - 305
{AliasPatternCond::K_Reg, RISCV::X0},
{AliasPatternCond::K_Custom, 2},
// (JAL X1, simm21_lsb0_jal:$offset) - 307
{AliasPatternCond::K_Reg, RISCV::X1},
{AliasPatternCond::K_Custom, 2},
// (JALR X0, X1, 0) - 309
{AliasPatternCond::K_Reg, RISCV::X0},
{AliasPatternCond::K_Reg, RISCV::X1},
{AliasPatternCond::K_Imm, uint32_t(0)},
// (JALR X0, GPR:$rs, 0) - 312
{AliasPatternCond::K_Reg, RISCV::X0},
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Imm, uint32_t(0)},
// (JALR X1, GPR:$rs, 0) - 315
{AliasPatternCond::K_Reg, RISCV::X1},
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Imm, uint32_t(0)},
// (JALR GPR:$rd, GPR:$rs, 0) - 318
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Imm, uint32_t(0)},
// (JALR X0, GPR:$rs, simm12:$offset) - 321
{AliasPatternCond::K_Reg, RISCV::X0},
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Custom, 3},
// (JALR X1, GPR:$rs, simm12:$offset) - 324
{AliasPatternCond::K_Reg, RISCV::X1},
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Custom, 3},
// (SFENCE_VMA X0, X0) - 327
{AliasPatternCond::K_Reg, RISCV::X0},
{AliasPatternCond::K_Reg, RISCV::X0},
// (SFENCE_VMA GPR:$rs, X0) - 329
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Reg, RISCV::X0},
// (SLT GPR:$rd, GPR:$rs, X0) - 331
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Reg, RISCV::X0},
// (SLT GPR:$rd, X0, GPR:$rs) - 334
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Reg, RISCV::X0},
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
// (SLTIU GPR:$rd, GPR:$rs, 1) - 337
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Imm, uint32_t(1)},
// (SLTU GPR:$rd, X0, GPR:$rs) - 340
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Reg, RISCV::X0},
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
// (SUB GPR:$rd, X0, GPR:$rs) - 343
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Reg, RISCV::X0},
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
// (SUBW GPR:$rd, X0, GPR:$rs) - 346
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Reg, RISCV::X0},
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Feature, RISCV::Feature64Bit},
// (XORI GPR:$rd, GPR:$rs, -1) - 350
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
{AliasPatternCond::K_Imm, uint32_t(-1)},
};
static const char AsmStrings[] =
/* 0 */ "nop\0"
/* 4 */ "mv $\x01, $\x02\0"
/* 14 */ "sext.w $\x01, $\x02\0"
/* 28 */ "beqz $\x01, $\x03\0"
/* 40 */ "blez $\x02, $\x03\0"
/* 52 */ "bgez $\x01, $\x03\0"
/* 64 */ "bltz $\x01, $\x03\0"
/* 76 */ "bgtz $\x02, $\x03\0"
/* 88 */ "bnez $\x01, $\x03\0"
/* 100 */ "csrc $\xFF\x02\x01, $\x03\0"
/* 114 */ "csrci $\xFF\x02\x01, $\x03\0"
/* 129 */ "frcsr $\x01\0"
/* 138 */ "frrm $\x01\0"
/* 146 */ "frflags $\x01\0"
/* 157 */ "rdinstret $\x01\0"
/* 170 */ "rdcycle $\x01\0"
/* 181 */ "rdtime $\x01\0"
/* 191 */ "rdinstreth $\x01\0"
/* 205 */ "rdcycleh $\x01\0"
/* 217 */ "rdtimeh $\x01\0"
/* 228 */ "csrr $\x01, $\xFF\x02\x01\0"
/* 242 */ "csrs $\xFF\x02\x01, $\x03\0"
/* 256 */ "csrsi $\xFF\x02\x01, $\x03\0"
/* 271 */ "fscsr $\x03\0"
/* 280 */ "fsrm $\x03\0"
/* 288 */ "fsflags $\x03\0"
/* 299 */ "csrw $\xFF\x02\x01, $\x03\0"
/* 313 */ "fscsr $\x01, $\x03\0"
/* 326 */ "fsrm $\x01, $\x03\0"
/* 338 */ "fsflags $\x01, $\x03\0"
/* 353 */ "fsrmi $\x03\0"
/* 362 */ "fsflagsi $\x03\0"
/* 374 */ "csrwi $\xFF\x02\x01, $\x03\0"
/* 389 */ "fsrmi $\x01, $\x03\0"
/* 402 */ "fsflagsi $\x01, $\x03\0"
/* 418 */ "fadd.d $\x01, $\x02, $\x03\0"
/* 436 */ "fadd.s $\x01, $\x02, $\x03\0"
/* 454 */ "fcvt.d.l $\x01, $\x02\0"
/* 470 */ "fcvt.d.lu $\x01, $\x02\0"
/* 487 */ "fcvt.lu.d $\x01, $\x02\0"
/* 504 */ "fcvt.lu.s $\x01, $\x02\0"
/* 521 */ "fcvt.l.d $\x01, $\x02\0"
/* 537 */ "fcvt.l.s $\x01, $\x02\0"
/* 553 */ "fcvt.s.d $\x01, $\x02\0"
/* 569 */ "fcvt.s.l $\x01, $\x02\0"
/* 585 */ "fcvt.s.lu $\x01, $\x02\0"
/* 602 */ "fcvt.s.w $\x01, $\x02\0"
/* 618 */ "fcvt.s.wu $\x01, $\x02\0"
/* 635 */ "fcvt.wu.d $\x01, $\x02\0"
/* 652 */ "fcvt.wu.s $\x01, $\x02\0"
/* 669 */ "fcvt.w.d $\x01, $\x02\0"
/* 685 */ "fcvt.w.s $\x01, $\x02\0"
/* 701 */ "fdiv.d $\x01, $\x02, $\x03\0"
/* 719 */ "fdiv.s $\x01, $\x02, $\x03\0"
/* 737 */ "fence\0"
/* 743 */ "fmadd.d $\x01, $\x02, $\x03, $\x04\0"
/* 766 */ "fmadd.s $\x01, $\x02, $\x03, $\x04\0"
/* 789 */ "fmsub.d $\x01, $\x02, $\x03, $\x04\0"
/* 812 */ "fmsub.s $\x01, $\x02, $\x03, $\x04\0"
/* 835 */ "fmul.d $\x01, $\x02, $\x03\0"
/* 853 */ "fmul.s $\x01, $\x02, $\x03\0"
/* 871 */ "fnmadd.d $\x01, $\x02, $\x03, $\x04\0"
/* 895 */ "fnmadd.s $\x01, $\x02, $\x03, $\x04\0"
/* 919 */ "fnmsub.d $\x01, $\x02, $\x03, $\x04\0"
/* 943 */ "fnmsub.s $\x01, $\x02, $\x03, $\x04\0"
/* 967 */ "fneg.d $\x01, $\x02\0"
/* 981 */ "fneg.s $\x01, $\x02\0"
/* 995 */ "fabs.d $\x01, $\x02\0"
/* 1009 */ "fabs.s $\x01, $\x02\0"
/* 1023 */ "fmv.d $\x01, $\x02\0"
/* 1036 */ "fmv.s $\x01, $\x02\0"
/* 1049 */ "fsqrt.d $\x01, $\x02\0"
/* 1064 */ "fsqrt.s $\x01, $\x02\0"
/* 1079 */ "fsub.d $\x01, $\x02, $\x03\0"
/* 1097 */ "fsub.s $\x01, $\x02, $\x03\0"
/* 1115 */ "j $\x02\0"
/* 1120 */ "jal $\x02\0"
/* 1127 */ "ret\0"
/* 1131 */ "jr $\x02\0"
/* 1137 */ "jalr $\x02\0"
/* 1145 */ "jalr $\x01, $\x02\0"
/* 1157 */ "jr $\x03($\x02)\0"
/* 1167 */ "jalr $\x03($\x02)\0"
/* 1179 */ "sfence.vma\0"
/* 1190 */ "sfence.vma $\x01\0"
/* 1204 */ "sltz $\x01, $\x02\0"
/* 1216 */ "sgtz $\x01, $\x03\0"
/* 1228 */ "seqz $\x01, $\x02\0"
/* 1240 */ "snez $\x01, $\x03\0"
/* 1252 */ "neg $\x01, $\x03\0"
/* 1263 */ "negw $\x01, $\x03\0"
/* 1275 */ "not $\x01, $\x02\0"
;
#ifndef NDEBUG
static struct SortCheck {
SortCheck(ArrayRef<PatternsForOpcode> OpToPatterns) {
assert(std::is_sorted(
OpToPatterns.begin(), OpToPatterns.end(),
[](const PatternsForOpcode &L, const PatternsForOpcode &R) {
return L.Opcode < R.Opcode;
}) &&
"tablegen failed to sort opcode patterns");
}
} sortCheckVar(OpToPatterns);
#endif
AliasMatchingData M {
makeArrayRef(OpToPatterns),
makeArrayRef(Patterns),
makeArrayRef(Conds),
StringRef(AsmStrings, array_lengthof(AsmStrings)),
&RISCVInstPrinterValidateMCOperand,
};
const char *AsmString = matchAliasPatterns(MI, &STI, M);
if (!AsmString) return false;
unsigned I = 0;
while (AsmString[I] != ' ' && AsmString[I] != '\t' &&
AsmString[I] != '$' && AsmString[I] != '\0')
++I;
OS << '\t' << StringRef(AsmString, I);
if (AsmString[I] != '\0') {
if (AsmString[I] == ' ' || AsmString[I] == '\t') {
OS << '\t';
++I;
}
do {
if (AsmString[I] == '$') {
++I;
if (AsmString[I] == (char)0xff) {
++I;
int OpIdx = AsmString[I++] - 1;
int PrintMethodIdx = AsmString[I++] - 1;
printCustomAliasOperand(MI, OpIdx, PrintMethodIdx, STI, OS);
} else
printOperand(MI, unsigned(AsmString[I++]) - 1, STI, OS);
} else {
OS << AsmString[I++];
}
} while (AsmString[I] != '\0');
}
return true;
}
void RISCVInstPrinter::printCustomAliasOperand(
const MCInst *MI, unsigned OpIdx,
unsigned PrintMethodIdx,
const MCSubtargetInfo &STI,
raw_ostream &OS) {
switch (PrintMethodIdx) {
default:
llvm_unreachable("Unknown PrintMethod kind");
break;
case 0:
printCSRSystemRegister(MI, OpIdx, STI, OS);
break;
}
}
static bool RISCVInstPrinterValidateMCOperand(const MCOperand &MCOp,
const MCSubtargetInfo &STI,
unsigned PredicateIndex) {
switch (PredicateIndex) {
default:
llvm_unreachable("Unknown MCOperandPredicate kind");
break;
case 1: {
int64_t Imm;
if (MCOp.evaluateAsConstantImm(Imm))
return isShiftedInt<12, 1>(Imm);
return MCOp.isBareSymbolRef();
}
case 2: {
int64_t Imm;
if (MCOp.evaluateAsConstantImm(Imm))
return isShiftedInt<20, 1>(Imm);
return MCOp.isBareSymbolRef();
}
case 3: {
int64_t Imm;
if (MCOp.evaluateAsConstantImm(Imm))
return isInt<12>(Imm);
return MCOp.isBareSymbolRef();
}
}
}
#endif // PRINT_ALIAS_INSTR