You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
capstone/arch/TMS320C64x/TMS320C64xGenAsmWriter.inc

685 lines
21 KiB

3 years ago
/*===- 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 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 char *getRegisterName(unsigned RegNo) {
#ifndef CAPSTONE_DIET
static 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
}