constants-aarch32.cc revision b44f7a6ee7f9cd194cde9577f5a941f2864795a4
1// Copyright 2016, VIXL authors 2// All rights reserved. 3// 4// Redistribution and use in source and binary forms, with or without 5// modification, are permitted provided that the following conditions are met: 6// 7// * Redistributions of source code must retain the above copyright notice, 8// this list of conditions and the following disclaimer. 9// * Redistributions in binary form must reproduce the above copyright 10// notice, this list of conditions and the following disclaimer in the 11// documentation and/or other materials provided with the distribution. 12// * Neither the name of ARM Limited nor the names of its contributors may 13// be used to endorse or promote products derived from this software 14// without specific prior written permission. 15// 16// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND 17// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 20// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 24// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 25// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26// POSSIBILITY OF SUCH DAMAGE. 27 28#include "utils-vixl.h" 29#include "aarch32/constants-aarch32.h" 30 31namespace vixl { 32namespace aarch32 { 33 34// Start of generated code. 35const char* ToCString(InstructionType type) { 36 switch (type) { 37 case kAdc: 38 return "adc"; 39 case kAdcs: 40 return "adcs"; 41 case kAdd: 42 return "add"; 43 case kAdds: 44 return "adds"; 45 case kAddw: 46 return "addw"; 47 case kAdr: 48 return "adr"; 49 case kAnd: 50 return "and"; 51 case kAnds: 52 return "ands"; 53 case kAsr: 54 return "asr"; 55 case kAsrs: 56 return "asrs"; 57 case kB: 58 return "b"; 59 case kBfc: 60 return "bfc"; 61 case kBfi: 62 return "bfi"; 63 case kBic: 64 return "bic"; 65 case kBics: 66 return "bics"; 67 case kBkpt: 68 return "bkpt"; 69 case kBl: 70 return "bl"; 71 case kBlx: 72 return "blx"; 73 case kBx: 74 return "bx"; 75 case kBxj: 76 return "bxj"; 77 case kCbnz: 78 return "cbnz"; 79 case kCbz: 80 return "cbz"; 81 case kClrex: 82 return "clrex"; 83 case kClz: 84 return "clz"; 85 case kCmn: 86 return "cmn"; 87 case kCmp: 88 return "cmp"; 89 case kCrc32b: 90 return "crc32b"; 91 case kCrc32cb: 92 return "crc32cb"; 93 case kCrc32ch: 94 return "crc32ch"; 95 case kCrc32cw: 96 return "crc32cw"; 97 case kCrc32h: 98 return "crc32h"; 99 case kCrc32w: 100 return "crc32w"; 101 case kDmb: 102 return "dmb"; 103 case kDsb: 104 return "dsb"; 105 case kEor: 106 return "eor"; 107 case kEors: 108 return "eors"; 109 case kFldmdbx: 110 return "fldmdbx"; 111 case kFldmiax: 112 return "fldmiax"; 113 case kFstmdbx: 114 return "fstmdbx"; 115 case kFstmiax: 116 return "fstmiax"; 117 case kHlt: 118 return "hlt"; 119 case kHvc: 120 return "hvc"; 121 case kIsb: 122 return "isb"; 123 case kIt: 124 return "it"; 125 case kLda: 126 return "lda"; 127 case kLdab: 128 return "ldab"; 129 case kLdaex: 130 return "ldaex"; 131 case kLdaexb: 132 return "ldaexb"; 133 case kLdaexd: 134 return "ldaexd"; 135 case kLdaexh: 136 return "ldaexh"; 137 case kLdah: 138 return "ldah"; 139 case kLdm: 140 return "ldm"; 141 case kLdmda: 142 return "ldmda"; 143 case kLdmdb: 144 return "ldmdb"; 145 case kLdmea: 146 return "ldmea"; 147 case kLdmed: 148 return "ldmed"; 149 case kLdmfa: 150 return "ldmfa"; 151 case kLdmfd: 152 return "ldmfd"; 153 case kLdmib: 154 return "ldmib"; 155 case kLdr: 156 return "ldr"; 157 case kLdrb: 158 return "ldrb"; 159 case kLdrd: 160 return "ldrd"; 161 case kLdrex: 162 return "ldrex"; 163 case kLdrexb: 164 return "ldrexb"; 165 case kLdrexd: 166 return "ldrexd"; 167 case kLdrexh: 168 return "ldrexh"; 169 case kLdrh: 170 return "ldrh"; 171 case kLdrsb: 172 return "ldrsb"; 173 case kLdrsh: 174 return "ldrsh"; 175 case kLsl: 176 return "lsl"; 177 case kLsls: 178 return "lsls"; 179 case kLsr: 180 return "lsr"; 181 case kLsrs: 182 return "lsrs"; 183 case kMla: 184 return "mla"; 185 case kMlas: 186 return "mlas"; 187 case kMls: 188 return "mls"; 189 case kMov: 190 return "mov"; 191 case kMovs: 192 return "movs"; 193 case kMovt: 194 return "movt"; 195 case kMovw: 196 return "movw"; 197 case kMrs: 198 return "mrs"; 199 case kMsr: 200 return "msr"; 201 case kMul: 202 return "mul"; 203 case kMuls: 204 return "muls"; 205 case kMvn: 206 return "mvn"; 207 case kMvns: 208 return "mvns"; 209 case kNop: 210 return "nop"; 211 case kOrn: 212 return "orn"; 213 case kOrns: 214 return "orns"; 215 case kOrr: 216 return "orr"; 217 case kOrrs: 218 return "orrs"; 219 case kPkhbt: 220 return "pkhbt"; 221 case kPkhtb: 222 return "pkhtb"; 223 case kPld: 224 return "pld"; 225 case kPldw: 226 return "pldw"; 227 case kPli: 228 return "pli"; 229 case kPop: 230 return "pop"; 231 case kPush: 232 return "push"; 233 case kQadd: 234 return "qadd"; 235 case kQadd16: 236 return "qadd16"; 237 case kQadd8: 238 return "qadd8"; 239 case kQasx: 240 return "qasx"; 241 case kQdadd: 242 return "qdadd"; 243 case kQdsub: 244 return "qdsub"; 245 case kQsax: 246 return "qsax"; 247 case kQsub: 248 return "qsub"; 249 case kQsub16: 250 return "qsub16"; 251 case kQsub8: 252 return "qsub8"; 253 case kRbit: 254 return "rbit"; 255 case kRev: 256 return "rev"; 257 case kRev16: 258 return "rev16"; 259 case kRevsh: 260 return "revsh"; 261 case kRor: 262 return "ror"; 263 case kRors: 264 return "rors"; 265 case kRrx: 266 return "rrx"; 267 case kRrxs: 268 return "rrxs"; 269 case kRsb: 270 return "rsb"; 271 case kRsbs: 272 return "rsbs"; 273 case kRsc: 274 return "rsc"; 275 case kRscs: 276 return "rscs"; 277 case kSadd16: 278 return "sadd16"; 279 case kSadd8: 280 return "sadd8"; 281 case kSasx: 282 return "sasx"; 283 case kSbc: 284 return "sbc"; 285 case kSbcs: 286 return "sbcs"; 287 case kSbfx: 288 return "sbfx"; 289 case kSdiv: 290 return "sdiv"; 291 case kSel: 292 return "sel"; 293 case kShadd16: 294 return "shadd16"; 295 case kShadd8: 296 return "shadd8"; 297 case kShasx: 298 return "shasx"; 299 case kShsax: 300 return "shsax"; 301 case kShsub16: 302 return "shsub16"; 303 case kShsub8: 304 return "shsub8"; 305 case kSmlabb: 306 return "smlabb"; 307 case kSmlabt: 308 return "smlabt"; 309 case kSmlad: 310 return "smlad"; 311 case kSmladx: 312 return "smladx"; 313 case kSmlal: 314 return "smlal"; 315 case kSmlalbb: 316 return "smlalbb"; 317 case kSmlalbt: 318 return "smlalbt"; 319 case kSmlald: 320 return "smlald"; 321 case kSmlaldx: 322 return "smlaldx"; 323 case kSmlals: 324 return "smlals"; 325 case kSmlaltb: 326 return "smlaltb"; 327 case kSmlaltt: 328 return "smlaltt"; 329 case kSmlatb: 330 return "smlatb"; 331 case kSmlatt: 332 return "smlatt"; 333 case kSmlawb: 334 return "smlawb"; 335 case kSmlawt: 336 return "smlawt"; 337 case kSmlsd: 338 return "smlsd"; 339 case kSmlsdx: 340 return "smlsdx"; 341 case kSmlsld: 342 return "smlsld"; 343 case kSmlsldx: 344 return "smlsldx"; 345 case kSmmla: 346 return "smmla"; 347 case kSmmlar: 348 return "smmlar"; 349 case kSmmls: 350 return "smmls"; 351 case kSmmlsr: 352 return "smmlsr"; 353 case kSmmul: 354 return "smmul"; 355 case kSmmulr: 356 return "smmulr"; 357 case kSmuad: 358 return "smuad"; 359 case kSmuadx: 360 return "smuadx"; 361 case kSmulbb: 362 return "smulbb"; 363 case kSmulbt: 364 return "smulbt"; 365 case kSmull: 366 return "smull"; 367 case kSmulls: 368 return "smulls"; 369 case kSmultb: 370 return "smultb"; 371 case kSmultt: 372 return "smultt"; 373 case kSmulwb: 374 return "smulwb"; 375 case kSmulwt: 376 return "smulwt"; 377 case kSmusd: 378 return "smusd"; 379 case kSmusdx: 380 return "smusdx"; 381 case kSsat: 382 return "ssat"; 383 case kSsat16: 384 return "ssat16"; 385 case kSsax: 386 return "ssax"; 387 case kSsub16: 388 return "ssub16"; 389 case kSsub8: 390 return "ssub8"; 391 case kStl: 392 return "stl"; 393 case kStlb: 394 return "stlb"; 395 case kStlex: 396 return "stlex"; 397 case kStlexb: 398 return "stlexb"; 399 case kStlexd: 400 return "stlexd"; 401 case kStlexh: 402 return "stlexh"; 403 case kStlh: 404 return "stlh"; 405 case kStm: 406 return "stm"; 407 case kStmda: 408 return "stmda"; 409 case kStmdb: 410 return "stmdb"; 411 case kStmea: 412 return "stmea"; 413 case kStmed: 414 return "stmed"; 415 case kStmfa: 416 return "stmfa"; 417 case kStmfd: 418 return "stmfd"; 419 case kStmib: 420 return "stmib"; 421 case kStr: 422 return "str"; 423 case kStrb: 424 return "strb"; 425 case kStrd: 426 return "strd"; 427 case kStrex: 428 return "strex"; 429 case kStrexb: 430 return "strexb"; 431 case kStrexd: 432 return "strexd"; 433 case kStrexh: 434 return "strexh"; 435 case kStrh: 436 return "strh"; 437 case kSub: 438 return "sub"; 439 case kSubs: 440 return "subs"; 441 case kSubw: 442 return "subw"; 443 case kSvc: 444 return "svc"; 445 case kSxtab: 446 return "sxtab"; 447 case kSxtab16: 448 return "sxtab16"; 449 case kSxtah: 450 return "sxtah"; 451 case kSxtb: 452 return "sxtb"; 453 case kSxtb16: 454 return "sxtb16"; 455 case kSxth: 456 return "sxth"; 457 case kTbb: 458 return "tbb"; 459 case kTbh: 460 return "tbh"; 461 case kTeq: 462 return "teq"; 463 case kTst: 464 return "tst"; 465 case kUadd16: 466 return "uadd16"; 467 case kUadd8: 468 return "uadd8"; 469 case kUasx: 470 return "uasx"; 471 case kUbfx: 472 return "ubfx"; 473 case kUdf: 474 return "udf"; 475 case kUdiv: 476 return "udiv"; 477 case kUhadd16: 478 return "uhadd16"; 479 case kUhadd8: 480 return "uhadd8"; 481 case kUhasx: 482 return "uhasx"; 483 case kUhsax: 484 return "uhsax"; 485 case kUhsub16: 486 return "uhsub16"; 487 case kUhsub8: 488 return "uhsub8"; 489 case kUmaal: 490 return "umaal"; 491 case kUmlal: 492 return "umlal"; 493 case kUmlals: 494 return "umlals"; 495 case kUmull: 496 return "umull"; 497 case kUmulls: 498 return "umulls"; 499 case kUqadd16: 500 return "uqadd16"; 501 case kUqadd8: 502 return "uqadd8"; 503 case kUqasx: 504 return "uqasx"; 505 case kUqsax: 506 return "uqsax"; 507 case kUqsub16: 508 return "uqsub16"; 509 case kUqsub8: 510 return "uqsub8"; 511 case kUsad8: 512 return "usad8"; 513 case kUsada8: 514 return "usada8"; 515 case kUsat: 516 return "usat"; 517 case kUsat16: 518 return "usat16"; 519 case kUsax: 520 return "usax"; 521 case kUsub16: 522 return "usub16"; 523 case kUsub8: 524 return "usub8"; 525 case kUxtab: 526 return "uxtab"; 527 case kUxtab16: 528 return "uxtab16"; 529 case kUxtah: 530 return "uxtah"; 531 case kUxtb: 532 return "uxtb"; 533 case kUxtb16: 534 return "uxtb16"; 535 case kUxth: 536 return "uxth"; 537 case kVaba: 538 return "vaba"; 539 case kVabal: 540 return "vabal"; 541 case kVabd: 542 return "vabd"; 543 case kVabdl: 544 return "vabdl"; 545 case kVabs: 546 return "vabs"; 547 case kVacge: 548 return "vacge"; 549 case kVacgt: 550 return "vacgt"; 551 case kVacle: 552 return "vacle"; 553 case kVaclt: 554 return "vaclt"; 555 case kVadd: 556 return "vadd"; 557 case kVaddhn: 558 return "vaddhn"; 559 case kVaddl: 560 return "vaddl"; 561 case kVaddw: 562 return "vaddw"; 563 case kVand: 564 return "vand"; 565 case kVbic: 566 return "vbic"; 567 case kVbif: 568 return "vbif"; 569 case kVbit: 570 return "vbit"; 571 case kVbsl: 572 return "vbsl"; 573 case kVceq: 574 return "vceq"; 575 case kVcge: 576 return "vcge"; 577 case kVcgt: 578 return "vcgt"; 579 case kVcle: 580 return "vcle"; 581 case kVcls: 582 return "vcls"; 583 case kVclt: 584 return "vclt"; 585 case kVclz: 586 return "vclz"; 587 case kVcmp: 588 return "vcmp"; 589 case kVcmpe: 590 return "vcmpe"; 591 case kVcnt: 592 return "vcnt"; 593 case kVcvt: 594 return "vcvt"; 595 case kVcvta: 596 return "vcvta"; 597 case kVcvtb: 598 return "vcvtb"; 599 case kVcvtm: 600 return "vcvtm"; 601 case kVcvtn: 602 return "vcvtn"; 603 case kVcvtp: 604 return "vcvtp"; 605 case kVcvtr: 606 return "vcvtr"; 607 case kVcvtt: 608 return "vcvtt"; 609 case kVdiv: 610 return "vdiv"; 611 case kVdup: 612 return "vdup"; 613 case kVeor: 614 return "veor"; 615 case kVext: 616 return "vext"; 617 case kVfma: 618 return "vfma"; 619 case kVfms: 620 return "vfms"; 621 case kVfnma: 622 return "vfnma"; 623 case kVfnms: 624 return "vfnms"; 625 case kVhadd: 626 return "vhadd"; 627 case kVhsub: 628 return "vhsub"; 629 case kVld1: 630 return "vld1"; 631 case kVld2: 632 return "vld2"; 633 case kVld3: 634 return "vld3"; 635 case kVld4: 636 return "vld4"; 637 case kVldm: 638 return "vldm"; 639 case kVldmdb: 640 return "vldmdb"; 641 case kVldmia: 642 return "vldmia"; 643 case kVldr: 644 return "vldr"; 645 case kVmax: 646 return "vmax"; 647 case kVmaxnm: 648 return "vmaxnm"; 649 case kVmin: 650 return "vmin"; 651 case kVminnm: 652 return "vminnm"; 653 case kVmla: 654 return "vmla"; 655 case kVmlal: 656 return "vmlal"; 657 case kVmls: 658 return "vmls"; 659 case kVmlsl: 660 return "vmlsl"; 661 case kVmov: 662 return "vmov"; 663 case kVmovl: 664 return "vmovl"; 665 case kVmovn: 666 return "vmovn"; 667 case kVmrs: 668 return "vmrs"; 669 case kVmsr: 670 return "vmsr"; 671 case kVmul: 672 return "vmul"; 673 case kVmull: 674 return "vmull"; 675 case kVmvn: 676 return "vmvn"; 677 case kVneg: 678 return "vneg"; 679 case kVnmla: 680 return "vnmla"; 681 case kVnmls: 682 return "vnmls"; 683 case kVnmul: 684 return "vnmul"; 685 case kVorn: 686 return "vorn"; 687 case kVorr: 688 return "vorr"; 689 case kVpadal: 690 return "vpadal"; 691 case kVpadd: 692 return "vpadd"; 693 case kVpaddl: 694 return "vpaddl"; 695 case kVpmax: 696 return "vpmax"; 697 case kVpmin: 698 return "vpmin"; 699 case kVpop: 700 return "vpop"; 701 case kVpush: 702 return "vpush"; 703 case kVqabs: 704 return "vqabs"; 705 case kVqadd: 706 return "vqadd"; 707 case kVqdmlal: 708 return "vqdmlal"; 709 case kVqdmlsl: 710 return "vqdmlsl"; 711 case kVqdmulh: 712 return "vqdmulh"; 713 case kVqdmull: 714 return "vqdmull"; 715 case kVqmovn: 716 return "vqmovn"; 717 case kVqmovun: 718 return "vqmovun"; 719 case kVqneg: 720 return "vqneg"; 721 case kVqrdmulh: 722 return "vqrdmulh"; 723 case kVqrshl: 724 return "vqrshl"; 725 case kVqrshrn: 726 return "vqrshrn"; 727 case kVqrshrun: 728 return "vqrshrun"; 729 case kVqshl: 730 return "vqshl"; 731 case kVqshlu: 732 return "vqshlu"; 733 case kVqshrn: 734 return "vqshrn"; 735 case kVqshrun: 736 return "vqshrun"; 737 case kVqsub: 738 return "vqsub"; 739 case kVraddhn: 740 return "vraddhn"; 741 case kVrecpe: 742 return "vrecpe"; 743 case kVrecps: 744 return "vrecps"; 745 case kVrev16: 746 return "vrev16"; 747 case kVrev32: 748 return "vrev32"; 749 case kVrev64: 750 return "vrev64"; 751 case kVrhadd: 752 return "vrhadd"; 753 case kVrinta: 754 return "vrinta"; 755 case kVrintm: 756 return "vrintm"; 757 case kVrintn: 758 return "vrintn"; 759 case kVrintp: 760 return "vrintp"; 761 case kVrintr: 762 return "vrintr"; 763 case kVrintx: 764 return "vrintx"; 765 case kVrintz: 766 return "vrintz"; 767 case kVrshl: 768 return "vrshl"; 769 case kVrshr: 770 return "vrshr"; 771 case kVrshrn: 772 return "vrshrn"; 773 case kVrsqrte: 774 return "vrsqrte"; 775 case kVrsqrts: 776 return "vrsqrts"; 777 case kVrsra: 778 return "vrsra"; 779 case kVrsubhn: 780 return "vrsubhn"; 781 case kVseleq: 782 return "vseleq"; 783 case kVselge: 784 return "vselge"; 785 case kVselgt: 786 return "vselgt"; 787 case kVselvs: 788 return "vselvs"; 789 case kVshl: 790 return "vshl"; 791 case kVshll: 792 return "vshll"; 793 case kVshr: 794 return "vshr"; 795 case kVshrn: 796 return "vshrn"; 797 case kVsli: 798 return "vsli"; 799 case kVsqrt: 800 return "vsqrt"; 801 case kVsra: 802 return "vsra"; 803 case kVsri: 804 return "vsri"; 805 case kVst1: 806 return "vst1"; 807 case kVst2: 808 return "vst2"; 809 case kVst3: 810 return "vst3"; 811 case kVst4: 812 return "vst4"; 813 case kVstm: 814 return "vstm"; 815 case kVstmdb: 816 return "vstmdb"; 817 case kVstmia: 818 return "vstmia"; 819 case kVstr: 820 return "vstr"; 821 case kVsub: 822 return "vsub"; 823 case kVsubhn: 824 return "vsubhn"; 825 case kVsubl: 826 return "vsubl"; 827 case kVsubw: 828 return "vsubw"; 829 case kVswp: 830 return "vswp"; 831 case kVtbl: 832 return "vtbl"; 833 case kVtbx: 834 return "vtbx"; 835 case kVtrn: 836 return "vtrn"; 837 case kVtst: 838 return "vtst"; 839 case kVuzp: 840 return "vuzp"; 841 case kVzip: 842 return "vzip"; 843 case kYield: 844 return "yield"; 845 case kUndefInstructionType: 846 VIXL_UNREACHABLE(); 847 return ""; 848 } 849 VIXL_UNREACHABLE(); 850 return ""; 851} // NOLINT(readability/fn_size) 852// End of generated code. 853 854} // namespace aarch32 855} // namespace vixl 856