xref: /aosp_15_r20/external/capstone/arch/TMS320C64x/TMS320C64xGenAsmWriter.inc (revision 9a0e4156d50a75a99ec4f1653a0e9602a5d45c18)
1*9a0e4156SSadaf Ebrahimi/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2*9a0e4156SSadaf Ebrahimi|*                                                                            *|
3*9a0e4156SSadaf Ebrahimi|*Assembly Writer Source Fragment                                             *|
4*9a0e4156SSadaf Ebrahimi|*                                                                            *|
5*9a0e4156SSadaf Ebrahimi|* Automatically generated file, do not edit!                                 *|
6*9a0e4156SSadaf Ebrahimi|*                                                                            *|
7*9a0e4156SSadaf Ebrahimi\*===----------------------------------------------------------------------===*/
8*9a0e4156SSadaf Ebrahimi
9*9a0e4156SSadaf Ebrahimi#include <stdio.h>
10*9a0e4156SSadaf Ebrahimi
11*9a0e4156SSadaf Ebrahimi/// printInstruction - This method is automatically generated by tablegen
12*9a0e4156SSadaf Ebrahimi/// from the instruction set description.
13*9a0e4156SSadaf Ebrahimistatic void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI) {
14*9a0e4156SSadaf Ebrahimi  static const uint32_t OpInfo[] = {
15*9a0e4156SSadaf Ebrahimi    0U,	// PHI
16*9a0e4156SSadaf Ebrahimi    0U,	// INLINEASM
17*9a0e4156SSadaf Ebrahimi    0U,	// CFI_INSTRUCTION
18*9a0e4156SSadaf Ebrahimi    0U,	// EH_LABEL
19*9a0e4156SSadaf Ebrahimi    0U,	// GC_LABEL
20*9a0e4156SSadaf Ebrahimi    0U,	// KILL
21*9a0e4156SSadaf Ebrahimi    0U,	// EXTRACT_SUBREG
22*9a0e4156SSadaf Ebrahimi    0U,	// INSERT_SUBREG
23*9a0e4156SSadaf Ebrahimi    0U,	// IMPLICIT_DEF
24*9a0e4156SSadaf Ebrahimi    0U,	// SUBREG_TO_REG
25*9a0e4156SSadaf Ebrahimi    0U,	// COPY_TO_REGCLASS
26*9a0e4156SSadaf Ebrahimi    882U,	// DBG_VALUE
27*9a0e4156SSadaf Ebrahimi    0U,	// REG_SEQUENCE
28*9a0e4156SSadaf Ebrahimi    0U,	// COPY
29*9a0e4156SSadaf Ebrahimi    875U,	// BUNDLE
30*9a0e4156SSadaf Ebrahimi    904U,	// LIFETIME_START
31*9a0e4156SSadaf Ebrahimi    862U,	// LIFETIME_END
32*9a0e4156SSadaf Ebrahimi    0U,	// STACKMAP
33*9a0e4156SSadaf Ebrahimi    0U,	// PATCHPOINT
34*9a0e4156SSadaf Ebrahimi    0U,	// LOAD_STACK_GUARD
35*9a0e4156SSadaf Ebrahimi    0U,	// STATEPOINT
36*9a0e4156SSadaf Ebrahimi    0U,	// FRAME_ALLOC
37*9a0e4156SSadaf Ebrahimi    1126U,	// ABS2_l2_rr
38*9a0e4156SSadaf Ebrahimi    10847U,	// ABS_l1_pp
39*9a0e4156SSadaf Ebrahimi    1631U,	// ABS_l1_rr
40*9a0e4156SSadaf Ebrahimi    85006U,	// ADD2_d2_rrr
41*9a0e4156SSadaf Ebrahimi    85006U,	// ADD2_l1_rrr_x2
42*9a0e4156SSadaf Ebrahimi    85006U,	// ADD2_s1_rrr
43*9a0e4156SSadaf Ebrahimi    85171U,	// ADD4_l1_rrr_x2
44*9a0e4156SSadaf Ebrahimi    91479U,	// ADDAB_d1_rir
45*9a0e4156SSadaf Ebrahimi    91479U,	// ADDAB_d1_rrr
46*9a0e4156SSadaf Ebrahimi    91541U,	// ADDAD_d1_rir
47*9a0e4156SSadaf Ebrahimi    91541U,	// ADDAD_d1_rrr
48*9a0e4156SSadaf Ebrahimi    91577U,	// ADDAH_d1_rir
49*9a0e4156SSadaf Ebrahimi    91577U,	// ADDAH_d1_rrr
50*9a0e4156SSadaf Ebrahimi    91937U,	// ADDAW_d1_rir
51*9a0e4156SSadaf Ebrahimi    91937U,	// ADDAW_d1_rrr
52*9a0e4156SSadaf Ebrahimi    132488U,	// ADDKPC_s3_iir
53*9a0e4156SSadaf Ebrahimi    1518U,	// ADDK_s2_ir
54*9a0e4156SSadaf Ebrahimi    233140U,	// ADDU_l1_rpp
55*9a0e4156SSadaf Ebrahimi    216756U,	// ADDU_l1_rrp_x2
56*9a0e4156SSadaf Ebrahimi    91555U,	// ADD_d1_rir
57*9a0e4156SSadaf Ebrahimi    91555U,	// ADD_d1_rrr
58*9a0e4156SSadaf Ebrahimi    91555U,	// ADD_d2_rir
59*9a0e4156SSadaf Ebrahimi    85411U,	// ADD_d2_rrr
60*9a0e4156SSadaf Ebrahimi    232867U,	// ADD_l1_ipp
61*9a0e4156SSadaf Ebrahimi    85411U,	// ADD_l1_irr
62*9a0e4156SSadaf Ebrahimi    232867U,	// ADD_l1_rpp
63*9a0e4156SSadaf Ebrahimi    216483U,	// ADD_l1_rrp_x2
64*9a0e4156SSadaf Ebrahimi    85411U,	// ADD_l1_rrr_x2
65*9a0e4156SSadaf Ebrahimi    85411U,	// ADD_s1_irr
66*9a0e4156SSadaf Ebrahimi    85411U,	// ADD_s1_rrr
67*9a0e4156SSadaf Ebrahimi    85542U,	// ANDN_d2_rrr
68*9a0e4156SSadaf Ebrahimi    85542U,	// ANDN_l1_rrr_x2
69*9a0e4156SSadaf Ebrahimi    85542U,	// ANDN_s4_rrr
70*9a0e4156SSadaf Ebrahimi    85416U,	// AND_d2_rir
71*9a0e4156SSadaf Ebrahimi    85416U,	// AND_d2_rrr
72*9a0e4156SSadaf Ebrahimi    85416U,	// AND_l1_irr
73*9a0e4156SSadaf Ebrahimi    85416U,	// AND_l1_rrr_x2
74*9a0e4156SSadaf Ebrahimi    85416U,	// AND_s1_irr
75*9a0e4156SSadaf Ebrahimi    85416U,	// AND_s1_rrr
76*9a0e4156SSadaf Ebrahimi    85019U,	// AVG2_m1_rrr
77*9a0e4156SSadaf Ebrahimi    85232U,	// AVGU4_m1_rrr
78*9a0e4156SSadaf Ebrahimi    1410U,	// BDEC_s8_ir
79*9a0e4156SSadaf Ebrahimi    1196U,	// BITC4_m2_rr
80*9a0e4156SSadaf Ebrahimi    307756U,	// BNOP_s10_ri
81*9a0e4156SSadaf Ebrahimi    307756U,	// BNOP_s9_ii
82*9a0e4156SSadaf Ebrahimi    1654U,	// BPOS_s8_ir
83*9a0e4156SSadaf Ebrahimi    53588U,	// B_s5_i
84*9a0e4156SSadaf Ebrahimi    53588U,	// B_s6_r
85*9a0e4156SSadaf Ebrahimi    892U,	// B_s7_irp
86*9a0e4156SSadaf Ebrahimi    898U,	// B_s7_nrp
87*9a0e4156SSadaf Ebrahimi    353870U,	// CLR_s15_riir
88*9a0e4156SSadaf Ebrahimi    91726U,	// CLR_s1_rrr
89*9a0e4156SSadaf Ebrahimi    85080U,	// CMPEQ2_s1_rrr
90*9a0e4156SSadaf Ebrahimi    85207U,	// CMPEQ4_s1_rrr
91*9a0e4156SSadaf Ebrahimi    101938U,	// CMPEQ_l1_ipr
92*9a0e4156SSadaf Ebrahimi    85554U,	// CMPEQ_l1_irr
93*9a0e4156SSadaf Ebrahimi    101938U,	// CMPEQ_l1_rpr
94*9a0e4156SSadaf Ebrahimi    85554U,	// CMPEQ_l1_rrr_x2
95*9a0e4156SSadaf Ebrahimi    85109U,	// CMPGT2_s1_rrr
96*9a0e4156SSadaf Ebrahimi    85298U,	// CMPGTU4_s1_rrr
97*9a0e4156SSadaf Ebrahimi    102037U,	// CMPGT_l1_ipr
98*9a0e4156SSadaf Ebrahimi    85653U,	// CMPGT_l1_irr
99*9a0e4156SSadaf Ebrahimi    102037U,	// CMPGT_l1_rpr
100*9a0e4156SSadaf Ebrahimi    85653U,	// CMPGT_l1_rrr_x2
101*9a0e4156SSadaf Ebrahimi    102150U,	// CMPLTU_l1_ipr
102*9a0e4156SSadaf Ebrahimi    85766U,	// CMPLTU_l1_irr
103*9a0e4156SSadaf Ebrahimi    102150U,	// CMPLTU_l1_rpr
104*9a0e4156SSadaf Ebrahimi    85766U,	// CMPLTU_l1_rrr_x2
105*9a0e4156SSadaf Ebrahimi    102044U,	// CMPLT_l1_ipr
106*9a0e4156SSadaf Ebrahimi    85660U,	// CMPLT_l1_irr
107*9a0e4156SSadaf Ebrahimi    102044U,	// CMPLT_l1_rpr
108*9a0e4156SSadaf Ebrahimi    85660U,	// CMPLT_l1_rrr_x2
109*9a0e4156SSadaf Ebrahimi    1529U,	// DEAL_m2_rr
110*9a0e4156SSadaf Ebrahimi    216145U,	// DOTP2_m1_rrp
111*9a0e4156SSadaf Ebrahimi    85073U,	// DOTP2_m1_rrr
112*9a0e4156SSadaf Ebrahimi    85065U,	// DOTPN2_m1_rrr
113*9a0e4156SSadaf Ebrahimi    85124U,	// DOTPNRSU2_m1_rrr
114*9a0e4156SSadaf Ebrahimi    85135U,	// DOTPRSU2_m1_rrr
115*9a0e4156SSadaf Ebrahimi    85281U,	// DOTPSU4_m1_rrr
116*9a0e4156SSadaf Ebrahimi    85273U,	// DOTPU4_m1_rrr
117*9a0e4156SSadaf Ebrahimi    354062U,	// EXTU_s15_riir
118*9a0e4156SSadaf Ebrahimi    91918U,	// EXTU_s1_rrr
119*9a0e4156SSadaf Ebrahimi    353955U,	// EXT_s15_riir
120*9a0e4156SSadaf Ebrahimi    91811U,	// EXT_s1_rrr
121*9a0e4156SSadaf Ebrahimi    102142U,	// GMPGTU_l1_ipr
122*9a0e4156SSadaf Ebrahimi    85758U,	// GMPGTU_l1_irr
123*9a0e4156SSadaf Ebrahimi    102142U,	// GMPGTU_l1_rpr
124*9a0e4156SSadaf Ebrahimi    85758U,	// GMPGTU_l1_rrr_x2
125*9a0e4156SSadaf Ebrahimi    85321U,	// GMPY4_m1_rrr
126*9a0e4156SSadaf Ebrahimi    5800U,	// LDBU_d5_mr
127*9a0e4156SSadaf Ebrahimi    6824U,	// LDBU_d6_mr
128*9a0e4156SSadaf Ebrahimi    5470U,	// LDB_d5_mr
129*9a0e4156SSadaf Ebrahimi    6494U,	// LDB_d6_mr
130*9a0e4156SSadaf Ebrahimi    14120U,	// LDDW_d7_mp
131*9a0e4156SSadaf Ebrahimi    5818U,	// LDHU_d5_mr
132*9a0e4156SSadaf Ebrahimi    6842U,	// LDHU_d6_mr
133*9a0e4156SSadaf Ebrahimi    5568U,	// LDH_d5_mr
134*9a0e4156SSadaf Ebrahimi    6592U,	// LDH_d6_mr
135*9a0e4156SSadaf Ebrahimi    14131U,	// LDNDW_d8_mp
136*9a0e4156SSadaf Ebrahimi    5959U,	// LDNW_d5_mr
137*9a0e4156SSadaf Ebrahimi    5934U,	// LDW_d5_mr
138*9a0e4156SSadaf Ebrahimi    6958U,	// LDW_d6_mr
139*9a0e4156SSadaf Ebrahimi    85404U,	// LMBD_l1_irr
140*9a0e4156SSadaf Ebrahimi    85404U,	// LMBD_l1_rrr_x2
141*9a0e4156SSadaf Ebrahimi    85145U,	// MAX2_l1_rrr_x2
142*9a0e4156SSadaf Ebrahimi    85307U,	// MAXU4_l1_rrr_x2
143*9a0e4156SSadaf Ebrahimi    85059U,	// MIN2_l1_rrr_x2
144*9a0e4156SSadaf Ebrahimi    85266U,	// MINU4_l1_rrr_x2
145*9a0e4156SSadaf Ebrahimi    216224U,	// MPY2_m1_rrp
146*9a0e4156SSadaf Ebrahimi    85566U,	// MPYHIR_m1_rrr
147*9a0e4156SSadaf Ebrahimi    216544U,	// MPYHI_m1_rrp
148*9a0e4156SSadaf Ebrahimi    85720U,	// MPYHLU_m4_rrr
149*9a0e4156SSadaf Ebrahimi    85516U,	// MPYHL_m4_rrr
150*9a0e4156SSadaf Ebrahimi    85728U,	// MPYHSLU_m4_rrr
151*9a0e4156SSadaf Ebrahimi    85743U,	// MPYHSU_m4_rrr
152*9a0e4156SSadaf Ebrahimi    85613U,	// MPYHULS_m4_rrr
153*9a0e4156SSadaf Ebrahimi    85628U,	// MPYHUS_m4_rrr
154*9a0e4156SSadaf Ebrahimi    85713U,	// MPYHU_m4_rrr
155*9a0e4156SSadaf Ebrahimi    85466U,	// MPYH_m4_rrr
156*9a0e4156SSadaf Ebrahimi    85696U,	// MPYLHU_m4_rrr
157*9a0e4156SSadaf Ebrahimi    85453U,	// MPYLH_m4_rrr
158*9a0e4156SSadaf Ebrahimi    85574U,	// MPYLIR_m1_rrr
159*9a0e4156SSadaf Ebrahimi    216551U,	// MPYLI_m1_rrp
160*9a0e4156SSadaf Ebrahimi    85704U,	// MPYLSHU_m4_rrr
161*9a0e4156SSadaf Ebrahimi    85604U,	// MPYLUHS_m4_rrr
162*9a0e4156SSadaf Ebrahimi    216362U,	// MPYSU4_m1_rrp
163*9a0e4156SSadaf Ebrahimi    85751U,	// MPYSU_m4_irr
164*9a0e4156SSadaf Ebrahimi    85751U,	// MPYSU_m4_rrr
165*9a0e4156SSadaf Ebrahimi    216386U,	// MPYU4_m1_rrp
166*9a0e4156SSadaf Ebrahimi    85636U,	// MPYUS_m4_rrr
167*9a0e4156SSadaf Ebrahimi    85780U,	// MPYU_m4_rrr
168*9a0e4156SSadaf Ebrahimi    85849U,	// MPY_m4_irr
169*9a0e4156SSadaf Ebrahimi    85849U,	// MPY_m4_rrr
170*9a0e4156SSadaf Ebrahimi    1424U,	// MVC_s1_rr
171*9a0e4156SSadaf Ebrahimi    1424U,	// MVC_s1_rr2
172*9a0e4156SSadaf Ebrahimi    1453U,	// MVD_m2_rr
173*9a0e4156SSadaf Ebrahimi    1477U,	// MVKLH_s12_ir
174*9a0e4156SSadaf Ebrahimi    1524U,	// MVKL_s12_ir
175*9a0e4156SSadaf Ebrahimi    1524U,	// MVK_d1_rr
176*9a0e4156SSadaf Ebrahimi    1524U,	// MVK_l2_ir
177*9a0e4156SSadaf Ebrahimi    53249U,	// NOP_n
178*9a0e4156SSadaf Ebrahimi    2592U,	// NORM_l1_pr
179*9a0e4156SSadaf Ebrahimi    1568U,	// NORM_l1_rr
180*9a0e4156SSadaf Ebrahimi    85588U,	// OR_d2_rir
181*9a0e4156SSadaf Ebrahimi    85588U,	// OR_d2_rrr
182*9a0e4156SSadaf Ebrahimi    85588U,	// OR_l1_irr
183*9a0e4156SSadaf Ebrahimi    85588U,	// OR_l1_rrr_x2
184*9a0e4156SSadaf Ebrahimi    85588U,	// OR_s1_irr
185*9a0e4156SSadaf Ebrahimi    85588U,	// OR_s1_rrr
186*9a0e4156SSadaf Ebrahimi    85043U,	// PACK2_l1_rrr_x2
187*9a0e4156SSadaf Ebrahimi    85043U,	// PACK2_s4_rrr
188*9a0e4156SSadaf Ebrahimi    85025U,	// PACKH2_l1_rrr_x2
189*9a0e4156SSadaf Ebrahimi    85025U,	// PACKH2_s1_rrr
190*9a0e4156SSadaf Ebrahimi    85184U,	// PACKH4_l1_rrr_x2
191*9a0e4156SSadaf Ebrahimi    85050U,	// PACKHL2_l1_rrr_x2
192*9a0e4156SSadaf Ebrahimi    85050U,	// PACKHL2_s1_rrr
193*9a0e4156SSadaf Ebrahimi    85192U,	// PACKL4_l1_rrr_x2
194*9a0e4156SSadaf Ebrahimi    85033U,	// PACKLH2_l1_rrr_x2
195*9a0e4156SSadaf Ebrahimi    85033U,	// PACKLH2_s1_rrr
196*9a0e4156SSadaf Ebrahimi    91667U,	// ROTL_m1_rir
197*9a0e4156SSadaf Ebrahimi    91667U,	// ROTL_m1_rrr
198*9a0e4156SSadaf Ebrahimi    85005U,	// SADD2_s4_rrr
199*9a0e4156SSadaf Ebrahimi    85224U,	// SADDU4_s4_rrr
200*9a0e4156SSadaf Ebrahimi    85100U,	// SADDUS2_s4_rrr
201*9a0e4156SSadaf Ebrahimi    232866U,	// SADD_l1_ipp
202*9a0e4156SSadaf Ebrahimi    85410U,	// SADD_l1_irr
203*9a0e4156SSadaf Ebrahimi    232866U,	// SADD_l1_rpp
204*9a0e4156SSadaf Ebrahimi    85410U,	// SADD_l1_rrr_x2
205*9a0e4156SSadaf Ebrahimi    85410U,	// SADD_s1_rrr
206*9a0e4156SSadaf Ebrahimi    2699U,	// SAT_l1_pr
207*9a0e4156SSadaf Ebrahimi    353936U,	// SET_s15_riir
208*9a0e4156SSadaf Ebrahimi    91792U,	// SET_s1_rrr
209*9a0e4156SSadaf Ebrahimi    1535U,	// SHFL_m2_rr
210*9a0e4156SSadaf Ebrahimi    85347U,	// SHLMB_l1_rrr_x2
211*9a0e4156SSadaf Ebrahimi    85347U,	// SHLMB_s4_rrr
212*9a0e4156SSadaf Ebrahimi    223750U,	// SHL_s1_pip
213*9a0e4156SSadaf Ebrahimi    223750U,	// SHL_s1_prp
214*9a0e4156SSadaf Ebrahimi    222726U,	// SHL_s1_rip
215*9a0e4156SSadaf Ebrahimi    91654U,	// SHL_s1_rir
216*9a0e4156SSadaf Ebrahimi    222726U,	// SHL_s1_rrp
217*9a0e4156SSadaf Ebrahimi    91654U,	// SHL_s1_rrr
218*9a0e4156SSadaf Ebrahimi    91232U,	// SHR2_s1_rir
219*9a0e4156SSadaf Ebrahimi    91232U,	// SHR2_s4_rrr
220*9a0e4156SSadaf Ebrahimi    85354U,	// SHRMB_l1_rrr_x2
221*9a0e4156SSadaf Ebrahimi    85354U,	// SHRMB_s4_rrr
222*9a0e4156SSadaf Ebrahimi    91261U,	// SHRU2_s1_rir
223*9a0e4156SSadaf Ebrahimi    91261U,	// SHRU2_s4_rrr
224*9a0e4156SSadaf Ebrahimi    223977U,	// SHRU_s1_pip
225*9a0e4156SSadaf Ebrahimi    223977U,	// SHRU_s1_prp
226*9a0e4156SSadaf Ebrahimi    91881U,	// SHRU_s1_rir
227*9a0e4156SSadaf Ebrahimi    91881U,	// SHRU_s1_rrr
228*9a0e4156SSadaf Ebrahimi    223801U,	// SHR_s1_pip
229*9a0e4156SSadaf Ebrahimi    223801U,	// SHR_s1_prp
230*9a0e4156SSadaf Ebrahimi    91705U,	// SHR_s1_rir
231*9a0e4156SSadaf Ebrahimi    91705U,	// SHR_s1_rrr
232*9a0e4156SSadaf Ebrahimi    216223U,	// SMPY2_m1_rrp
233*9a0e4156SSadaf Ebrahimi    85515U,	// SMPYHL_m4_rrr
234*9a0e4156SSadaf Ebrahimi    85465U,	// SMPYH_m4_rrr
235*9a0e4156SSadaf Ebrahimi    85452U,	// SMPYLH_m4_rrr
236*9a0e4156SSadaf Ebrahimi    85848U,	// SMPY_m4_rrr
237*9a0e4156SSadaf Ebrahimi    85042U,	// SPACK2_s4_rrr
238*9a0e4156SSadaf Ebrahimi    85248U,	// SPACKU4_s4_rrr
239*9a0e4156SSadaf Ebrahimi    91653U,	// SSHL_s1_rir
240*9a0e4156SSadaf Ebrahimi    91653U,	// SSHL_s1_rrr
241*9a0e4156SSadaf Ebrahimi    85529U,	// SSHVL_m1_rrr
242*9a0e4156SSadaf Ebrahimi    85592U,	// SSHVR_m1_rrr
243*9a0e4156SSadaf Ebrahimi    232822U,	// SSUB_l1_ipp
244*9a0e4156SSadaf Ebrahimi    85366U,	// SSUB_l1_irr
245*9a0e4156SSadaf Ebrahimi    85366U,	// SSUB_l1_rrr_x1
246*9a0e4156SSadaf Ebrahimi    85366U,	// SSUB_l1_rrr_x2
247*9a0e4156SSadaf Ebrahimi    438641U,	// STB_d5_rm
248*9a0e4156SSadaf Ebrahimi    504177U,	// STB_d6_rm
249*9a0e4156SSadaf Ebrahimi    8001U,	// STDW_d7_pm
250*9a0e4156SSadaf Ebrahimi    438740U,	// STH_d5_rm
251*9a0e4156SSadaf Ebrahimi    504276U,	// STH_d6_rm
252*9a0e4156SSadaf Ebrahimi    7994U,	// STNDW_d8_pm
253*9a0e4156SSadaf Ebrahimi    439117U,	// STNW_d5_rm
254*9a0e4156SSadaf Ebrahimi    439123U,	// STW_d5_rm
255*9a0e4156SSadaf Ebrahimi    504659U,	// STW_d6_rm
256*9a0e4156SSadaf Ebrahimi    84999U,	// SUB2_d2_rrr
257*9a0e4156SSadaf Ebrahimi    84999U,	// SUB2_l1_rrr_x2
258*9a0e4156SSadaf Ebrahimi    84999U,	// SUB2_s1_rrr
259*9a0e4156SSadaf Ebrahimi    85158U,	// SUB4_l1_rrr_x2
260*9a0e4156SSadaf Ebrahimi    85215U,	// SUBABS4_l1_rrr_x2
261*9a0e4156SSadaf Ebrahimi    91472U,	// SUBAB_d1_rir
262*9a0e4156SSadaf Ebrahimi    91472U,	// SUBAB_d1_rrr
263*9a0e4156SSadaf Ebrahimi    91472U,	// SUBAH_d1_rir
264*9a0e4156SSadaf Ebrahimi    91570U,	// SUBAH_d1_rrr
265*9a0e4156SSadaf Ebrahimi    91472U,	// SUBAW_d1_rir
266*9a0e4156SSadaf Ebrahimi    91930U,	// SUBAW_d1_rrr
267*9a0e4156SSadaf Ebrahimi    85372U,	// SUBC_l1_rrr_x2
268*9a0e4156SSadaf Ebrahimi    216750U,	// SUBU_l1_rrp_x1
269*9a0e4156SSadaf Ebrahimi    216750U,	// SUBU_l1_rrp_x2
270*9a0e4156SSadaf Ebrahimi    91511U,	// SUB_d1_rir
271*9a0e4156SSadaf Ebrahimi    91511U,	// SUB_d1_rrr
272*9a0e4156SSadaf Ebrahimi    85367U,	// SUB_d2_rrr
273*9a0e4156SSadaf Ebrahimi    232823U,	// SUB_l1_ipp
274*9a0e4156SSadaf Ebrahimi    85367U,	// SUB_l1_irr
275*9a0e4156SSadaf Ebrahimi    216439U,	// SUB_l1_rrp_x1
276*9a0e4156SSadaf Ebrahimi    216439U,	// SUB_l1_rrp_x2
277*9a0e4156SSadaf Ebrahimi    85367U,	// SUB_l1_rrr_x1
278*9a0e4156SSadaf Ebrahimi    85367U,	// SUB_l1_rrr_x2
279*9a0e4156SSadaf Ebrahimi    85367U,	// SUB_s1_irr
280*9a0e4156SSadaf Ebrahimi    85367U,	// SUB_s1_rrr
281*9a0e4156SSadaf Ebrahimi    91511U,	// SUB_s4_rrr
282*9a0e4156SSadaf Ebrahimi    1232U,	// SWAP4_l2_rr
283*9a0e4156SSadaf Ebrahimi    1271U,	// UNPKHU4_l2_rr
284*9a0e4156SSadaf Ebrahimi    1271U,	// UNPKHU4_s14_rr
285*9a0e4156SSadaf Ebrahimi    1289U,	// UNPKLU4_l2_rr
286*9a0e4156SSadaf Ebrahimi    1289U,	// UNPKLU4_s14_rr
287*9a0e4156SSadaf Ebrahimi    85587U,	// XOR_d2_rir
288*9a0e4156SSadaf Ebrahimi    85587U,	// XOR_d2_rrr
289*9a0e4156SSadaf Ebrahimi    85587U,	// XOR_l1_irr
290*9a0e4156SSadaf Ebrahimi    85587U,	// XOR_l1_rrr_x2
291*9a0e4156SSadaf Ebrahimi    85587U,	// XOR_s1_irr
292*9a0e4156SSadaf Ebrahimi    85587U,	// XOR_s1_rrr
293*9a0e4156SSadaf Ebrahimi    1044U,	// XPND2_m2_rr
294*9a0e4156SSadaf Ebrahimi    1209U,	// XPND4_m2_rr
295*9a0e4156SSadaf Ebrahimi    0U
296*9a0e4156SSadaf Ebrahimi  };
297*9a0e4156SSadaf Ebrahimi
298*9a0e4156SSadaf Ebrahimi  static char AsmStrs[] = {
299*9a0e4156SSadaf Ebrahimi  /* 0 */ 'n', 'o', 'p', 9, 9, 0,
300*9a0e4156SSadaf Ebrahimi  /* 6 */ 's', 'u', 'b', '2', 9, 0,
301*9a0e4156SSadaf Ebrahimi  /* 12 */ 's', 'a', 'd', 'd', '2', 9, 0,
302*9a0e4156SSadaf Ebrahimi  /* 19 */ 'x', 'p', 'n', 'd', '2', 9, 0,
303*9a0e4156SSadaf Ebrahimi  /* 26 */ 'a', 'v', 'g', '2', 9, 0,
304*9a0e4156SSadaf Ebrahimi  /* 32 */ 'p', 'a', 'c', 'k', 'h', '2', 9, 0,
305*9a0e4156SSadaf Ebrahimi  /* 40 */ 'p', 'a', 'c', 'k', 'l', 'h', '2', 9, 0,
306*9a0e4156SSadaf Ebrahimi  /* 49 */ 's', 'p', 'a', 'c', 'k', '2', 9, 0,
307*9a0e4156SSadaf Ebrahimi  /* 57 */ 'p', 'a', 'c', 'k', 'h', 'l', '2', 9, 0,
308*9a0e4156SSadaf Ebrahimi  /* 66 */ 'm', 'i', 'n', '2', 9, 0,
309*9a0e4156SSadaf Ebrahimi  /* 72 */ 'd', 'o', 't', 'p', 'n', '2', 9, 0,
310*9a0e4156SSadaf Ebrahimi  /* 80 */ 'd', 'o', 't', 'p', '2', 9, 0,
311*9a0e4156SSadaf Ebrahimi  /* 87 */ 'c', 'm', 'p', 'e', 'q', '2', 9, 0,
312*9a0e4156SSadaf Ebrahimi  /* 95 */ 's', 'h', 'r', '2', 9, 0,
313*9a0e4156SSadaf Ebrahimi  /* 101 */ 'a', 'b', 's', '2', 9, 0,
314*9a0e4156SSadaf Ebrahimi  /* 107 */ 's', 'a', 'd', 'd', 'u', 's', '2', 9, 0,
315*9a0e4156SSadaf Ebrahimi  /* 116 */ 'c', 'm', 'p', 'g', 't', '2', 9, 0,
316*9a0e4156SSadaf Ebrahimi  /* 124 */ 's', 'h', 'r', 'u', '2', 9, 0,
317*9a0e4156SSadaf Ebrahimi  /* 131 */ 'd', 'o', 't', 'p', 'n', 'r', 's', 'u', '2', 9, 0,
318*9a0e4156SSadaf Ebrahimi  /* 142 */ 'd', 'o', 't', 'p', 'r', 's', 'u', '2', 9, 0,
319*9a0e4156SSadaf Ebrahimi  /* 152 */ 'm', 'a', 'x', '2', 9, 0,
320*9a0e4156SSadaf Ebrahimi  /* 158 */ 's', 'm', 'p', 'y', '2', 9, 0,
321*9a0e4156SSadaf Ebrahimi  /* 165 */ 's', 'u', 'b', '4', 9, 0,
322*9a0e4156SSadaf Ebrahimi  /* 171 */ 'b', 'i', 't', 'c', '4', 9, 0,
323*9a0e4156SSadaf Ebrahimi  /* 178 */ 'a', 'd', 'd', '4', 9, 0,
324*9a0e4156SSadaf Ebrahimi  /* 184 */ 'x', 'p', 'n', 'd', '4', 9, 0,
325*9a0e4156SSadaf Ebrahimi  /* 191 */ 'p', 'a', 'c', 'k', 'h', '4', 9, 0,
326*9a0e4156SSadaf Ebrahimi  /* 199 */ 'p', 'a', 'c', 'k', 'l', '4', 9, 0,
327*9a0e4156SSadaf Ebrahimi  /* 207 */ 's', 'w', 'a', 'p', '4', 9, 0,
328*9a0e4156SSadaf Ebrahimi  /* 214 */ 'c', 'm', 'p', 'e', 'q', '4', 9, 0,
329*9a0e4156SSadaf Ebrahimi  /* 222 */ 's', 'u', 'b', 'a', 'b', 's', '4', 9, 0,
330*9a0e4156SSadaf Ebrahimi  /* 231 */ 's', 'a', 'd', 'd', 'u', '4', 9, 0,
331*9a0e4156SSadaf Ebrahimi  /* 239 */ 'a', 'v', 'g', 'u', '4', 9, 0,
332*9a0e4156SSadaf Ebrahimi  /* 246 */ 'u', 'n', 'p', 'k', 'h', 'u', '4', 9, 0,
333*9a0e4156SSadaf Ebrahimi  /* 255 */ 's', 'p', 'a', 'c', 'k', 'u', '4', 9, 0,
334*9a0e4156SSadaf Ebrahimi  /* 264 */ 'u', 'n', 'p', 'k', 'l', 'u', '4', 9, 0,
335*9a0e4156SSadaf Ebrahimi  /* 273 */ 'm', 'i', 'n', 'u', '4', 9, 0,
336*9a0e4156SSadaf Ebrahimi  /* 280 */ 'd', 'o', 't', 'p', 'u', '4', 9, 0,
337*9a0e4156SSadaf Ebrahimi  /* 288 */ 'd', 'o', 't', 'p', 's', 'u', '4', 9, 0,
338*9a0e4156SSadaf Ebrahimi  /* 297 */ 'm', 'p', 'y', 's', 'u', '4', 9, 0,
339*9a0e4156SSadaf Ebrahimi  /* 305 */ 'c', 'm', 'p', 'g', 't', 'u', '4', 9, 0,
340*9a0e4156SSadaf Ebrahimi  /* 314 */ 'm', 'a', 'x', 'u', '4', 9, 0,
341*9a0e4156SSadaf Ebrahimi  /* 321 */ 'm', 'p', 'y', 'u', '4', 9, 0,
342*9a0e4156SSadaf Ebrahimi  /* 328 */ 'g', 'm', 'p', 'y', '4', 9, 0,
343*9a0e4156SSadaf Ebrahimi  /* 335 */ 's', 'u', 'b', 'a', 'b', 9, 0,
344*9a0e4156SSadaf Ebrahimi  /* 342 */ 'a', 'd', 'd', 'a', 'b', 9, 0,
345*9a0e4156SSadaf Ebrahimi  /* 349 */ 'l', 'd', 'b', 9, 0,
346*9a0e4156SSadaf Ebrahimi  /* 354 */ 's', 'h', 'l', 'm', 'b', 9, 0,
347*9a0e4156SSadaf Ebrahimi  /* 361 */ 's', 'h', 'r', 'm', 'b', 9, 0,
348*9a0e4156SSadaf Ebrahimi  /* 368 */ 's', 't', 'b', 9, 0,
349*9a0e4156SSadaf Ebrahimi  /* 373 */ 's', 's', 'u', 'b', 9, 0,
350*9a0e4156SSadaf Ebrahimi  /* 379 */ 's', 'u', 'b', 'c', 9, 0,
351*9a0e4156SSadaf Ebrahimi  /* 385 */ 'b', 'd', 'e', 'c', 9, 0,
352*9a0e4156SSadaf Ebrahimi  /* 391 */ 'a', 'd', 'd', 'k', 'p', 'c', 9, 0,
353*9a0e4156SSadaf Ebrahimi  /* 399 */ 'm', 'v', 'c', 9, 0,
354*9a0e4156SSadaf Ebrahimi  /* 404 */ 'a', 'd', 'd', 'a', 'd', 9, 0,
355*9a0e4156SSadaf Ebrahimi  /* 411 */ 'l', 'm', 'b', 'd', 9, 0,
356*9a0e4156SSadaf Ebrahimi  /* 417 */ 's', 'a', 'd', 'd', 9, 0,
357*9a0e4156SSadaf Ebrahimi  /* 423 */ 'a', 'n', 'd', 9, 0,
358*9a0e4156SSadaf Ebrahimi  /* 428 */ 'm', 'v', 'd', 9, 0,
359*9a0e4156SSadaf Ebrahimi  /* 433 */ 's', 'u', 'b', 'a', 'h', 9, 0,
360*9a0e4156SSadaf Ebrahimi  /* 440 */ 'a', 'd', 'd', 'a', 'h', 9, 0,
361*9a0e4156SSadaf Ebrahimi  /* 447 */ 'l', 'd', 'h', 9, 0,
362*9a0e4156SSadaf Ebrahimi  /* 452 */ 'm', 'v', 'k', 'l', 'h', 9, 0,
363*9a0e4156SSadaf Ebrahimi  /* 459 */ 's', 'm', 'p', 'y', 'l', 'h', 9, 0,
364*9a0e4156SSadaf Ebrahimi  /* 467 */ 's', 't', 'h', 9, 0,
365*9a0e4156SSadaf Ebrahimi  /* 472 */ 's', 'm', 'p', 'y', 'h', 9, 0,
366*9a0e4156SSadaf Ebrahimi  /* 479 */ 'm', 'p', 'y', 'h', 'i', 9, 0,
367*9a0e4156SSadaf Ebrahimi  /* 486 */ 'm', 'p', 'y', 'l', 'i', 9, 0,
368*9a0e4156SSadaf Ebrahimi  /* 493 */ 'a', 'd', 'd', 'k', 9, 0,
369*9a0e4156SSadaf Ebrahimi  /* 499 */ 'm', 'v', 'k', 9, 0,
370*9a0e4156SSadaf Ebrahimi  /* 504 */ 'd', 'e', 'a', 'l', 9, 0,
371*9a0e4156SSadaf Ebrahimi  /* 510 */ 's', 'h', 'f', 'l', 9, 0,
372*9a0e4156SSadaf Ebrahimi  /* 516 */ 's', 's', 'h', 'l', 9, 0,
373*9a0e4156SSadaf Ebrahimi  /* 522 */ 's', 'm', 'p', 'y', 'h', 'l', 9, 0,
374*9a0e4156SSadaf Ebrahimi  /* 530 */ 'r', 'o', 't', 'l', 9, 0,
375*9a0e4156SSadaf Ebrahimi  /* 536 */ 's', 's', 'h', 'v', 'l', 9, 0,
376*9a0e4156SSadaf Ebrahimi  /* 543 */ 'n', 'o', 'r', 'm', 9, 0,
377*9a0e4156SSadaf Ebrahimi  /* 549 */ 'a', 'n', 'd', 'n', 9, 0,
378*9a0e4156SSadaf Ebrahimi  /* 555 */ 'b', 'n', 'o', 'p', 9, 0,
379*9a0e4156SSadaf Ebrahimi  /* 561 */ 'c', 'm', 'p', 'e', 'q', 9, 0,
380*9a0e4156SSadaf Ebrahimi  /* 568 */ 's', 'h', 'r', 9, 0,
381*9a0e4156SSadaf Ebrahimi  /* 573 */ 'm', 'p', 'y', 'h', 'i', 'r', 9, 0,
382*9a0e4156SSadaf Ebrahimi  /* 581 */ 'm', 'p', 'y', 'l', 'i', 'r', 9, 0,
383*9a0e4156SSadaf Ebrahimi  /* 589 */ 'c', 'l', 'r', 9, 0,
384*9a0e4156SSadaf Ebrahimi  /* 594 */ 'x', 'o', 'r', 9, 0,
385*9a0e4156SSadaf Ebrahimi  /* 599 */ 's', 's', 'h', 'v', 'r', 9, 0,
386*9a0e4156SSadaf Ebrahimi  /* 606 */ 'a', 'b', 's', 9, 0,
387*9a0e4156SSadaf Ebrahimi  /* 611 */ 'm', 'p', 'y', 'l', 'u', 'h', 's', 9, 0,
388*9a0e4156SSadaf Ebrahimi  /* 620 */ 'm', 'p', 'y', 'h', 'u', 'l', 's', 9, 0,
389*9a0e4156SSadaf Ebrahimi  /* 629 */ 'b', 'p', 'o', 's', 9, 0,
390*9a0e4156SSadaf Ebrahimi  /* 635 */ 'm', 'p', 'y', 'h', 'u', 's', 9, 0,
391*9a0e4156SSadaf Ebrahimi  /* 643 */ 'm', 'p', 'y', 'u', 's', 9, 0,
392*9a0e4156SSadaf Ebrahimi  /* 650 */ 's', 'a', 't', 9, 0,
393*9a0e4156SSadaf Ebrahimi  /* 655 */ 's', 'e', 't', 9, 0,
394*9a0e4156SSadaf Ebrahimi  /* 660 */ 'c', 'm', 'p', 'g', 't', 9, 0,
395*9a0e4156SSadaf Ebrahimi  /* 667 */ 'c', 'm', 'p', 'l', 't', 9, 0,
396*9a0e4156SSadaf Ebrahimi  /* 674 */ 'e', 'x', 't', 9, 0,
397*9a0e4156SSadaf Ebrahimi  /* 679 */ 'l', 'd', 'b', 'u', 9, 0,
398*9a0e4156SSadaf Ebrahimi  /* 685 */ 's', 'u', 'b', 'u', 9, 0,
399*9a0e4156SSadaf Ebrahimi  /* 691 */ 'a', 'd', 'd', 'u', 9, 0,
400*9a0e4156SSadaf Ebrahimi  /* 697 */ 'l', 'd', 'h', 'u', 9, 0,
401*9a0e4156SSadaf Ebrahimi  /* 703 */ 'm', 'p', 'y', 'l', 'h', 'u', 9, 0,
402*9a0e4156SSadaf Ebrahimi  /* 711 */ 'm', 'p', 'y', 'l', 's', 'h', 'u', 9, 0,
403*9a0e4156SSadaf Ebrahimi  /* 720 */ 'm', 'p', 'y', 'h', 'u', 9, 0,
404*9a0e4156SSadaf Ebrahimi  /* 727 */ 'm', 'p', 'y', 'h', 'l', 'u', 9, 0,
405*9a0e4156SSadaf Ebrahimi  /* 735 */ 'm', 'p', 'y', 'h', 's', 'l', 'u', 9, 0,
406*9a0e4156SSadaf Ebrahimi  /* 744 */ 's', 'h', 'r', 'u', 9, 0,
407*9a0e4156SSadaf Ebrahimi  /* 750 */ 'm', 'p', 'y', 'h', 's', 'u', 9, 0,
408*9a0e4156SSadaf Ebrahimi  /* 758 */ 'm', 'p', 'y', 's', 'u', 9, 0,
409*9a0e4156SSadaf Ebrahimi  /* 765 */ 'c', 'm', 'p', 'g', 't', 'u', 9, 0,
410*9a0e4156SSadaf Ebrahimi  /* 773 */ 'c', 'm', 'p', 'l', 't', 'u', 9, 0,
411*9a0e4156SSadaf Ebrahimi  /* 781 */ 'e', 'x', 't', 'u', 9, 0,
412*9a0e4156SSadaf Ebrahimi  /* 787 */ 'm', 'p', 'y', 'u', 9, 0,
413*9a0e4156SSadaf Ebrahimi  /* 793 */ 's', 'u', 'b', 'a', 'w', 9, 0,
414*9a0e4156SSadaf Ebrahimi  /* 800 */ 'a', 'd', 'd', 'a', 'w', 9, 0,
415*9a0e4156SSadaf Ebrahimi  /* 807 */ 'l', 'd', 'd', 'w', 9, 0,
416*9a0e4156SSadaf Ebrahimi  /* 813 */ 'l', 'd', 'w', 9, 0,
417*9a0e4156SSadaf Ebrahimi  /* 818 */ 'l', 'd', 'n', 'd', 'w', 9, 0,
418*9a0e4156SSadaf Ebrahimi  /* 825 */ 's', 't', 'n', 'd', 'w', 9, 0,
419*9a0e4156SSadaf Ebrahimi  /* 832 */ 's', 't', 'd', 'w', 9, 0,
420*9a0e4156SSadaf Ebrahimi  /* 838 */ 'l', 'd', 'n', 'w', 9, 0,
421*9a0e4156SSadaf Ebrahimi  /* 844 */ 's', 't', 'n', 'w', 9, 0,
422*9a0e4156SSadaf Ebrahimi  /* 850 */ 's', 't', 'w', 9, 0,
423*9a0e4156SSadaf Ebrahimi  /* 855 */ 's', 'm', 'p', 'y', 9, 0,
424*9a0e4156SSadaf Ebrahimi  /* 861 */ 'l', 'i', 'f', 'e', 't', 'i', 'm', 'e', '_', 'e', 'n', 'd', 0,
425*9a0e4156SSadaf Ebrahimi  /* 874 */ 'b', 'u', 'n', 'd', 'l', 'e', 0,
426*9a0e4156SSadaf Ebrahimi  /* 881 */ 'd', 'b', 'g', '_', 'v', 'a', 'l', 'u', 'e', 0,
427*9a0e4156SSadaf Ebrahimi  /* 891 */ 'b', 9, 'i', 'r', 'p', 0,
428*9a0e4156SSadaf Ebrahimi  /* 897 */ 'b', 9, 'n', 'r', 'p', 0,
429*9a0e4156SSadaf Ebrahimi  /* 903 */ 'l', 'i', 'f', 'e', 't', 'i', 'm', 'e', '_', 's', 't', 'a', 'r', 't', 0,
430*9a0e4156SSadaf Ebrahimi  };
431*9a0e4156SSadaf Ebrahimi
432*9a0e4156SSadaf Ebrahimi  // Emit the opcode for the instruction.
433*9a0e4156SSadaf Ebrahimi  uint32_t Bits = OpInfo[MCInst_getOpcode(MI)];
434*9a0e4156SSadaf Ebrahimi  // assert(Bits != 0 && "Cannot print this instruction.");
435*9a0e4156SSadaf Ebrahimi#ifndef CAPSTONE_DIET
436*9a0e4156SSadaf Ebrahimi  SStream_concat0(O, AsmStrs+(Bits & 1023)-1);
437*9a0e4156SSadaf Ebrahimi#endif
438*9a0e4156SSadaf Ebrahimi
439*9a0e4156SSadaf Ebrahimi
440*9a0e4156SSadaf Ebrahimi  // Fragment 0 encoded into 3 bits for 8 unique commands.
441*9a0e4156SSadaf Ebrahimi  switch ((Bits >> 10) & 7) {
442*9a0e4156SSadaf Ebrahimi  default:
443*9a0e4156SSadaf Ebrahimi  case 0:
444*9a0e4156SSadaf Ebrahimi    // DBG_VALUE, BUNDLE, LIFETIME_START, LIFETIME_END, B_s7_irp, B_s7_nrp
445*9a0e4156SSadaf Ebrahimi    return;
446*9a0e4156SSadaf Ebrahimi    break;
447*9a0e4156SSadaf Ebrahimi  case 1:
448*9a0e4156SSadaf Ebrahimi    // ABS2_l2_rr, ABS_l1_rr, ADDAB_d1_rir, ADDAB_d1_rrr, ADDAD_d1_rir, ADDAD...
449*9a0e4156SSadaf Ebrahimi    printOperand(MI, 1, O);
450*9a0e4156SSadaf Ebrahimi    SStream_concat0(O, ", ");
451*9a0e4156SSadaf Ebrahimi    break;
452*9a0e4156SSadaf Ebrahimi  case 2:
453*9a0e4156SSadaf Ebrahimi    // ABS_l1_pp, NORM_l1_pr, SAT_l1_pr, SHL_s1_pip, SHL_s1_prp, SHRU_s1_pip,...
454*9a0e4156SSadaf Ebrahimi    printRegPair(MI, 1, O);
455*9a0e4156SSadaf Ebrahimi    SStream_concat0(O, ", ");
456*9a0e4156SSadaf Ebrahimi    break;
457*9a0e4156SSadaf Ebrahimi  case 3:
458*9a0e4156SSadaf Ebrahimi    // ADD2_d2_rrr, ADD2_l1_rrr_x2, ADD2_s1_rrr, ADD4_l1_rrr_x2, ADDU_l1_rpp,...
459*9a0e4156SSadaf Ebrahimi    printOperand(MI, 2, O);
460*9a0e4156SSadaf Ebrahimi    SStream_concat0(O, ", ");
461*9a0e4156SSadaf Ebrahimi    break;
462*9a0e4156SSadaf Ebrahimi  case 4:
463*9a0e4156SSadaf Ebrahimi    // BNOP_s10_ri, BNOP_s9_ii, B_s5_i, B_s6_r, NOP_n, STB_d5_rm, STB_d6_rm, ...
464*9a0e4156SSadaf Ebrahimi    printOperand(MI, 0, O);
465*9a0e4156SSadaf Ebrahimi    break;
466*9a0e4156SSadaf Ebrahimi  case 5:
467*9a0e4156SSadaf Ebrahimi    // LDBU_d5_mr, LDB_d5_mr, LDDW_d7_mp, LDHU_d5_mr, LDH_d5_mr, LDNDW_d8_mp,...
468*9a0e4156SSadaf Ebrahimi    printMemOperand(MI, 1, O);
469*9a0e4156SSadaf Ebrahimi    SStream_concat0(O, ", ");
470*9a0e4156SSadaf Ebrahimi    break;
471*9a0e4156SSadaf Ebrahimi  case 6:
472*9a0e4156SSadaf Ebrahimi    // LDBU_d6_mr, LDB_d6_mr, LDHU_d6_mr, LDH_d6_mr, LDW_d6_mr
473*9a0e4156SSadaf Ebrahimi    printMemOperand2(MI, 1, O);
474*9a0e4156SSadaf Ebrahimi    SStream_concat0(O, ", ");
475*9a0e4156SSadaf Ebrahimi    printOperand(MI, 0, O);
476*9a0e4156SSadaf Ebrahimi    return;
477*9a0e4156SSadaf Ebrahimi    break;
478*9a0e4156SSadaf Ebrahimi  case 7:
479*9a0e4156SSadaf Ebrahimi    // STDW_d7_pm, STNDW_d8_pm
480*9a0e4156SSadaf Ebrahimi    printRegPair(MI, 0, O);
481*9a0e4156SSadaf Ebrahimi    SStream_concat0(O, ", ");
482*9a0e4156SSadaf Ebrahimi    printMemOperand(MI, 1, O);
483*9a0e4156SSadaf Ebrahimi    return;
484*9a0e4156SSadaf Ebrahimi    break;
485*9a0e4156SSadaf Ebrahimi  }
486*9a0e4156SSadaf Ebrahimi
487*9a0e4156SSadaf Ebrahimi
488*9a0e4156SSadaf Ebrahimi  // Fragment 1 encoded into 3 bits for 7 unique commands.
489*9a0e4156SSadaf Ebrahimi  switch ((Bits >> 13) & 7) {
490*9a0e4156SSadaf Ebrahimi  default:
491*9a0e4156SSadaf Ebrahimi  case 0:
492*9a0e4156SSadaf Ebrahimi    // ABS2_l2_rr, ABS_l1_rr, ADDKPC_s3_iir, ADDK_s2_ir, BDEC_s8_ir, BITC4_m2...
493*9a0e4156SSadaf Ebrahimi    printOperand(MI, 0, O);
494*9a0e4156SSadaf Ebrahimi    break;
495*9a0e4156SSadaf Ebrahimi  case 1:
496*9a0e4156SSadaf Ebrahimi    // ABS_l1_pp, LDDW_d7_mp, LDNDW_d8_mp
497*9a0e4156SSadaf Ebrahimi    printRegPair(MI, 0, O);
498*9a0e4156SSadaf Ebrahimi    return;
499*9a0e4156SSadaf Ebrahimi    break;
500*9a0e4156SSadaf Ebrahimi  case 2:
501*9a0e4156SSadaf Ebrahimi    // ADD2_d2_rrr, ADD2_l1_rrr_x2, ADD2_s1_rrr, ADD4_l1_rrr_x2, ADDU_l1_rrp_...
502*9a0e4156SSadaf Ebrahimi    printOperand(MI, 1, O);
503*9a0e4156SSadaf Ebrahimi    SStream_concat0(O, ", ");
504*9a0e4156SSadaf Ebrahimi    break;
505*9a0e4156SSadaf Ebrahimi  case 3:
506*9a0e4156SSadaf Ebrahimi    // ADDAB_d1_rir, ADDAB_d1_rrr, ADDAD_d1_rir, ADDAD_d1_rrr, ADDAH_d1_rir, ...
507*9a0e4156SSadaf Ebrahimi    printOperand(MI, 2, O);
508*9a0e4156SSadaf Ebrahimi    SStream_concat0(O, ", ");
509*9a0e4156SSadaf Ebrahimi    break;
510*9a0e4156SSadaf Ebrahimi  case 4:
511*9a0e4156SSadaf Ebrahimi    // ADDU_l1_rpp, ADD_l1_ipp, ADD_l1_rpp, CMPEQ_l1_ipr, CMPEQ_l1_rpr, CMPGT...
512*9a0e4156SSadaf Ebrahimi    printRegPair(MI, 1, O);
513*9a0e4156SSadaf Ebrahimi    SStream_concat0(O, ", ");
514*9a0e4156SSadaf Ebrahimi    break;
515*9a0e4156SSadaf Ebrahimi  case 5:
516*9a0e4156SSadaf Ebrahimi    // BNOP_s10_ri, BNOP_s9_ii, STB_d5_rm, STB_d6_rm, STH_d5_rm, STH_d6_rm, S...
517*9a0e4156SSadaf Ebrahimi    SStream_concat0(O, ", ");
518*9a0e4156SSadaf Ebrahimi    break;
519*9a0e4156SSadaf Ebrahimi  case 6:
520*9a0e4156SSadaf Ebrahimi    // B_s5_i, B_s6_r, NOP_n
521*9a0e4156SSadaf Ebrahimi    return;
522*9a0e4156SSadaf Ebrahimi    break;
523*9a0e4156SSadaf Ebrahimi  }
524*9a0e4156SSadaf Ebrahimi
525*9a0e4156SSadaf Ebrahimi
526*9a0e4156SSadaf Ebrahimi  // Fragment 2 encoded into 3 bits for 8 unique commands.
527*9a0e4156SSadaf Ebrahimi  switch ((Bits >> 16) & 7) {
528*9a0e4156SSadaf Ebrahimi  default:
529*9a0e4156SSadaf Ebrahimi  case 0:
530*9a0e4156SSadaf Ebrahimi    // ABS2_l2_rr, ABS_l1_rr, ADDK_s2_ir, BDEC_s8_ir, BITC4_m2_rr, BPOS_s8_ir...
531*9a0e4156SSadaf Ebrahimi    return;
532*9a0e4156SSadaf Ebrahimi    break;
533*9a0e4156SSadaf Ebrahimi  case 1:
534*9a0e4156SSadaf Ebrahimi    // ADD2_d2_rrr, ADD2_l1_rrr_x2, ADD2_s1_rrr, ADD4_l1_rrr_x2, ADDAB_d1_rir...
535*9a0e4156SSadaf Ebrahimi    printOperand(MI, 0, O);
536*9a0e4156SSadaf Ebrahimi    return;
537*9a0e4156SSadaf Ebrahimi    break;
538*9a0e4156SSadaf Ebrahimi  case 2:
539*9a0e4156SSadaf Ebrahimi    // ADDKPC_s3_iir
540*9a0e4156SSadaf Ebrahimi    SStream_concat0(O, ", ");
541*9a0e4156SSadaf Ebrahimi    printOperand(MI, 2, O);
542*9a0e4156SSadaf Ebrahimi    return;
543*9a0e4156SSadaf Ebrahimi    break;
544*9a0e4156SSadaf Ebrahimi  case 3:
545*9a0e4156SSadaf Ebrahimi    // ADDU_l1_rpp, ADDU_l1_rrp_x2, ADD_l1_ipp, ADD_l1_rpp, ADD_l1_rrp_x2, DO...
546*9a0e4156SSadaf Ebrahimi    printRegPair(MI, 0, O);
547*9a0e4156SSadaf Ebrahimi    return;
548*9a0e4156SSadaf Ebrahimi    break;
549*9a0e4156SSadaf Ebrahimi  case 4:
550*9a0e4156SSadaf Ebrahimi    // BNOP_s10_ri, BNOP_s9_ii
551*9a0e4156SSadaf Ebrahimi    printOperand(MI, 1, O);
552*9a0e4156SSadaf Ebrahimi    return;
553*9a0e4156SSadaf Ebrahimi    break;
554*9a0e4156SSadaf Ebrahimi  case 5:
555*9a0e4156SSadaf Ebrahimi    // CLR_s15_riir, EXTU_s15_riir, EXT_s15_riir, SET_s15_riir
556*9a0e4156SSadaf Ebrahimi    printOperand(MI, 3, O);
557*9a0e4156SSadaf Ebrahimi    SStream_concat0(O, ", ");
558*9a0e4156SSadaf Ebrahimi    printOperand(MI, 0, O);
559*9a0e4156SSadaf Ebrahimi    return;
560*9a0e4156SSadaf Ebrahimi    break;
561*9a0e4156SSadaf Ebrahimi  case 6:
562*9a0e4156SSadaf Ebrahimi    // STB_d5_rm, STH_d5_rm, STNW_d5_rm, STW_d5_rm
563*9a0e4156SSadaf Ebrahimi    printMemOperand(MI, 1, O);
564*9a0e4156SSadaf Ebrahimi    return;
565*9a0e4156SSadaf Ebrahimi    break;
566*9a0e4156SSadaf Ebrahimi  case 7:
567*9a0e4156SSadaf Ebrahimi    // STB_d6_rm, STH_d6_rm, STW_d6_rm
568*9a0e4156SSadaf Ebrahimi    printMemOperand2(MI, 1, O);
569*9a0e4156SSadaf Ebrahimi    return;
570*9a0e4156SSadaf Ebrahimi    break;
571*9a0e4156SSadaf Ebrahimi  }
572*9a0e4156SSadaf Ebrahimi
573*9a0e4156SSadaf Ebrahimi}
574*9a0e4156SSadaf Ebrahimi
575*9a0e4156SSadaf Ebrahimi
576*9a0e4156SSadaf Ebrahimi/// getRegisterName - This method is automatically generated by tblgen
577*9a0e4156SSadaf Ebrahimi/// from the register set description.  This returns the assembler name
578*9a0e4156SSadaf Ebrahimi/// for the specified register.
579*9a0e4156SSadaf Ebrahimistatic char *getRegisterName(unsigned RegNo) {
580*9a0e4156SSadaf Ebrahimi#ifndef CAPSTONE_DIET
581*9a0e4156SSadaf Ebrahimi  static char AsmStrs[] = {
582*9a0e4156SSadaf Ebrahimi  /* 0 */ 'a', '1', '0', 0,
583*9a0e4156SSadaf Ebrahimi  /* 4 */ 'b', '1', '0', 0,
584*9a0e4156SSadaf Ebrahimi  /* 8 */ 'a', '2', '0', 0,
585*9a0e4156SSadaf Ebrahimi  /* 12 */ 'b', '2', '0', 0,
586*9a0e4156SSadaf Ebrahimi  /* 16 */ 'a', '3', '0', 0,
587*9a0e4156SSadaf Ebrahimi  /* 20 */ 'b', '3', '0', 0,
588*9a0e4156SSadaf Ebrahimi  /* 24 */ 'a', '0', 0,
589*9a0e4156SSadaf Ebrahimi  /* 27 */ 'b', '0', 0,
590*9a0e4156SSadaf Ebrahimi  /* 30 */ 'a', '1', '1', 0,
591*9a0e4156SSadaf Ebrahimi  /* 34 */ 'b', '1', '1', 0,
592*9a0e4156SSadaf Ebrahimi  /* 38 */ 'a', '2', '1', 0,
593*9a0e4156SSadaf Ebrahimi  /* 42 */ 'b', '2', '1', 0,
594*9a0e4156SSadaf Ebrahimi  /* 46 */ 'a', '3', '1', 0,
595*9a0e4156SSadaf Ebrahimi  /* 50 */ 'b', '3', '1', 0,
596*9a0e4156SSadaf Ebrahimi  /* 54 */ 'a', '1', 0,
597*9a0e4156SSadaf Ebrahimi  /* 57 */ 'b', '1', 0,
598*9a0e4156SSadaf Ebrahimi  /* 60 */ 'p', 'c', 'e', '1', 0,
599*9a0e4156SSadaf Ebrahimi  /* 65 */ 'a', '1', '2', 0,
600*9a0e4156SSadaf Ebrahimi  /* 69 */ 'b', '1', '2', 0,
601*9a0e4156SSadaf Ebrahimi  /* 73 */ 'a', '2', '2', 0,
602*9a0e4156SSadaf Ebrahimi  /* 77 */ 'b', '2', '2', 0,
603*9a0e4156SSadaf Ebrahimi  /* 81 */ 'a', '2', 0,
604*9a0e4156SSadaf Ebrahimi  /* 84 */ 'b', '2', 0,
605*9a0e4156SSadaf Ebrahimi  /* 87 */ 'a', '1', '3', 0,
606*9a0e4156SSadaf Ebrahimi  /* 91 */ 'b', '1', '3', 0,
607*9a0e4156SSadaf Ebrahimi  /* 95 */ 'a', '2', '3', 0,
608*9a0e4156SSadaf Ebrahimi  /* 99 */ 'b', '2', '3', 0,
609*9a0e4156SSadaf Ebrahimi  /* 103 */ 'a', '3', 0,
610*9a0e4156SSadaf Ebrahimi  /* 106 */ 'b', '3', 0,
611*9a0e4156SSadaf Ebrahimi  /* 109 */ 'a', '1', '4', 0,
612*9a0e4156SSadaf Ebrahimi  /* 113 */ 'b', '1', '4', 0,
613*9a0e4156SSadaf Ebrahimi  /* 117 */ 'a', '2', '4', 0,
614*9a0e4156SSadaf Ebrahimi  /* 121 */ 'b', '2', '4', 0,
615*9a0e4156SSadaf Ebrahimi  /* 125 */ 'a', '4', 0,
616*9a0e4156SSadaf Ebrahimi  /* 128 */ 'b', '4', 0,
617*9a0e4156SSadaf Ebrahimi  /* 131 */ 'a', '1', '5', 0,
618*9a0e4156SSadaf Ebrahimi  /* 135 */ 'b', '1', '5', 0,
619*9a0e4156SSadaf Ebrahimi  /* 139 */ 'a', '2', '5', 0,
620*9a0e4156SSadaf Ebrahimi  /* 143 */ 'b', '2', '5', 0,
621*9a0e4156SSadaf Ebrahimi  /* 147 */ 'a', '5', 0,
622*9a0e4156SSadaf Ebrahimi  /* 150 */ 'b', '5', 0,
623*9a0e4156SSadaf Ebrahimi  /* 153 */ 'a', '1', '6', 0,
624*9a0e4156SSadaf Ebrahimi  /* 157 */ 'b', '1', '6', 0,
625*9a0e4156SSadaf Ebrahimi  /* 161 */ 'a', '2', '6', 0,
626*9a0e4156SSadaf Ebrahimi  /* 165 */ 'b', '2', '6', 0,
627*9a0e4156SSadaf Ebrahimi  /* 169 */ 'a', '6', 0,
628*9a0e4156SSadaf Ebrahimi  /* 172 */ 'b', '6', 0,
629*9a0e4156SSadaf Ebrahimi  /* 175 */ 'a', '1', '7', 0,
630*9a0e4156SSadaf Ebrahimi  /* 179 */ 'b', '1', '7', 0,
631*9a0e4156SSadaf Ebrahimi  /* 183 */ 'a', '2', '7', 0,
632*9a0e4156SSadaf Ebrahimi  /* 187 */ 'b', '2', '7', 0,
633*9a0e4156SSadaf Ebrahimi  /* 191 */ 'a', '7', 0,
634*9a0e4156SSadaf Ebrahimi  /* 194 */ 'b', '7', 0,
635*9a0e4156SSadaf Ebrahimi  /* 197 */ 'a', '1', '8', 0,
636*9a0e4156SSadaf Ebrahimi  /* 201 */ 'b', '1', '8', 0,
637*9a0e4156SSadaf Ebrahimi  /* 205 */ 'a', '2', '8', 0,
638*9a0e4156SSadaf Ebrahimi  /* 209 */ 'b', '2', '8', 0,
639*9a0e4156SSadaf Ebrahimi  /* 213 */ 'a', '8', 0,
640*9a0e4156SSadaf Ebrahimi  /* 216 */ 'b', '8', 0,
641*9a0e4156SSadaf Ebrahimi  /* 219 */ 'a', '1', '9', 0,
642*9a0e4156SSadaf Ebrahimi  /* 223 */ 'b', '1', '9', 0,
643*9a0e4156SSadaf Ebrahimi  /* 227 */ 'a', '2', '9', 0,
644*9a0e4156SSadaf Ebrahimi  /* 231 */ 'b', '2', '9', 0,
645*9a0e4156SSadaf Ebrahimi  /* 235 */ 'a', '9', 0,
646*9a0e4156SSadaf Ebrahimi  /* 238 */ 'b', '9', 0,
647*9a0e4156SSadaf Ebrahimi  /* 241 */ 'g', 'p', 'l', 'y', 'a', 0,
648*9a0e4156SSadaf Ebrahimi  /* 247 */ 'g', 'p', 'l', 'y', 'b', 0,
649*9a0e4156SSadaf Ebrahimi  /* 253 */ 'r', 'i', 'l', 'c', 0,
650*9a0e4156SSadaf Ebrahimi  /* 258 */ 't', 's', 'c', 'h', 0,
651*9a0e4156SSadaf Ebrahimi  /* 263 */ 't', 's', 'c', 'l', 0,
652*9a0e4156SSadaf Ebrahimi  /* 268 */ 'd', 'n', 'u', 'm', 0,
653*9a0e4156SSadaf Ebrahimi  /* 273 */ 'r', 'e', 'p', 0,
654*9a0e4156SSadaf Ebrahimi  /* 277 */ 'i', 'r', 'p', 0,
655*9a0e4156SSadaf Ebrahimi  /* 281 */ 'n', 'r', 'p', 0,
656*9a0e4156SSadaf Ebrahimi  /* 285 */ 'i', 's', 't', 'p', 0,
657*9a0e4156SSadaf Ebrahimi  /* 290 */ 'e', 'c', 'r', 0,
658*9a0e4156SSadaf Ebrahimi  /* 294 */ 'i', 'c', 'r', 0,
659*9a0e4156SSadaf Ebrahimi  /* 298 */ 'd', 'i', 'e', 'r', 0,
660*9a0e4156SSadaf Ebrahimi  /* 303 */ 'g', 'f', 'p', 'g', 'f', 'r', 0,
661*9a0e4156SSadaf Ebrahimi  /* 310 */ 'a', 'm', 'r', 0,
662*9a0e4156SSadaf Ebrahimi  /* 314 */ 'i', 'e', 'r', 'r', 0,
663*9a0e4156SSadaf Ebrahimi  /* 319 */ 'c', 's', 'r', 0,
664*9a0e4156SSadaf Ebrahimi  /* 323 */ 'i', 's', 'r', 0,
665*9a0e4156SSadaf Ebrahimi  /* 327 */ 's', 's', 'r', 0,
666*9a0e4156SSadaf Ebrahimi  /* 331 */ 'i', 't', 's', 'r', 0,
667*9a0e4156SSadaf Ebrahimi  /* 336 */ 'n', 't', 's', 'r', 0,
668*9a0e4156SSadaf Ebrahimi  };
669*9a0e4156SSadaf Ebrahimi
670*9a0e4156SSadaf Ebrahimi  static const uint16_t RegAsmOffset[] = {
671*9a0e4156SSadaf Ebrahimi    310, 319, 298, 268, 290, 303, 241, 247, 294, 299, 314, 254, 277, 323,
672*9a0e4156SSadaf Ebrahimi    285, 331, 281, 336, 273, 253, 327, 258, 263, 332, 24, 54, 81, 103,
673*9a0e4156SSadaf Ebrahimi    125, 147, 169, 191, 213, 235, 0, 30, 65, 87, 109, 131, 153, 175,
674*9a0e4156SSadaf Ebrahimi    197, 219, 8, 38, 73, 95, 117, 139, 161, 183, 205, 227, 16, 46,
675*9a0e4156SSadaf Ebrahimi    27, 57, 84, 106, 128, 150, 172, 194, 216, 238, 4, 34, 69, 91,
676*9a0e4156SSadaf Ebrahimi    113, 135, 157, 179, 201, 223, 12, 42, 77, 99, 121, 143, 165, 187,
677*9a0e4156SSadaf Ebrahimi    209, 231, 20, 50, 60,
678*9a0e4156SSadaf Ebrahimi  };
679*9a0e4156SSadaf Ebrahimi
680*9a0e4156SSadaf Ebrahimi  return AsmStrs+RegAsmOffset[RegNo-1];
681*9a0e4156SSadaf Ebrahimi#else
682*9a0e4156SSadaf Ebrahimi  return NULL;
683*9a0e4156SSadaf Ebrahimi#endif
684*9a0e4156SSadaf Ebrahimi}
685