diff options
author | 2023-10-10 14:33:42 +0000 | |
---|---|---|
committer | 2023-10-10 14:33:42 +0000 | |
commit | af1a266670d040d2f4083ff309d732d648afba2a (patch) | |
tree | 2fc46203448ddcc6f81546d379abfaeb323575e9 /capstone/arch/TMS320C64x/TMS320C64xGenAsmWriter.inc | |
parent | e02cda008591317b1625707ff8e115a4841aa889 (diff) |
Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec
Diffstat (limited to 'capstone/arch/TMS320C64x/TMS320C64xGenAsmWriter.inc')
-rw-r--r-- | capstone/arch/TMS320C64x/TMS320C64xGenAsmWriter.inc | 684 |
1 files changed, 684 insertions, 0 deletions
diff --git a/capstone/arch/TMS320C64x/TMS320C64xGenAsmWriter.inc b/capstone/arch/TMS320C64x/TMS320C64xGenAsmWriter.inc new file mode 100644 index 000000000..a5242dae9 --- /dev/null +++ b/capstone/arch/TMS320C64x/TMS320C64xGenAsmWriter.inc @@ -0,0 +1,684 @@ +/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ +|* *| +|*Assembly Writer Source Fragment *| +|* *| +|* Automatically generated file, do not edit! *| +|* *| +\*===----------------------------------------------------------------------===*/ + +#include <stdio.h> + +/// printInstruction - This method is automatically generated by tablegen +/// from the instruction set description. +static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI) { + static const uint32_t OpInfo[] = { + 0U, // PHI + 0U, // INLINEASM + 0U, // CFI_INSTRUCTION + 0U, // EH_LABEL + 0U, // GC_LABEL + 0U, // KILL + 0U, // EXTRACT_SUBREG + 0U, // INSERT_SUBREG + 0U, // IMPLICIT_DEF + 0U, // SUBREG_TO_REG + 0U, // COPY_TO_REGCLASS + 882U, // DBG_VALUE + 0U, // REG_SEQUENCE + 0U, // COPY + 875U, // BUNDLE + 904U, // LIFETIME_START + 862U, // LIFETIME_END + 0U, // STACKMAP + 0U, // PATCHPOINT + 0U, // LOAD_STACK_GUARD + 0U, // STATEPOINT + 0U, // FRAME_ALLOC + 1126U, // ABS2_l2_rr + 10847U, // ABS_l1_pp + 1631U, // ABS_l1_rr + 85006U, // ADD2_d2_rrr + 85006U, // ADD2_l1_rrr_x2 + 85006U, // ADD2_s1_rrr + 85171U, // ADD4_l1_rrr_x2 + 91479U, // ADDAB_d1_rir + 91479U, // ADDAB_d1_rrr + 91541U, // ADDAD_d1_rir + 91541U, // ADDAD_d1_rrr + 91577U, // ADDAH_d1_rir + 91577U, // ADDAH_d1_rrr + 91937U, // ADDAW_d1_rir + 91937U, // ADDAW_d1_rrr + 132488U, // ADDKPC_s3_iir + 1518U, // ADDK_s2_ir + 233140U, // ADDU_l1_rpp + 216756U, // ADDU_l1_rrp_x2 + 91555U, // ADD_d1_rir + 91555U, // ADD_d1_rrr + 91555U, // ADD_d2_rir + 85411U, // ADD_d2_rrr + 232867U, // ADD_l1_ipp + 85411U, // ADD_l1_irr + 232867U, // ADD_l1_rpp + 216483U, // ADD_l1_rrp_x2 + 85411U, // ADD_l1_rrr_x2 + 85411U, // ADD_s1_irr + 85411U, // ADD_s1_rrr + 85542U, // ANDN_d2_rrr + 85542U, // ANDN_l1_rrr_x2 + 85542U, // ANDN_s4_rrr + 85416U, // AND_d2_rir + 85416U, // AND_d2_rrr + 85416U, // AND_l1_irr + 85416U, // AND_l1_rrr_x2 + 85416U, // AND_s1_irr + 85416U, // AND_s1_rrr + 85019U, // AVG2_m1_rrr + 85232U, // AVGU4_m1_rrr + 1410U, // BDEC_s8_ir + 1196U, // BITC4_m2_rr + 307756U, // BNOP_s10_ri + 307756U, // BNOP_s9_ii + 1654U, // BPOS_s8_ir + 53588U, // B_s5_i + 53588U, // B_s6_r + 892U, // B_s7_irp + 898U, // B_s7_nrp + 353870U, // CLR_s15_riir + 91726U, // CLR_s1_rrr + 85080U, // CMPEQ2_s1_rrr + 85207U, // CMPEQ4_s1_rrr + 101938U, // CMPEQ_l1_ipr + 85554U, // CMPEQ_l1_irr + 101938U, // CMPEQ_l1_rpr + 85554U, // CMPEQ_l1_rrr_x2 + 85109U, // CMPGT2_s1_rrr + 85298U, // CMPGTU4_s1_rrr + 102037U, // CMPGT_l1_ipr + 85653U, // CMPGT_l1_irr + 102037U, // CMPGT_l1_rpr + 85653U, // CMPGT_l1_rrr_x2 + 102150U, // CMPLTU_l1_ipr + 85766U, // CMPLTU_l1_irr + 102150U, // CMPLTU_l1_rpr + 85766U, // CMPLTU_l1_rrr_x2 + 102044U, // CMPLT_l1_ipr + 85660U, // CMPLT_l1_irr + 102044U, // CMPLT_l1_rpr + 85660U, // CMPLT_l1_rrr_x2 + 1529U, // DEAL_m2_rr + 216145U, // DOTP2_m1_rrp + 85073U, // DOTP2_m1_rrr + 85065U, // DOTPN2_m1_rrr + 85124U, // DOTPNRSU2_m1_rrr + 85135U, // DOTPRSU2_m1_rrr + 85281U, // DOTPSU4_m1_rrr + 85273U, // DOTPU4_m1_rrr + 354062U, // EXTU_s15_riir + 91918U, // EXTU_s1_rrr + 353955U, // EXT_s15_riir + 91811U, // EXT_s1_rrr + 102142U, // GMPGTU_l1_ipr + 85758U, // GMPGTU_l1_irr + 102142U, // GMPGTU_l1_rpr + 85758U, // GMPGTU_l1_rrr_x2 + 85321U, // GMPY4_m1_rrr + 5800U, // LDBU_d5_mr + 6824U, // LDBU_d6_mr + 5470U, // LDB_d5_mr + 6494U, // LDB_d6_mr + 14120U, // LDDW_d7_mp + 5818U, // LDHU_d5_mr + 6842U, // LDHU_d6_mr + 5568U, // LDH_d5_mr + 6592U, // LDH_d6_mr + 14131U, // LDNDW_d8_mp + 5959U, // LDNW_d5_mr + 5934U, // LDW_d5_mr + 6958U, // LDW_d6_mr + 85404U, // LMBD_l1_irr + 85404U, // LMBD_l1_rrr_x2 + 85145U, // MAX2_l1_rrr_x2 + 85307U, // MAXU4_l1_rrr_x2 + 85059U, // MIN2_l1_rrr_x2 + 85266U, // MINU4_l1_rrr_x2 + 216224U, // MPY2_m1_rrp + 85566U, // MPYHIR_m1_rrr + 216544U, // MPYHI_m1_rrp + 85720U, // MPYHLU_m4_rrr + 85516U, // MPYHL_m4_rrr + 85728U, // MPYHSLU_m4_rrr + 85743U, // MPYHSU_m4_rrr + 85613U, // MPYHULS_m4_rrr + 85628U, // MPYHUS_m4_rrr + 85713U, // MPYHU_m4_rrr + 85466U, // MPYH_m4_rrr + 85696U, // MPYLHU_m4_rrr + 85453U, // MPYLH_m4_rrr + 85574U, // MPYLIR_m1_rrr + 216551U, // MPYLI_m1_rrp + 85704U, // MPYLSHU_m4_rrr + 85604U, // MPYLUHS_m4_rrr + 216362U, // MPYSU4_m1_rrp + 85751U, // MPYSU_m4_irr + 85751U, // MPYSU_m4_rrr + 216386U, // MPYU4_m1_rrp + 85636U, // MPYUS_m4_rrr + 85780U, // MPYU_m4_rrr + 85849U, // MPY_m4_irr + 85849U, // MPY_m4_rrr + 1424U, // MVC_s1_rr + 1424U, // MVC_s1_rr2 + 1453U, // MVD_m2_rr + 1477U, // MVKLH_s12_ir + 1524U, // MVKL_s12_ir + 1524U, // MVK_d1_rr + 1524U, // MVK_l2_ir + 53249U, // NOP_n + 2592U, // NORM_l1_pr + 1568U, // NORM_l1_rr + 85588U, // OR_d2_rir + 85588U, // OR_d2_rrr + 85588U, // OR_l1_irr + 85588U, // OR_l1_rrr_x2 + 85588U, // OR_s1_irr + 85588U, // OR_s1_rrr + 85043U, // PACK2_l1_rrr_x2 + 85043U, // PACK2_s4_rrr + 85025U, // PACKH2_l1_rrr_x2 + 85025U, // PACKH2_s1_rrr + 85184U, // PACKH4_l1_rrr_x2 + 85050U, // PACKHL2_l1_rrr_x2 + 85050U, // PACKHL2_s1_rrr + 85192U, // PACKL4_l1_rrr_x2 + 85033U, // PACKLH2_l1_rrr_x2 + 85033U, // PACKLH2_s1_rrr + 91667U, // ROTL_m1_rir + 91667U, // ROTL_m1_rrr + 85005U, // SADD2_s4_rrr + 85224U, // SADDU4_s4_rrr + 85100U, // SADDUS2_s4_rrr + 232866U, // SADD_l1_ipp + 85410U, // SADD_l1_irr + 232866U, // SADD_l1_rpp + 85410U, // SADD_l1_rrr_x2 + 85410U, // SADD_s1_rrr + 2699U, // SAT_l1_pr + 353936U, // SET_s15_riir + 91792U, // SET_s1_rrr + 1535U, // SHFL_m2_rr + 85347U, // SHLMB_l1_rrr_x2 + 85347U, // SHLMB_s4_rrr + 223750U, // SHL_s1_pip + 223750U, // SHL_s1_prp + 222726U, // SHL_s1_rip + 91654U, // SHL_s1_rir + 222726U, // SHL_s1_rrp + 91654U, // SHL_s1_rrr + 91232U, // SHR2_s1_rir + 91232U, // SHR2_s4_rrr + 85354U, // SHRMB_l1_rrr_x2 + 85354U, // SHRMB_s4_rrr + 91261U, // SHRU2_s1_rir + 91261U, // SHRU2_s4_rrr + 223977U, // SHRU_s1_pip + 223977U, // SHRU_s1_prp + 91881U, // SHRU_s1_rir + 91881U, // SHRU_s1_rrr + 223801U, // SHR_s1_pip + 223801U, // SHR_s1_prp + 91705U, // SHR_s1_rir + 91705U, // SHR_s1_rrr + 216223U, // SMPY2_m1_rrp + 85515U, // SMPYHL_m4_rrr + 85465U, // SMPYH_m4_rrr + 85452U, // SMPYLH_m4_rrr + 85848U, // SMPY_m4_rrr + 85042U, // SPACK2_s4_rrr + 85248U, // SPACKU4_s4_rrr + 91653U, // SSHL_s1_rir + 91653U, // SSHL_s1_rrr + 85529U, // SSHVL_m1_rrr + 85592U, // SSHVR_m1_rrr + 232822U, // SSUB_l1_ipp + 85366U, // SSUB_l1_irr + 85366U, // SSUB_l1_rrr_x1 + 85366U, // SSUB_l1_rrr_x2 + 438641U, // STB_d5_rm + 504177U, // STB_d6_rm + 8001U, // STDW_d7_pm + 438740U, // STH_d5_rm + 504276U, // STH_d6_rm + 7994U, // STNDW_d8_pm + 439117U, // STNW_d5_rm + 439123U, // STW_d5_rm + 504659U, // STW_d6_rm + 84999U, // SUB2_d2_rrr + 84999U, // SUB2_l1_rrr_x2 + 84999U, // SUB2_s1_rrr + 85158U, // SUB4_l1_rrr_x2 + 85215U, // SUBABS4_l1_rrr_x2 + 91472U, // SUBAB_d1_rir + 91472U, // SUBAB_d1_rrr + 91472U, // SUBAH_d1_rir + 91570U, // SUBAH_d1_rrr + 91472U, // SUBAW_d1_rir + 91930U, // SUBAW_d1_rrr + 85372U, // SUBC_l1_rrr_x2 + 216750U, // SUBU_l1_rrp_x1 + 216750U, // SUBU_l1_rrp_x2 + 91511U, // SUB_d1_rir + 91511U, // SUB_d1_rrr + 85367U, // SUB_d2_rrr + 232823U, // SUB_l1_ipp + 85367U, // SUB_l1_irr + 216439U, // SUB_l1_rrp_x1 + 216439U, // SUB_l1_rrp_x2 + 85367U, // SUB_l1_rrr_x1 + 85367U, // SUB_l1_rrr_x2 + 85367U, // SUB_s1_irr + 85367U, // SUB_s1_rrr + 91511U, // SUB_s4_rrr + 1232U, // SWAP4_l2_rr + 1271U, // UNPKHU4_l2_rr + 1271U, // UNPKHU4_s14_rr + 1289U, // UNPKLU4_l2_rr + 1289U, // UNPKLU4_s14_rr + 85587U, // XOR_d2_rir + 85587U, // XOR_d2_rrr + 85587U, // XOR_l1_irr + 85587U, // XOR_l1_rrr_x2 + 85587U, // XOR_s1_irr + 85587U, // XOR_s1_rrr + 1044U, // XPND2_m2_rr + 1209U, // XPND4_m2_rr + 0U + }; + + static const char AsmStrs[] = { + /* 0 */ 'n', 'o', 'p', 9, 9, 0, + /* 6 */ 's', 'u', 'b', '2', 9, 0, + /* 12 */ 's', 'a', 'd', 'd', '2', 9, 0, + /* 19 */ 'x', 'p', 'n', 'd', '2', 9, 0, + /* 26 */ 'a', 'v', 'g', '2', 9, 0, + /* 32 */ 'p', 'a', 'c', 'k', 'h', '2', 9, 0, + /* 40 */ 'p', 'a', 'c', 'k', 'l', 'h', '2', 9, 0, + /* 49 */ 's', 'p', 'a', 'c', 'k', '2', 9, 0, + /* 57 */ 'p', 'a', 'c', 'k', 'h', 'l', '2', 9, 0, + /* 66 */ 'm', 'i', 'n', '2', 9, 0, + /* 72 */ 'd', 'o', 't', 'p', 'n', '2', 9, 0, + /* 80 */ 'd', 'o', 't', 'p', '2', 9, 0, + /* 87 */ 'c', 'm', 'p', 'e', 'q', '2', 9, 0, + /* 95 */ 's', 'h', 'r', '2', 9, 0, + /* 101 */ 'a', 'b', 's', '2', 9, 0, + /* 107 */ 's', 'a', 'd', 'd', 'u', 's', '2', 9, 0, + /* 116 */ 'c', 'm', 'p', 'g', 't', '2', 9, 0, + /* 124 */ 's', 'h', 'r', 'u', '2', 9, 0, + /* 131 */ 'd', 'o', 't', 'p', 'n', 'r', 's', 'u', '2', 9, 0, + /* 142 */ 'd', 'o', 't', 'p', 'r', 's', 'u', '2', 9, 0, + /* 152 */ 'm', 'a', 'x', '2', 9, 0, + /* 158 */ 's', 'm', 'p', 'y', '2', 9, 0, + /* 165 */ 's', 'u', 'b', '4', 9, 0, + /* 171 */ 'b', 'i', 't', 'c', '4', 9, 0, + /* 178 */ 'a', 'd', 'd', '4', 9, 0, + /* 184 */ 'x', 'p', 'n', 'd', '4', 9, 0, + /* 191 */ 'p', 'a', 'c', 'k', 'h', '4', 9, 0, + /* 199 */ 'p', 'a', 'c', 'k', 'l', '4', 9, 0, + /* 207 */ 's', 'w', 'a', 'p', '4', 9, 0, + /* 214 */ 'c', 'm', 'p', 'e', 'q', '4', 9, 0, + /* 222 */ 's', 'u', 'b', 'a', 'b', 's', '4', 9, 0, + /* 231 */ 's', 'a', 'd', 'd', 'u', '4', 9, 0, + /* 239 */ 'a', 'v', 'g', 'u', '4', 9, 0, + /* 246 */ 'u', 'n', 'p', 'k', 'h', 'u', '4', 9, 0, + /* 255 */ 's', 'p', 'a', 'c', 'k', 'u', '4', 9, 0, + /* 264 */ 'u', 'n', 'p', 'k', 'l', 'u', '4', 9, 0, + /* 273 */ 'm', 'i', 'n', 'u', '4', 9, 0, + /* 280 */ 'd', 'o', 't', 'p', 'u', '4', 9, 0, + /* 288 */ 'd', 'o', 't', 'p', 's', 'u', '4', 9, 0, + /* 297 */ 'm', 'p', 'y', 's', 'u', '4', 9, 0, + /* 305 */ 'c', 'm', 'p', 'g', 't', 'u', '4', 9, 0, + /* 314 */ 'm', 'a', 'x', 'u', '4', 9, 0, + /* 321 */ 'm', 'p', 'y', 'u', '4', 9, 0, + /* 328 */ 'g', 'm', 'p', 'y', '4', 9, 0, + /* 335 */ 's', 'u', 'b', 'a', 'b', 9, 0, + /* 342 */ 'a', 'd', 'd', 'a', 'b', 9, 0, + /* 349 */ 'l', 'd', 'b', 9, 0, + /* 354 */ 's', 'h', 'l', 'm', 'b', 9, 0, + /* 361 */ 's', 'h', 'r', 'm', 'b', 9, 0, + /* 368 */ 's', 't', 'b', 9, 0, + /* 373 */ 's', 's', 'u', 'b', 9, 0, + /* 379 */ 's', 'u', 'b', 'c', 9, 0, + /* 385 */ 'b', 'd', 'e', 'c', 9, 0, + /* 391 */ 'a', 'd', 'd', 'k', 'p', 'c', 9, 0, + /* 399 */ 'm', 'v', 'c', 9, 0, + /* 404 */ 'a', 'd', 'd', 'a', 'd', 9, 0, + /* 411 */ 'l', 'm', 'b', 'd', 9, 0, + /* 417 */ 's', 'a', 'd', 'd', 9, 0, + /* 423 */ 'a', 'n', 'd', 9, 0, + /* 428 */ 'm', 'v', 'd', 9, 0, + /* 433 */ 's', 'u', 'b', 'a', 'h', 9, 0, + /* 440 */ 'a', 'd', 'd', 'a', 'h', 9, 0, + /* 447 */ 'l', 'd', 'h', 9, 0, + /* 452 */ 'm', 'v', 'k', 'l', 'h', 9, 0, + /* 459 */ 's', 'm', 'p', 'y', 'l', 'h', 9, 0, + /* 467 */ 's', 't', 'h', 9, 0, + /* 472 */ 's', 'm', 'p', 'y', 'h', 9, 0, + /* 479 */ 'm', 'p', 'y', 'h', 'i', 9, 0, + /* 486 */ 'm', 'p', 'y', 'l', 'i', 9, 0, + /* 493 */ 'a', 'd', 'd', 'k', 9, 0, + /* 499 */ 'm', 'v', 'k', 9, 0, + /* 504 */ 'd', 'e', 'a', 'l', 9, 0, + /* 510 */ 's', 'h', 'f', 'l', 9, 0, + /* 516 */ 's', 's', 'h', 'l', 9, 0, + /* 522 */ 's', 'm', 'p', 'y', 'h', 'l', 9, 0, + /* 530 */ 'r', 'o', 't', 'l', 9, 0, + /* 536 */ 's', 's', 'h', 'v', 'l', 9, 0, + /* 543 */ 'n', 'o', 'r', 'm', 9, 0, + /* 549 */ 'a', 'n', 'd', 'n', 9, 0, + /* 555 */ 'b', 'n', 'o', 'p', 9, 0, + /* 561 */ 'c', 'm', 'p', 'e', 'q', 9, 0, + /* 568 */ 's', 'h', 'r', 9, 0, + /* 573 */ 'm', 'p', 'y', 'h', 'i', 'r', 9, 0, + /* 581 */ 'm', 'p', 'y', 'l', 'i', 'r', 9, 0, + /* 589 */ 'c', 'l', 'r', 9, 0, + /* 594 */ 'x', 'o', 'r', 9, 0, + /* 599 */ 's', 's', 'h', 'v', 'r', 9, 0, + /* 606 */ 'a', 'b', 's', 9, 0, + /* 611 */ 'm', 'p', 'y', 'l', 'u', 'h', 's', 9, 0, + /* 620 */ 'm', 'p', 'y', 'h', 'u', 'l', 's', 9, 0, + /* 629 */ 'b', 'p', 'o', 's', 9, 0, + /* 635 */ 'm', 'p', 'y', 'h', 'u', 's', 9, 0, + /* 643 */ 'm', 'p', 'y', 'u', 's', 9, 0, + /* 650 */ 's', 'a', 't', 9, 0, + /* 655 */ 's', 'e', 't', 9, 0, + /* 660 */ 'c', 'm', 'p', 'g', 't', 9, 0, + /* 667 */ 'c', 'm', 'p', 'l', 't', 9, 0, + /* 674 */ 'e', 'x', 't', 9, 0, + /* 679 */ 'l', 'd', 'b', 'u', 9, 0, + /* 685 */ 's', 'u', 'b', 'u', 9, 0, + /* 691 */ 'a', 'd', 'd', 'u', 9, 0, + /* 697 */ 'l', 'd', 'h', 'u', 9, 0, + /* 703 */ 'm', 'p', 'y', 'l', 'h', 'u', 9, 0, + /* 711 */ 'm', 'p', 'y', 'l', 's', 'h', 'u', 9, 0, + /* 720 */ 'm', 'p', 'y', 'h', 'u', 9, 0, + /* 727 */ 'm', 'p', 'y', 'h', 'l', 'u', 9, 0, + /* 735 */ 'm', 'p', 'y', 'h', 's', 'l', 'u', 9, 0, + /* 744 */ 's', 'h', 'r', 'u', 9, 0, + /* 750 */ 'm', 'p', 'y', 'h', 's', 'u', 9, 0, + /* 758 */ 'm', 'p', 'y', 's', 'u', 9, 0, + /* 765 */ 'c', 'm', 'p', 'g', 't', 'u', 9, 0, + /* 773 */ 'c', 'm', 'p', 'l', 't', 'u', 9, 0, + /* 781 */ 'e', 'x', 't', 'u', 9, 0, + /* 787 */ 'm', 'p', 'y', 'u', 9, 0, + /* 793 */ 's', 'u', 'b', 'a', 'w', 9, 0, + /* 800 */ 'a', 'd', 'd', 'a', 'w', 9, 0, + /* 807 */ 'l', 'd', 'd', 'w', 9, 0, + /* 813 */ 'l', 'd', 'w', 9, 0, + /* 818 */ 'l', 'd', 'n', 'd', 'w', 9, 0, + /* 825 */ 's', 't', 'n', 'd', 'w', 9, 0, + /* 832 */ 's', 't', 'd', 'w', 9, 0, + /* 838 */ 'l', 'd', 'n', 'w', 9, 0, + /* 844 */ 's', 't', 'n', 'w', 9, 0, + /* 850 */ 's', 't', 'w', 9, 0, + /* 855 */ 's', 'm', 'p', 'y', 9, 0, + /* 861 */ 'l', 'i', 'f', 'e', 't', 'i', 'm', 'e', '_', 'e', 'n', 'd', 0, + /* 874 */ 'b', 'u', 'n', 'd', 'l', 'e', 0, + /* 881 */ 'd', 'b', 'g', '_', 'v', 'a', 'l', 'u', 'e', 0, + /* 891 */ 'b', 9, 'i', 'r', 'p', 0, + /* 897 */ 'b', 9, 'n', 'r', 'p', 0, + /* 903 */ 'l', 'i', 'f', 'e', 't', 'i', 'm', 'e', '_', 's', 't', 'a', 'r', 't', 0, + }; + + // Emit the opcode for the instruction. + uint32_t Bits = OpInfo[MCInst_getOpcode(MI)]; + // assert(Bits != 0 && "Cannot print this instruction."); +#ifndef CAPSTONE_DIET + SStream_concat0(O, AsmStrs+(Bits & 1023)-1); +#endif + + + // Fragment 0 encoded into 3 bits for 8 unique commands. + switch ((Bits >> 10) & 7) { + default: + case 0: + // DBG_VALUE, BUNDLE, LIFETIME_START, LIFETIME_END, B_s7_irp, B_s7_nrp + return; + break; + case 1: + // ABS2_l2_rr, ABS_l1_rr, ADDAB_d1_rir, ADDAB_d1_rrr, ADDAD_d1_rir, ADDAD... + printOperand(MI, 1, O); + SStream_concat0(O, ", "); + break; + case 2: + // ABS_l1_pp, NORM_l1_pr, SAT_l1_pr, SHL_s1_pip, SHL_s1_prp, SHRU_s1_pip,... + printRegPair(MI, 1, O); + SStream_concat0(O, ", "); + break; + case 3: + // ADD2_d2_rrr, ADD2_l1_rrr_x2, ADD2_s1_rrr, ADD4_l1_rrr_x2, ADDU_l1_rpp,... + printOperand(MI, 2, O); + SStream_concat0(O, ", "); + break; + case 4: + // BNOP_s10_ri, BNOP_s9_ii, B_s5_i, B_s6_r, NOP_n, STB_d5_rm, STB_d6_rm, ... + printOperand(MI, 0, O); + break; + case 5: + // LDBU_d5_mr, LDB_d5_mr, LDDW_d7_mp, LDHU_d5_mr, LDH_d5_mr, LDNDW_d8_mp,... + printMemOperand(MI, 1, O); + SStream_concat0(O, ", "); + break; + case 6: + // LDBU_d6_mr, LDB_d6_mr, LDHU_d6_mr, LDH_d6_mr, LDW_d6_mr + printMemOperand2(MI, 1, O); + SStream_concat0(O, ", "); + printOperand(MI, 0, O); + return; + break; + case 7: + // STDW_d7_pm, STNDW_d8_pm + printRegPair(MI, 0, O); + SStream_concat0(O, ", "); + printMemOperand(MI, 1, O); + return; + break; + } + + + // Fragment 1 encoded into 3 bits for 7 unique commands. + switch ((Bits >> 13) & 7) { + default: + case 0: + // ABS2_l2_rr, ABS_l1_rr, ADDKPC_s3_iir, ADDK_s2_ir, BDEC_s8_ir, BITC4_m2... + printOperand(MI, 0, O); + break; + case 1: + // ABS_l1_pp, LDDW_d7_mp, LDNDW_d8_mp + printRegPair(MI, 0, O); + return; + break; + case 2: + // ADD2_d2_rrr, ADD2_l1_rrr_x2, ADD2_s1_rrr, ADD4_l1_rrr_x2, ADDU_l1_rrp_... + printOperand(MI, 1, O); + SStream_concat0(O, ", "); + break; + case 3: + // ADDAB_d1_rir, ADDAB_d1_rrr, ADDAD_d1_rir, ADDAD_d1_rrr, ADDAH_d1_rir, ... + printOperand(MI, 2, O); + SStream_concat0(O, ", "); + break; + case 4: + // ADDU_l1_rpp, ADD_l1_ipp, ADD_l1_rpp, CMPEQ_l1_ipr, CMPEQ_l1_rpr, CMPGT... + printRegPair(MI, 1, O); + SStream_concat0(O, ", "); + break; + case 5: + // BNOP_s10_ri, BNOP_s9_ii, STB_d5_rm, STB_d6_rm, STH_d5_rm, STH_d6_rm, S... + SStream_concat0(O, ", "); + break; + case 6: + // B_s5_i, B_s6_r, NOP_n + return; + break; + } + + + // Fragment 2 encoded into 3 bits for 8 unique commands. + switch ((Bits >> 16) & 7) { + default: + case 0: + // ABS2_l2_rr, ABS_l1_rr, ADDK_s2_ir, BDEC_s8_ir, BITC4_m2_rr, BPOS_s8_ir... + return; + break; + case 1: + // ADD2_d2_rrr, ADD2_l1_rrr_x2, ADD2_s1_rrr, ADD4_l1_rrr_x2, ADDAB_d1_rir... + printOperand(MI, 0, O); + return; + break; + case 2: + // ADDKPC_s3_iir + SStream_concat0(O, ", "); + printOperand(MI, 2, O); + return; + break; + case 3: + // ADDU_l1_rpp, ADDU_l1_rrp_x2, ADD_l1_ipp, ADD_l1_rpp, ADD_l1_rrp_x2, DO... + printRegPair(MI, 0, O); + return; + break; + case 4: + // BNOP_s10_ri, BNOP_s9_ii + printOperand(MI, 1, O); + return; + break; + case 5: + // CLR_s15_riir, EXTU_s15_riir, EXT_s15_riir, SET_s15_riir + printOperand(MI, 3, O); + SStream_concat0(O, ", "); + printOperand(MI, 0, O); + return; + break; + case 6: + // STB_d5_rm, STH_d5_rm, STNW_d5_rm, STW_d5_rm + printMemOperand(MI, 1, O); + return; + break; + case 7: + // STB_d6_rm, STH_d6_rm, STW_d6_rm + printMemOperand2(MI, 1, O); + return; + break; + } + +} + + +/// getRegisterName - This method is automatically generated by tblgen +/// from the register set description. This returns the assembler name +/// for the specified register. +static const char *getRegisterName(unsigned RegNo) { +#ifndef CAPSTONE_DIET + static const char AsmStrs[] = { + /* 0 */ 'a', '1', '0', 0, + /* 4 */ 'b', '1', '0', 0, + /* 8 */ 'a', '2', '0', 0, + /* 12 */ 'b', '2', '0', 0, + /* 16 */ 'a', '3', '0', 0, + /* 20 */ 'b', '3', '0', 0, + /* 24 */ 'a', '0', 0, + /* 27 */ 'b', '0', 0, + /* 30 */ 'a', '1', '1', 0, + /* 34 */ 'b', '1', '1', 0, + /* 38 */ 'a', '2', '1', 0, + /* 42 */ 'b', '2', '1', 0, + /* 46 */ 'a', '3', '1', 0, + /* 50 */ 'b', '3', '1', 0, + /* 54 */ 'a', '1', 0, + /* 57 */ 'b', '1', 0, + /* 60 */ 'p', 'c', 'e', '1', 0, + /* 65 */ 'a', '1', '2', 0, + /* 69 */ 'b', '1', '2', 0, + /* 73 */ 'a', '2', '2', 0, + /* 77 */ 'b', '2', '2', 0, + /* 81 */ 'a', '2', 0, + /* 84 */ 'b', '2', 0, + /* 87 */ 'a', '1', '3', 0, + /* 91 */ 'b', '1', '3', 0, + /* 95 */ 'a', '2', '3', 0, + /* 99 */ 'b', '2', '3', 0, + /* 103 */ 'a', '3', 0, + /* 106 */ 'b', '3', 0, + /* 109 */ 'a', '1', '4', 0, + /* 113 */ 'b', '1', '4', 0, + /* 117 */ 'a', '2', '4', 0, + /* 121 */ 'b', '2', '4', 0, + /* 125 */ 'a', '4', 0, + /* 128 */ 'b', '4', 0, + /* 131 */ 'a', '1', '5', 0, + /* 135 */ 'b', '1', '5', 0, + /* 139 */ 'a', '2', '5', 0, + /* 143 */ 'b', '2', '5', 0, + /* 147 */ 'a', '5', 0, + /* 150 */ 'b', '5', 0, + /* 153 */ 'a', '1', '6', 0, + /* 157 */ 'b', '1', '6', 0, + /* 161 */ 'a', '2', '6', 0, + /* 165 */ 'b', '2', '6', 0, + /* 169 */ 'a', '6', 0, + /* 172 */ 'b', '6', 0, + /* 175 */ 'a', '1', '7', 0, + /* 179 */ 'b', '1', '7', 0, + /* 183 */ 'a', '2', '7', 0, + /* 187 */ 'b', '2', '7', 0, + /* 191 */ 'a', '7', 0, + /* 194 */ 'b', '7', 0, + /* 197 */ 'a', '1', '8', 0, + /* 201 */ 'b', '1', '8', 0, + /* 205 */ 'a', '2', '8', 0, + /* 209 */ 'b', '2', '8', 0, + /* 213 */ 'a', '8', 0, + /* 216 */ 'b', '8', 0, + /* 219 */ 'a', '1', '9', 0, + /* 223 */ 'b', '1', '9', 0, + /* 227 */ 'a', '2', '9', 0, + /* 231 */ 'b', '2', '9', 0, + /* 235 */ 'a', '9', 0, + /* 238 */ 'b', '9', 0, + /* 241 */ 'g', 'p', 'l', 'y', 'a', 0, + /* 247 */ 'g', 'p', 'l', 'y', 'b', 0, + /* 253 */ 'r', 'i', 'l', 'c', 0, + /* 258 */ 't', 's', 'c', 'h', 0, + /* 263 */ 't', 's', 'c', 'l', 0, + /* 268 */ 'd', 'n', 'u', 'm', 0, + /* 273 */ 'r', 'e', 'p', 0, + /* 277 */ 'i', 'r', 'p', 0, + /* 281 */ 'n', 'r', 'p', 0, + /* 285 */ 'i', 's', 't', 'p', 0, + /* 290 */ 'e', 'c', 'r', 0, + /* 294 */ 'i', 'c', 'r', 0, + /* 298 */ 'd', 'i', 'e', 'r', 0, + /* 303 */ 'g', 'f', 'p', 'g', 'f', 'r', 0, + /* 310 */ 'a', 'm', 'r', 0, + /* 314 */ 'i', 'e', 'r', 'r', 0, + /* 319 */ 'c', 's', 'r', 0, + /* 323 */ 'i', 's', 'r', 0, + /* 327 */ 's', 's', 'r', 0, + /* 331 */ 'i', 't', 's', 'r', 0, + /* 336 */ 'n', 't', 's', 'r', 0, + }; + + static const uint16_t RegAsmOffset[] = { + 310, 319, 298, 268, 290, 303, 241, 247, 294, 299, 314, 254, 277, 323, + 285, 331, 281, 336, 273, 253, 327, 258, 263, 332, 24, 54, 81, 103, + 125, 147, 169, 191, 213, 235, 0, 30, 65, 87, 109, 131, 153, 175, + 197, 219, 8, 38, 73, 95, 117, 139, 161, 183, 205, 227, 16, 46, + 27, 57, 84, 106, 128, 150, 172, 194, 216, 238, 4, 34, 69, 91, + 113, 135, 157, 179, 201, 223, 12, 42, 77, 99, 121, 143, 165, 187, + 209, 231, 20, 50, 60, + }; + + return AsmStrs+RegAsmOffset[RegNo-1]; +#else + return NULL; +#endif +} |