1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* Machine Code Emitter *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* *|
7\*===----------------------------------------------------------------------===*/
8
9uint64_t MipsMCCodeEmitter::getBinaryCodeForInstr(const MCInst &MI,
10 SmallVectorImpl<MCFixup> &Fixups,
11 const MCSubtargetInfo &STI) const {
12 static const uint64_t InstBits[] = {
13 UINT64_C(2080375378), // ABSQ_S_PH
14 UINT64_C(4412), // ABSQ_S_PH_MM
15 UINT64_C(2080374866), // ABSQ_S_QB
16 UINT64_C(316), // ABSQ_S_QB_MMR2
17 UINT64_C(2080375890), // ABSQ_S_W
18 UINT64_C(8508), // ABSQ_S_W_MM
19 UINT64_C(32), // ADD
20 UINT64_C(3959422976), // ADDIUPC
21 UINT64_C(2013265920), // ADDIUPC_MM
22 UINT64_C(2013265920), // ADDIUPC_MMR6
23 UINT64_C(27649), // ADDIUR1SP_MM
24 UINT64_C(27648), // ADDIUR2_MM
25 UINT64_C(19456), // ADDIUS5_MM
26 UINT64_C(19457), // ADDIUSP_MM
27 UINT64_C(805306368), // ADDIU_MMR6
28 UINT64_C(2080375320), // ADDQH_PH
29 UINT64_C(77), // ADDQH_PH_MMR2
30 UINT64_C(2080375448), // ADDQH_R_PH
31 UINT64_C(1101), // ADDQH_R_PH_MMR2
32 UINT64_C(2080375960), // ADDQH_R_W
33 UINT64_C(1165), // ADDQH_R_W_MMR2
34 UINT64_C(2080375832), // ADDQH_W
35 UINT64_C(141), // ADDQH_W_MMR2
36 UINT64_C(2080375440), // ADDQ_PH
37 UINT64_C(13), // ADDQ_PH_MM
38 UINT64_C(2080375696), // ADDQ_S_PH
39 UINT64_C(1037), // ADDQ_S_PH_MM
40 UINT64_C(2080376208), // ADDQ_S_W
41 UINT64_C(773), // ADDQ_S_W_MM
42 UINT64_C(1186988056), // ADDR_PS64
43 UINT64_C(2080375824), // ADDSC
44 UINT64_C(901), // ADDSC_MM
45 UINT64_C(2021654544), // ADDS_A_B
46 UINT64_C(2027946000), // ADDS_A_D
47 UINT64_C(2023751696), // ADDS_A_H
48 UINT64_C(2025848848), // ADDS_A_W
49 UINT64_C(2030043152), // ADDS_S_B
50 UINT64_C(2036334608), // ADDS_S_D
51 UINT64_C(2032140304), // ADDS_S_H
52 UINT64_C(2034237456), // ADDS_S_W
53 UINT64_C(2038431760), // ADDS_U_B
54 UINT64_C(2044723216), // ADDS_U_D
55 UINT64_C(2040528912), // ADDS_U_H
56 UINT64_C(2042626064), // ADDS_U_W
57 UINT64_C(1024), // ADDU16_MM
58 UINT64_C(1024), // ADDU16_MMR6
59 UINT64_C(2080374808), // ADDUH_QB
60 UINT64_C(333), // ADDUH_QB_MMR2
61 UINT64_C(2080374936), // ADDUH_R_QB
62 UINT64_C(1357), // ADDUH_R_QB_MMR2
63 UINT64_C(336), // ADDU_MMR6
64 UINT64_C(2080375312), // ADDU_PH
65 UINT64_C(269), // ADDU_PH_MMR2
66 UINT64_C(2080374800), // ADDU_QB
67 UINT64_C(205), // ADDU_QB_MM
68 UINT64_C(2080375568), // ADDU_S_PH
69 UINT64_C(1293), // ADDU_S_PH_MMR2
70 UINT64_C(2080375056), // ADDU_S_QB
71 UINT64_C(1229), // ADDU_S_QB_MM
72 UINT64_C(2013265926), // ADDVI_B
73 UINT64_C(2019557382), // ADDVI_D
74 UINT64_C(2015363078), // ADDVI_H
75 UINT64_C(2017460230), // ADDVI_W
76 UINT64_C(2013265934), // ADDV_B
77 UINT64_C(2019557390), // ADDV_D
78 UINT64_C(2015363086), // ADDV_H
79 UINT64_C(2017460238), // ADDV_W
80 UINT64_C(2080375888), // ADDWC
81 UINT64_C(965), // ADDWC_MM
82 UINT64_C(2013265936), // ADD_A_B
83 UINT64_C(2019557392), // ADD_A_D
84 UINT64_C(2015363088), // ADD_A_H
85 UINT64_C(2017460240), // ADD_A_W
86 UINT64_C(272), // ADD_MM
87 UINT64_C(272), // ADD_MMR6
88 UINT64_C(536870912), // ADDi
89 UINT64_C(268435456), // ADDi_MM
90 UINT64_C(603979776), // ADDiu
91 UINT64_C(805306368), // ADDiu_MM
92 UINT64_C(33), // ADDu
93 UINT64_C(336), // ADDu_MM
94 UINT64_C(2080375328), // ALIGN
95 UINT64_C(31), // ALIGN_MMR6
96 UINT64_C(3961454592), // ALUIPC
97 UINT64_C(2015297536), // ALUIPC_MMR6
98 UINT64_C(36), // AND
99 UINT64_C(17536), // AND16_MM
100 UINT64_C(17409), // AND16_MMR6
101 UINT64_C(36), // AND64
102 UINT64_C(11264), // ANDI16_MM
103 UINT64_C(11264), // ANDI16_MMR6
104 UINT64_C(2013265920), // ANDI_B
105 UINT64_C(3489660928), // ANDI_MMR6
106 UINT64_C(592), // AND_MM
107 UINT64_C(592), // AND_MMR6
108 UINT64_C(2013265950), // AND_V
109 UINT64_C(805306368), // ANDi
110 UINT64_C(805306368), // ANDi64
111 UINT64_C(3489660928), // ANDi_MM
112 UINT64_C(2080374833), // APPEND
113 UINT64_C(533), // APPEND_MMR2
114 UINT64_C(2046820369), // ASUB_S_B
115 UINT64_C(2053111825), // ASUB_S_D
116 UINT64_C(2048917521), // ASUB_S_H
117 UINT64_C(2051014673), // ASUB_S_W
118 UINT64_C(2055208977), // ASUB_U_B
119 UINT64_C(2061500433), // ASUB_U_D
120 UINT64_C(2057306129), // ASUB_U_H
121 UINT64_C(2059403281), // ASUB_U_W
122 UINT64_C(1006632960), // AUI
123 UINT64_C(3961389056), // AUIPC
124 UINT64_C(2015232000), // AUIPC_MMR6
125 UINT64_C(268435456), // AUI_MMR6
126 UINT64_C(2063597584), // AVER_S_B
127 UINT64_C(2069889040), // AVER_S_D
128 UINT64_C(2065694736), // AVER_S_H
129 UINT64_C(2067791888), // AVER_S_W
130 UINT64_C(2071986192), // AVER_U_B
131 UINT64_C(2078277648), // AVER_U_D
132 UINT64_C(2074083344), // AVER_U_H
133 UINT64_C(2076180496), // AVER_U_W
134 UINT64_C(2046820368), // AVE_S_B
135 UINT64_C(2053111824), // AVE_S_D
136 UINT64_C(2048917520), // AVE_S_H
137 UINT64_C(2051014672), // AVE_S_W
138 UINT64_C(2055208976), // AVE_U_B
139 UINT64_C(2061500432), // AVE_U_D
140 UINT64_C(2057306128), // AVE_U_H
141 UINT64_C(2059403280), // AVE_U_W
142 UINT64_C(4026550272), // AddiuRxImmX16
143 UINT64_C(4026533888), // AddiuRxPcImmX16
144 UINT64_C(18432), // AddiuRxRxImm16
145 UINT64_C(4026550272), // AddiuRxRxImmX16
146 UINT64_C(4026548224), // AddiuRxRyOffMemX16
147 UINT64_C(25344), // AddiuSpImm16
148 UINT64_C(4026544896), // AddiuSpImmX16
149 UINT64_C(57345), // AdduRxRyRz16
150 UINT64_C(59404), // AndRxRxRy16
151 UINT64_C(52224), // B16_MM
152 UINT64_C(1879048232), // BADDu
153 UINT64_C(68222976), // BAL
154 UINT64_C(3892314112), // BALC
155 UINT64_C(3019898880), // BALC_MMR6
156 UINT64_C(2080375857), // BALIGN
157 UINT64_C(2236), // BALIGN_MMR2
158 UINT64_C(3355443200), // BBIT0
159 UINT64_C(3623878656), // BBIT032
160 UINT64_C(3892314112), // BBIT1
161 UINT64_C(4160749568), // BBIT132
162 UINT64_C(3355443200), // BC
163 UINT64_C(52224), // BC16_MMR6
164 UINT64_C(1159725056), // BC1EQZ
165 UINT64_C(1090519040), // BC1EQZC_MMR6
166 UINT64_C(1157627904), // BC1F
167 UINT64_C(1157758976), // BC1FL
168 UINT64_C(1132462080), // BC1F_MM
169 UINT64_C(1168113664), // BC1NEZ
170 UINT64_C(1092616192), // BC1NEZC_MMR6
171 UINT64_C(1157693440), // BC1T
172 UINT64_C(1157824512), // BC1TL
173 UINT64_C(1134559232), // BC1T_MM
174 UINT64_C(1226833920), // BC2EQZ
175 UINT64_C(1094713344), // BC2EQZC_MMR6
176 UINT64_C(1235222528), // BC2NEZ
177 UINT64_C(1096810496), // BC2NEZC_MMR6
178 UINT64_C(2045771785), // BCLRI_B
179 UINT64_C(2038431753), // BCLRI_D
180 UINT64_C(2044723209), // BCLRI_H
181 UINT64_C(2042626057), // BCLRI_W
182 UINT64_C(2038431757), // BCLR_B
183 UINT64_C(2044723213), // BCLR_D
184 UINT64_C(2040528909), // BCLR_H
185 UINT64_C(2042626061), // BCLR_W
186 UINT64_C(2483027968), // BC_MMR6
187 UINT64_C(268435456), // BEQ
188 UINT64_C(268435456), // BEQ64
189 UINT64_C(536870912), // BEQC
190 UINT64_C(536870912), // BEQC64
191 UINT64_C(1946157056), // BEQC_MMR6
192 UINT64_C(1342177280), // BEQL
193 UINT64_C(35840), // BEQZ16_MM
194 UINT64_C(536870912), // BEQZALC
195 UINT64_C(1946157056), // BEQZALC_MMR6
196 UINT64_C(3623878656), // BEQZC
197 UINT64_C(35840), // BEQZC16_MMR6
198 UINT64_C(3623878656), // BEQZC64
199 UINT64_C(1088421888), // BEQZC_MM
200 UINT64_C(2147483648), // BEQZC_MMR6
201 UINT64_C(2483027968), // BEQ_MM
202 UINT64_C(1476395008), // BGEC
203 UINT64_C(1476395008), // BGEC64
204 UINT64_C(4093640704), // BGEC_MMR6
205 UINT64_C(402653184), // BGEUC
206 UINT64_C(402653184), // BGEUC64
207 UINT64_C(3221225472), // BGEUC_MMR6
208 UINT64_C(67174400), // BGEZ
209 UINT64_C(67174400), // BGEZ64
210 UINT64_C(68222976), // BGEZAL
211 UINT64_C(402653184), // BGEZALC
212 UINT64_C(3221225472), // BGEZALC_MMR6
213 UINT64_C(68354048), // BGEZALL
214 UINT64_C(1113587712), // BGEZALS_MM
215 UINT64_C(1080033280), // BGEZAL_MM
216 UINT64_C(1476395008), // BGEZC
217 UINT64_C(1476395008), // BGEZC64
218 UINT64_C(4093640704), // BGEZC_MMR6
219 UINT64_C(67305472), // BGEZL
220 UINT64_C(1077936128), // BGEZ_MM
221 UINT64_C(469762048), // BGTZ
222 UINT64_C(469762048), // BGTZ64
223 UINT64_C(469762048), // BGTZALC
224 UINT64_C(3758096384), // BGTZALC_MMR6
225 UINT64_C(1543503872), // BGTZC
226 UINT64_C(1543503872), // BGTZC64
227 UINT64_C(3556769792), // BGTZC_MMR6
228 UINT64_C(1543503872), // BGTZL
229 UINT64_C(1086324736), // BGTZ_MM
230 UINT64_C(2070937609), // BINSLI_B
231 UINT64_C(2063597577), // BINSLI_D
232 UINT64_C(2069889033), // BINSLI_H
233 UINT64_C(2067791881), // BINSLI_W
234 UINT64_C(2063597581), // BINSL_B
235 UINT64_C(2069889037), // BINSL_D
236 UINT64_C(2065694733), // BINSL_H
237 UINT64_C(2067791885), // BINSL_W
238 UINT64_C(2079326217), // BINSRI_B
239 UINT64_C(2071986185), // BINSRI_D
240 UINT64_C(2078277641), // BINSRI_H
241 UINT64_C(2076180489), // BINSRI_W
242 UINT64_C(2071986189), // BINSR_B
243 UINT64_C(2078277645), // BINSR_D
244 UINT64_C(2074083341), // BINSR_H
245 UINT64_C(2076180493), // BINSR_W
246 UINT64_C(2080376530), // BITREV
247 UINT64_C(12604), // BITREV_MM
248 UINT64_C(2080374816), // BITSWAP
249 UINT64_C(2876), // BITSWAP_MMR6
250 UINT64_C(402653184), // BLEZ
251 UINT64_C(402653184), // BLEZ64
252 UINT64_C(402653184), // BLEZALC
253 UINT64_C(3221225472), // BLEZALC_MMR6
254 UINT64_C(1476395008), // BLEZC
255 UINT64_C(1476395008), // BLEZC64
256 UINT64_C(4093640704), // BLEZC_MMR6
257 UINT64_C(1476395008), // BLEZL
258 UINT64_C(1082130432), // BLEZ_MM
259 UINT64_C(1543503872), // BLTC
260 UINT64_C(1543503872), // BLTC64
261 UINT64_C(3556769792), // BLTC_MMR6
262 UINT64_C(469762048), // BLTUC
263 UINT64_C(469762048), // BLTUC64
264 UINT64_C(3758096384), // BLTUC_MMR6
265 UINT64_C(67108864), // BLTZ
266 UINT64_C(67108864), // BLTZ64
267 UINT64_C(68157440), // BLTZAL
268 UINT64_C(469762048), // BLTZALC
269 UINT64_C(3758096384), // BLTZALC_MMR6
270 UINT64_C(68288512), // BLTZALL
271 UINT64_C(1109393408), // BLTZALS_MM
272 UINT64_C(1075838976), // BLTZAL_MM
273 UINT64_C(1543503872), // BLTZC
274 UINT64_C(1543503872), // BLTZC64
275 UINT64_C(3556769792), // BLTZC_MMR6
276 UINT64_C(67239936), // BLTZL
277 UINT64_C(1073741824), // BLTZ_MM
278 UINT64_C(2013265921), // BMNZI_B
279 UINT64_C(2021654558), // BMNZ_V
280 UINT64_C(2030043137), // BMZI_B
281 UINT64_C(2023751710), // BMZ_V
282 UINT64_C(335544320), // BNE
283 UINT64_C(335544320), // BNE64
284 UINT64_C(1610612736), // BNEC
285 UINT64_C(1610612736), // BNEC64
286 UINT64_C(2080374784), // BNEC_MMR6
287 UINT64_C(2062549001), // BNEGI_B
288 UINT64_C(2055208969), // BNEGI_D
289 UINT64_C(2061500425), // BNEGI_H
290 UINT64_C(2059403273), // BNEGI_W
291 UINT64_C(2055208973), // BNEG_B
292 UINT64_C(2061500429), // BNEG_D
293 UINT64_C(2057306125), // BNEG_H
294 UINT64_C(2059403277), // BNEG_W
295 UINT64_C(1409286144), // BNEL
296 UINT64_C(44032), // BNEZ16_MM
297 UINT64_C(1610612736), // BNEZALC
298 UINT64_C(2080374784), // BNEZALC_MMR6
299 UINT64_C(4160749568), // BNEZC
300 UINT64_C(44032), // BNEZC16_MMR6
301 UINT64_C(4160749568), // BNEZC64
302 UINT64_C(1084227584), // BNEZC_MM
303 UINT64_C(2684354560), // BNEZC_MMR6
304 UINT64_C(3019898880), // BNE_MM
305 UINT64_C(1610612736), // BNVC
306 UINT64_C(2080374784), // BNVC_MMR6
307 UINT64_C(1199570944), // BNZ_B
308 UINT64_C(1205862400), // BNZ_D
309 UINT64_C(1201668096), // BNZ_H
310 UINT64_C(1172307968), // BNZ_V
311 UINT64_C(1203765248), // BNZ_W
312 UINT64_C(536870912), // BOVC
313 UINT64_C(1946157056), // BOVC_MMR6
314 UINT64_C(68943872), // BPOSGE32
315 UINT64_C(1126170624), // BPOSGE32C_MMR3
316 UINT64_C(1130364928), // BPOSGE32_MM
317 UINT64_C(13), // BREAK
318 UINT64_C(18048), // BREAK16_MM
319 UINT64_C(17435), // BREAK16_MMR6
320 UINT64_C(7), // BREAK_MM
321 UINT64_C(7), // BREAK_MMR6
322 UINT64_C(2046820353), // BSELI_B
323 UINT64_C(2025848862), // BSEL_V
324 UINT64_C(2054160393), // BSETI_B
325 UINT64_C(2046820361), // BSETI_D
326 UINT64_C(2053111817), // BSETI_H
327 UINT64_C(2051014665), // BSETI_W
328 UINT64_C(2046820365), // BSET_B
329 UINT64_C(2053111821), // BSET_D
330 UINT64_C(2048917517), // BSET_H
331 UINT64_C(2051014669), // BSET_W
332 UINT64_C(1191182336), // BZ_B
333 UINT64_C(1197473792), // BZ_D
334 UINT64_C(1193279488), // BZ_H
335 UINT64_C(1163919360), // BZ_V
336 UINT64_C(1195376640), // BZ_W
337 UINT64_C(8192), // BeqzRxImm16
338 UINT64_C(4026540032), // BeqzRxImmX16
339 UINT64_C(4096), // Bimm16
340 UINT64_C(4026535936), // BimmX16
341 UINT64_C(10240), // BnezRxImm16
342 UINT64_C(4026542080), // BnezRxImmX16
343 UINT64_C(59397), // Break16
344 UINT64_C(24576), // Bteqz16
345 UINT64_C(4026544128), // BteqzX16
346 UINT64_C(24832), // Btnez16
347 UINT64_C(4026544384), // BtnezX16
348 UINT64_C(3154116608), // CACHE
349 UINT64_C(2080374811), // CACHEE
350 UINT64_C(1610655232), // CACHEE_MM
351 UINT64_C(536895488), // CACHE_MM
352 UINT64_C(536895488), // CACHE_MMR6
353 UINT64_C(2080374821), // CACHE_R6
354 UINT64_C(1176502282), // CEIL_L_D64
355 UINT64_C(1409307451), // CEIL_L_D_MMR6
356 UINT64_C(1174405130), // CEIL_L_S
357 UINT64_C(1409291067), // CEIL_L_S_MMR6
358 UINT64_C(1176502286), // CEIL_W_D32
359 UINT64_C(1176502286), // CEIL_W_D64
360 UINT64_C(1409309499), // CEIL_W_D_MMR6
361 UINT64_C(1409309499), // CEIL_W_MM
362 UINT64_C(1174405134), // CEIL_W_S
363 UINT64_C(1409293115), // CEIL_W_S_MM
364 UINT64_C(1409293115), // CEIL_W_S_MMR6
365 UINT64_C(2013265927), // CEQI_B
366 UINT64_C(2019557383), // CEQI_D
367 UINT64_C(2015363079), // CEQI_H
368 UINT64_C(2017460231), // CEQI_W
369 UINT64_C(2013265935), // CEQ_B
370 UINT64_C(2019557391), // CEQ_D
371 UINT64_C(2015363087), // CEQ_H
372 UINT64_C(2017460239), // CEQ_W
373 UINT64_C(1145044992), // CFC1
374 UINT64_C(1409290299), // CFC1_MM
375 UINT64_C(52540), // CFC2_MM
376 UINT64_C(2021523481), // CFCMSA
377 UINT64_C(1879048242), // CINS
378 UINT64_C(1879048243), // CINS32
379 UINT64_C(1879048242), // CINS64_32
380 UINT64_C(1879048242), // CINS_i32
381 UINT64_C(1176502299), // CLASS_D
382 UINT64_C(1409286752), // CLASS_D_MMR6
383 UINT64_C(1174405147), // CLASS_S
384 UINT64_C(1409286240), // CLASS_S_MMR6
385 UINT64_C(2046820359), // CLEI_S_B
386 UINT64_C(2053111815), // CLEI_S_D
387 UINT64_C(2048917511), // CLEI_S_H
388 UINT64_C(2051014663), // CLEI_S_W
389 UINT64_C(2055208967), // CLEI_U_B
390 UINT64_C(2061500423), // CLEI_U_D
391 UINT64_C(2057306119), // CLEI_U_H
392 UINT64_C(2059403271), // CLEI_U_W
393 UINT64_C(2046820367), // CLE_S_B
394 UINT64_C(2053111823), // CLE_S_D
395 UINT64_C(2048917519), // CLE_S_H
396 UINT64_C(2051014671), // CLE_S_W
397 UINT64_C(2055208975), // CLE_U_B
398 UINT64_C(2061500431), // CLE_U_D
399 UINT64_C(2057306127), // CLE_U_H
400 UINT64_C(2059403279), // CLE_U_W
401 UINT64_C(1879048225), // CLO
402 UINT64_C(19260), // CLO_MM
403 UINT64_C(19260), // CLO_MMR6
404 UINT64_C(81), // CLO_R6
405 UINT64_C(2030043143), // CLTI_S_B
406 UINT64_C(2036334599), // CLTI_S_D
407 UINT64_C(2032140295), // CLTI_S_H
408 UINT64_C(2034237447), // CLTI_S_W
409 UINT64_C(2038431751), // CLTI_U_B
410 UINT64_C(2044723207), // CLTI_U_D
411 UINT64_C(2040528903), // CLTI_U_H
412 UINT64_C(2042626055), // CLTI_U_W
413 UINT64_C(2030043151), // CLT_S_B
414 UINT64_C(2036334607), // CLT_S_D
415 UINT64_C(2032140303), // CLT_S_H
416 UINT64_C(2034237455), // CLT_S_W
417 UINT64_C(2038431759), // CLT_U_B
418 UINT64_C(2044723215), // CLT_U_D
419 UINT64_C(2040528911), // CLT_U_H
420 UINT64_C(2042626063), // CLT_U_W
421 UINT64_C(1879048224), // CLZ
422 UINT64_C(23356), // CLZ_MM
423 UINT64_C(80), // CLZ_MMR6
424 UINT64_C(80), // CLZ_R6
425 UINT64_C(2080376337), // CMPGDU_EQ_QB
426 UINT64_C(389), // CMPGDU_EQ_QB_MMR2
427 UINT64_C(2080376465), // CMPGDU_LE_QB
428 UINT64_C(517), // CMPGDU_LE_QB_MMR2
429 UINT64_C(2080376401), // CMPGDU_LT_QB
430 UINT64_C(453), // CMPGDU_LT_QB_MMR2
431 UINT64_C(2080375057), // CMPGU_EQ_QB
432 UINT64_C(1476395205), // CMPGU_EQ_QB_MM
433 UINT64_C(2080375185), // CMPGU_LE_QB
434 UINT64_C(1476395333), // CMPGU_LE_QB_MM
435 UINT64_C(2080375121), // CMPGU_LT_QB
436 UINT64_C(1476395269), // CMPGU_LT_QB_MM
437 UINT64_C(2080374801), // CMPU_EQ_QB
438 UINT64_C(581), // CMPU_EQ_QB_MM
439 UINT64_C(2080374929), // CMPU_LE_QB
440 UINT64_C(709), // CMPU_LE_QB_MM
441 UINT64_C(2080374865), // CMPU_LT_QB
442 UINT64_C(645), // CMPU_LT_QB_MM
443 UINT64_C(1409286165), // CMP_AF_D_MMR6
444 UINT64_C(1409286149), // CMP_AF_S_MMR6
445 UINT64_C(1184890882), // CMP_EQ_D
446 UINT64_C(1409286293), // CMP_EQ_D_MMR6
447 UINT64_C(2080375313), // CMP_EQ_PH
448 UINT64_C(5), // CMP_EQ_PH_MM
449 UINT64_C(1182793730), // CMP_EQ_S
450 UINT64_C(1409286277), // CMP_EQ_S_MMR6
451 UINT64_C(1184890880), // CMP_F_D
452 UINT64_C(1182793728), // CMP_F_S
453 UINT64_C(1184890886), // CMP_LE_D
454 UINT64_C(1409286549), // CMP_LE_D_MMR6
455 UINT64_C(2080375441), // CMP_LE_PH
456 UINT64_C(133), // CMP_LE_PH_MM
457 UINT64_C(1182793734), // CMP_LE_S
458 UINT64_C(1409286533), // CMP_LE_S_MMR6
459 UINT64_C(1184890884), // CMP_LT_D
460 UINT64_C(1409286421), // CMP_LT_D_MMR6
461 UINT64_C(2080375377), // CMP_LT_PH
462 UINT64_C(69), // CMP_LT_PH_MM
463 UINT64_C(1182793732), // CMP_LT_S
464 UINT64_C(1409286405), // CMP_LT_S_MMR6
465 UINT64_C(1184890888), // CMP_SAF_D
466 UINT64_C(1409286677), // CMP_SAF_D_MMR6
467 UINT64_C(1182793736), // CMP_SAF_S
468 UINT64_C(1409286661), // CMP_SAF_S_MMR6
469 UINT64_C(1184890890), // CMP_SEQ_D
470 UINT64_C(1409286805), // CMP_SEQ_D_MMR6
471 UINT64_C(1182793738), // CMP_SEQ_S
472 UINT64_C(1409286789), // CMP_SEQ_S_MMR6
473 UINT64_C(1184890894), // CMP_SLE_D
474 UINT64_C(1409287061), // CMP_SLE_D_MMR6
475 UINT64_C(1182793742), // CMP_SLE_S
476 UINT64_C(1409287045), // CMP_SLE_S_MMR6
477 UINT64_C(1184890892), // CMP_SLT_D
478 UINT64_C(1409286933), // CMP_SLT_D_MMR6
479 UINT64_C(1182793740), // CMP_SLT_S
480 UINT64_C(1409286917), // CMP_SLT_S_MMR6
481 UINT64_C(1184890891), // CMP_SUEQ_D
482 UINT64_C(1409286869), // CMP_SUEQ_D_MMR6
483 UINT64_C(1182793739), // CMP_SUEQ_S
484 UINT64_C(1409286853), // CMP_SUEQ_S_MMR6
485 UINT64_C(1184890895), // CMP_SULE_D
486 UINT64_C(1409287125), // CMP_SULE_D_MMR6
487 UINT64_C(1182793743), // CMP_SULE_S
488 UINT64_C(1409287109), // CMP_SULE_S_MMR6
489 UINT64_C(1184890893), // CMP_SULT_D
490 UINT64_C(1409286997), // CMP_SULT_D_MMR6
491 UINT64_C(1182793741), // CMP_SULT_S
492 UINT64_C(1409286981), // CMP_SULT_S_MMR6
493 UINT64_C(1184890889), // CMP_SUN_D
494 UINT64_C(1409286741), // CMP_SUN_D_MMR6
495 UINT64_C(1182793737), // CMP_SUN_S
496 UINT64_C(1409286725), // CMP_SUN_S_MMR6
497 UINT64_C(1184890883), // CMP_UEQ_D
498 UINT64_C(1409286357), // CMP_UEQ_D_MMR6
499 UINT64_C(1182793731), // CMP_UEQ_S
500 UINT64_C(1409286341), // CMP_UEQ_S_MMR6
501 UINT64_C(1184890887), // CMP_ULE_D
502 UINT64_C(1409286613), // CMP_ULE_D_MMR6
503 UINT64_C(1182793735), // CMP_ULE_S
504 UINT64_C(1409286597), // CMP_ULE_S_MMR6
505 UINT64_C(1184890885), // CMP_ULT_D
506 UINT64_C(1409286485), // CMP_ULT_D_MMR6
507 UINT64_C(1182793733), // CMP_ULT_S
508 UINT64_C(1409286469), // CMP_ULT_S_MMR6
509 UINT64_C(1184890881), // CMP_UN_D
510 UINT64_C(1409286229), // CMP_UN_D_MMR6
511 UINT64_C(1182793729), // CMP_UN_S
512 UINT64_C(1409286213), // CMP_UN_S_MMR6
513 UINT64_C(2021654553), // COPY_S_B
514 UINT64_C(2025324569), // COPY_S_D
515 UINT64_C(2023751705), // COPY_S_H
516 UINT64_C(2024800281), // COPY_S_W
517 UINT64_C(2025848857), // COPY_U_B
518 UINT64_C(2027946009), // COPY_U_H
519 UINT64_C(2028994585), // COPY_U_W
520 UINT64_C(2080374799), // CRC32B
521 UINT64_C(2080375055), // CRC32CB
522 UINT64_C(2080375247), // CRC32CD
523 UINT64_C(2080375119), // CRC32CH
524 UINT64_C(2080375183), // CRC32CW
525 UINT64_C(2080374991), // CRC32D
526 UINT64_C(2080374863), // CRC32H
527 UINT64_C(2080374927), // CRC32W
528 UINT64_C(1153433600), // CTC1
529 UINT64_C(1409292347), // CTC1_MM
530 UINT64_C(56636), // CTC2_MM
531 UINT64_C(2017329177), // CTCMSA
532 UINT64_C(1174405153), // CVT_D32_S
533 UINT64_C(1409291131), // CVT_D32_S_MM
534 UINT64_C(1182793761), // CVT_D32_W
535 UINT64_C(1409299323), // CVT_D32_W_MM
536 UINT64_C(1184890913), // CVT_D64_L
537 UINT64_C(1174405153), // CVT_D64_S
538 UINT64_C(1409291131), // CVT_D64_S_MM
539 UINT64_C(1182793761), // CVT_D64_W
540 UINT64_C(1409299323), // CVT_D64_W_MM
541 UINT64_C(1409307515), // CVT_D_L_MMR6
542 UINT64_C(1176502309), // CVT_L_D64
543 UINT64_C(1409302843), // CVT_L_D64_MM
544 UINT64_C(1409302843), // CVT_L_D_MMR6
545 UINT64_C(1174405157), // CVT_L_S
546 UINT64_C(1409286459), // CVT_L_S_MM
547 UINT64_C(1409286459), // CVT_L_S_MMR6
548 UINT64_C(1182793766), // CVT_PS_PW64
549 UINT64_C(1174405158), // CVT_PS_S64
550 UINT64_C(1186988068), // CVT_PW_PS64
551 UINT64_C(1176502304), // CVT_S_D32
552 UINT64_C(1409293179), // CVT_S_D32_MM
553 UINT64_C(1176502304), // CVT_S_D64
554 UINT64_C(1409293179), // CVT_S_D64_MM
555 UINT64_C(1184890912), // CVT_S_L
556 UINT64_C(1409309563), // CVT_S_L_MMR6
557 UINT64_C(1186988072), // CVT_S_PL64
558 UINT64_C(1186988064), // CVT_S_PU64
559 UINT64_C(1182793760), // CVT_S_W
560 UINT64_C(1409301371), // CVT_S_W_MM
561 UINT64_C(1409301371), // CVT_S_W_MMR6
562 UINT64_C(1176502308), // CVT_W_D32
563 UINT64_C(1409304891), // CVT_W_D32_MM
564 UINT64_C(1176502308), // CVT_W_D64
565 UINT64_C(1409304891), // CVT_W_D64_MM
566 UINT64_C(1174405156), // CVT_W_S
567 UINT64_C(1409288507), // CVT_W_S_MM
568 UINT64_C(1409288507), // CVT_W_S_MMR6
569 UINT64_C(1176502322), // C_EQ_D32
570 UINT64_C(1409287356), // C_EQ_D32_MM
571 UINT64_C(1176502322), // C_EQ_D64
572 UINT64_C(1409287356), // C_EQ_D64_MM
573 UINT64_C(1174405170), // C_EQ_S
574 UINT64_C(1409286332), // C_EQ_S_MM
575 UINT64_C(1176502320), // C_F_D32
576 UINT64_C(1409287228), // C_F_D32_MM
577 UINT64_C(1176502320), // C_F_D64
578 UINT64_C(1409287228), // C_F_D64_MM
579 UINT64_C(1174405168), // C_F_S
580 UINT64_C(1409286204), // C_F_S_MM
581 UINT64_C(1176502334), // C_LE_D32
582 UINT64_C(1409288124), // C_LE_D32_MM
583 UINT64_C(1176502334), // C_LE_D64
584 UINT64_C(1409288124), // C_LE_D64_MM
585 UINT64_C(1174405182), // C_LE_S
586 UINT64_C(1409287100), // C_LE_S_MM
587 UINT64_C(1176502332), // C_LT_D32
588 UINT64_C(1409287996), // C_LT_D32_MM
589 UINT64_C(1176502332), // C_LT_D64
590 UINT64_C(1409287996), // C_LT_D64_MM
591 UINT64_C(1174405180), // C_LT_S
592 UINT64_C(1409286972), // C_LT_S_MM
593 UINT64_C(1176502333), // C_NGE_D32
594 UINT64_C(1409288060), // C_NGE_D32_MM
595 UINT64_C(1176502333), // C_NGE_D64
596 UINT64_C(1409288060), // C_NGE_D64_MM
597 UINT64_C(1174405181), // C_NGE_S
598 UINT64_C(1409287036), // C_NGE_S_MM
599 UINT64_C(1176502329), // C_NGLE_D32
600 UINT64_C(1409287804), // C_NGLE_D32_MM
601 UINT64_C(1176502329), // C_NGLE_D64
602 UINT64_C(1409287804), // C_NGLE_D64_MM
603 UINT64_C(1174405177), // C_NGLE_S
604 UINT64_C(1409286780), // C_NGLE_S_MM
605 UINT64_C(1176502331), // C_NGL_D32
606 UINT64_C(1409287932), // C_NGL_D32_MM
607 UINT64_C(1176502331), // C_NGL_D64
608 UINT64_C(1409287932), // C_NGL_D64_MM
609 UINT64_C(1174405179), // C_NGL_S
610 UINT64_C(1409286908), // C_NGL_S_MM
611 UINT64_C(1176502335), // C_NGT_D32
612 UINT64_C(1409288188), // C_NGT_D32_MM
613 UINT64_C(1176502335), // C_NGT_D64
614 UINT64_C(1409288188), // C_NGT_D64_MM
615 UINT64_C(1174405183), // C_NGT_S
616 UINT64_C(1409287164), // C_NGT_S_MM
617 UINT64_C(1176502326), // C_OLE_D32
618 UINT64_C(1409287612), // C_OLE_D32_MM
619 UINT64_C(1176502326), // C_OLE_D64
620 UINT64_C(1409287612), // C_OLE_D64_MM
621 UINT64_C(1174405174), // C_OLE_S
622 UINT64_C(1409286588), // C_OLE_S_MM
623 UINT64_C(1176502324), // C_OLT_D32
624 UINT64_C(1409287484), // C_OLT_D32_MM
625 UINT64_C(1176502324), // C_OLT_D64
626 UINT64_C(1409287484), // C_OLT_D64_MM
627 UINT64_C(1174405172), // C_OLT_S
628 UINT64_C(1409286460), // C_OLT_S_MM
629 UINT64_C(1176502330), // C_SEQ_D32
630 UINT64_C(1409287868), // C_SEQ_D32_MM
631 UINT64_C(1176502330), // C_SEQ_D64
632 UINT64_C(1409287868), // C_SEQ_D64_MM
633 UINT64_C(1174405178), // C_SEQ_S
634 UINT64_C(1409286844), // C_SEQ_S_MM
635 UINT64_C(1176502328), // C_SF_D32
636 UINT64_C(1409287740), // C_SF_D32_MM
637 UINT64_C(1176502328), // C_SF_D64
638 UINT64_C(1409287740), // C_SF_D64_MM
639 UINT64_C(1174405176), // C_SF_S
640 UINT64_C(1409286716), // C_SF_S_MM
641 UINT64_C(1176502323), // C_UEQ_D32
642 UINT64_C(1409287420), // C_UEQ_D32_MM
643 UINT64_C(1176502323), // C_UEQ_D64
644 UINT64_C(1409287420), // C_UEQ_D64_MM
645 UINT64_C(1174405171), // C_UEQ_S
646 UINT64_C(1409286396), // C_UEQ_S_MM
647 UINT64_C(1176502327), // C_ULE_D32
648 UINT64_C(1409287676), // C_ULE_D32_MM
649 UINT64_C(1176502327), // C_ULE_D64
650 UINT64_C(1409287676), // C_ULE_D64_MM
651 UINT64_C(1174405175), // C_ULE_S
652 UINT64_C(1409286652), // C_ULE_S_MM
653 UINT64_C(1176502325), // C_ULT_D32
654 UINT64_C(1409287548), // C_ULT_D32_MM
655 UINT64_C(1176502325), // C_ULT_D64
656 UINT64_C(1409287548), // C_ULT_D64_MM
657 UINT64_C(1174405173), // C_ULT_S
658 UINT64_C(1409286524), // C_ULT_S_MM
659 UINT64_C(1176502321), // C_UN_D32
660 UINT64_C(1409287292), // C_UN_D32_MM
661 UINT64_C(1176502321), // C_UN_D64
662 UINT64_C(1409287292), // C_UN_D64_MM
663 UINT64_C(1174405169), // C_UN_S
664 UINT64_C(1409286268), // C_UN_S_MM
665 UINT64_C(59402), // CmpRxRy16
666 UINT64_C(28672), // CmpiRxImm16
667 UINT64_C(4026560512), // CmpiRxImmX16
668 UINT64_C(44), // DADD
669 UINT64_C(1610612736), // DADDi
670 UINT64_C(1677721600), // DADDiu
671 UINT64_C(45), // DADDu
672 UINT64_C(67502080), // DAHI
673 UINT64_C(2080375332), // DALIGN
674 UINT64_C(69074944), // DATI
675 UINT64_C(1946157056), // DAUI
676 UINT64_C(2080374820), // DBITSWAP
677 UINT64_C(1879048229), // DCLO
678 UINT64_C(83), // DCLO_R6
679 UINT64_C(1879048228), // DCLZ
680 UINT64_C(82), // DCLZ_R6
681 UINT64_C(158), // DDIV
682 UINT64_C(159), // DDIVU
683 UINT64_C(1107296287), // DERET
684 UINT64_C(58236), // DERET_MM
685 UINT64_C(58236), // DERET_MMR6
686 UINT64_C(2080374787), // DEXT
687 UINT64_C(2080374787), // DEXT64_32
688 UINT64_C(2080374785), // DEXTM
689 UINT64_C(2080374786), // DEXTU
690 UINT64_C(1096835072), // DI
691 UINT64_C(2080374791), // DINS
692 UINT64_C(2080374789), // DINSM
693 UINT64_C(2080374790), // DINSU
694 UINT64_C(154), // DIV
695 UINT64_C(155), // DIVU
696 UINT64_C(408), // DIVU_MMR6
697 UINT64_C(280), // DIV_MMR6
698 UINT64_C(2046820370), // DIV_S_B
699 UINT64_C(2053111826), // DIV_S_D
700 UINT64_C(2048917522), // DIV_S_H
701 UINT64_C(2051014674), // DIV_S_W
702 UINT64_C(2055208978), // DIV_U_B
703 UINT64_C(2061500434), // DIV_U_D
704 UINT64_C(2057306130), // DIV_U_H
705 UINT64_C(2059403282), // DIV_U_W
706 UINT64_C(18300), // DI_MM
707 UINT64_C(18300), // DI_MMR6
708 UINT64_C(21), // DLSA
709 UINT64_C(21), // DLSA_R6
710 UINT64_C(1075838976), // DMFC0
711 UINT64_C(1142947840), // DMFC1
712 UINT64_C(1210056704), // DMFC2
713 UINT64_C(1210056704), // DMFC2_OCTEON
714 UINT64_C(1080033536), // DMFGC0
715 UINT64_C(222), // DMOD
716 UINT64_C(223), // DMODU
717 UINT64_C(1096813505), // DMT
718 UINT64_C(1084227584), // DMTC0
719 UINT64_C(1151336448), // DMTC1
720 UINT64_C(1218445312), // DMTC2
721 UINT64_C(1218445312), // DMTC2_OCTEON
722 UINT64_C(1080034048), // DMTGC0
723 UINT64_C(220), // DMUH
724 UINT64_C(221), // DMUHU
725 UINT64_C(1879048195), // DMUL
726 UINT64_C(28), // DMULT
727 UINT64_C(29), // DMULTu
728 UINT64_C(157), // DMULU
729 UINT64_C(156), // DMUL_R6
730 UINT64_C(2019557395), // DOTP_S_D
731 UINT64_C(2015363091), // DOTP_S_H
732 UINT64_C(2017460243), // DOTP_S_W
733 UINT64_C(2027946003), // DOTP_U_D
734 UINT64_C(2023751699), // DOTP_U_H
735 UINT64_C(2025848851), // DOTP_U_W
736 UINT64_C(2036334611), // DPADD_S_D
737 UINT64_C(2032140307), // DPADD_S_H
738 UINT64_C(2034237459), // DPADD_S_W
739 UINT64_C(2044723219), // DPADD_U_D
740 UINT64_C(2040528915), // DPADD_U_H
741 UINT64_C(2042626067), // DPADD_U_W
742 UINT64_C(2080376496), // DPAQX_SA_W_PH
743 UINT64_C(12988), // DPAQX_SA_W_PH_MMR2
744 UINT64_C(2080376368), // DPAQX_S_W_PH
745 UINT64_C(8892), // DPAQX_S_W_PH_MMR2
746 UINT64_C(2080375600), // DPAQ_SA_L_W
747 UINT64_C(4796), // DPAQ_SA_L_W_MM
748 UINT64_C(2080375088), // DPAQ_S_W_PH
749 UINT64_C(700), // DPAQ_S_W_PH_MM
750 UINT64_C(2080375024), // DPAU_H_QBL
751 UINT64_C(8380), // DPAU_H_QBL_MM
752 UINT64_C(2080375280), // DPAU_H_QBR
753 UINT64_C(12476), // DPAU_H_QBR_MM
754 UINT64_C(2080375344), // DPAX_W_PH
755 UINT64_C(4284), // DPAX_W_PH_MMR2
756 UINT64_C(2080374832), // DPA_W_PH
757 UINT64_C(188), // DPA_W_PH_MMR2
758 UINT64_C(1879048237), // DPOP
759 UINT64_C(2080376560), // DPSQX_SA_W_PH
760 UINT64_C(14012), // DPSQX_SA_W_PH_MMR2
761 UINT64_C(2080376432), // DPSQX_S_W_PH
762 UINT64_C(9916), // DPSQX_S_W_PH_MMR2
763 UINT64_C(2080375664), // DPSQ_SA_L_W
764 UINT64_C(5820), // DPSQ_SA_L_W_MM
765 UINT64_C(2080375152), // DPSQ_S_W_PH
766 UINT64_C(1724), // DPSQ_S_W_PH_MM
767 UINT64_C(2053111827), // DPSUB_S_D
768 UINT64_C(2048917523), // DPSUB_S_H
769 UINT64_C(2051014675), // DPSUB_S_W
770 UINT64_C(2061500435), // DPSUB_U_D
771 UINT64_C(2057306131), // DPSUB_U_H
772 UINT64_C(2059403283), // DPSUB_U_W
773 UINT64_C(2080375536), // DPSU_H_QBL
774 UINT64_C(9404), // DPSU_H_QBL_MM
775 UINT64_C(2080375792), // DPSU_H_QBR
776 UINT64_C(13500), // DPSU_H_QBR_MM
777 UINT64_C(2080375408), // DPSX_W_PH
778 UINT64_C(5308), // DPSX_W_PH_MMR2
779 UINT64_C(2080374896), // DPS_W_PH
780 UINT64_C(1212), // DPS_W_PH_MMR2
781 UINT64_C(2097210), // DROTR
782 UINT64_C(2097214), // DROTR32
783 UINT64_C(86), // DROTRV
784 UINT64_C(2080374948), // DSBH
785 UINT64_C(30), // DSDIV
786 UINT64_C(2080375140), // DSHD
787 UINT64_C(56), // DSLL
788 UINT64_C(60), // DSLL32
789 UINT64_C(60), // DSLL64_32
790 UINT64_C(20), // DSLLV
791 UINT64_C(59), // DSRA
792 UINT64_C(63), // DSRA32
793 UINT64_C(23), // DSRAV
794 UINT64_C(58), // DSRL
795 UINT64_C(62), // DSRL32
796 UINT64_C(22), // DSRLV
797 UINT64_C(46), // DSUB
798 UINT64_C(47), // DSUBu
799 UINT64_C(31), // DUDIV
800 UINT64_C(1096810532), // DVP
801 UINT64_C(1096810497), // DVPE
802 UINT64_C(6524), // DVP_MMR6
803 UINT64_C(59418), // DivRxRy16
804 UINT64_C(59419), // DivuRxRy16
805 UINT64_C(192), // EHB
806 UINT64_C(6144), // EHB_MM
807 UINT64_C(6144), // EHB_MMR6
808 UINT64_C(1096835104), // EI
809 UINT64_C(22396), // EI_MM
810 UINT64_C(22396), // EI_MMR6
811 UINT64_C(1096813537), // EMT
812 UINT64_C(1107296280), // ERET
813 UINT64_C(1107296344), // ERETNC
814 UINT64_C(127868), // ERETNC_MMR6
815 UINT64_C(62332), // ERET_MM
816 UINT64_C(62332), // ERET_MMR6
817 UINT64_C(1096810500), // EVP
818 UINT64_C(1096810529), // EVPE
819 UINT64_C(14716), // EVP_MMR6
820 UINT64_C(2080374784), // EXT
821 UINT64_C(2080374968), // EXTP
822 UINT64_C(2080375480), // EXTPDP
823 UINT64_C(2080375544), // EXTPDPV
824 UINT64_C(14524), // EXTPDPV_MM
825 UINT64_C(13948), // EXTPDP_MM
826 UINT64_C(2080375032), // EXTPV
827 UINT64_C(10428), // EXTPV_MM
828 UINT64_C(9852), // EXTP_MM
829 UINT64_C(2080375288), // EXTRV_RS_W
830 UINT64_C(11964), // EXTRV_RS_W_MM
831 UINT64_C(2080375160), // EXTRV_R_W
832 UINT64_C(7868), // EXTRV_R_W_MM
833 UINT64_C(2080375800), // EXTRV_S_H
834 UINT64_C(16060), // EXTRV_S_H_MM
835 UINT64_C(2080374904), // EXTRV_W
836 UINT64_C(3772), // EXTRV_W_MM
837 UINT64_C(2080375224), // EXTR_RS_W
838 UINT64_C(11900), // EXTR_RS_W_MM
839 UINT64_C(2080375096), // EXTR_R_W
840 UINT64_C(7804), // EXTR_R_W_MM
841 UINT64_C(2080375736), // EXTR_S_H
842 UINT64_C(15996), // EXTR_S_H_MM
843 UINT64_C(2080374840), // EXTR_W
844 UINT64_C(3708), // EXTR_W_MM
845 UINT64_C(1879048250), // EXTS
846 UINT64_C(1879048251), // EXTS32
847 UINT64_C(44), // EXT_MM
848 UINT64_C(44), // EXT_MMR6
849 UINT64_C(1176502277), // FABS_D32
850 UINT64_C(1409295227), // FABS_D32_MM
851 UINT64_C(1176502277), // FABS_D64
852 UINT64_C(1409295227), // FABS_D64_MM
853 UINT64_C(1174405125), // FABS_S
854 UINT64_C(1409287035), // FABS_S_MM
855 UINT64_C(2015363099), // FADD_D
856 UINT64_C(1176502272), // FADD_D32
857 UINT64_C(1409286448), // FADD_D32_MM
858 UINT64_C(1176502272), // FADD_D64
859 UINT64_C(1409286448), // FADD_D64_MM
860 UINT64_C(1186988032), // FADD_PS64
861 UINT64_C(1174405120), // FADD_S
862 UINT64_C(1409286192), // FADD_S_MM
863 UINT64_C(1409286192), // FADD_S_MMR6
864 UINT64_C(2013265947), // FADD_W
865 UINT64_C(2015363098), // FCAF_D
866 UINT64_C(2013265946), // FCAF_W
867 UINT64_C(2023751706), // FCEQ_D
868 UINT64_C(2021654554), // FCEQ_W
869 UINT64_C(2065760286), // FCLASS_D
870 UINT64_C(2065694750), // FCLASS_W
871 UINT64_C(2040528922), // FCLE_D
872 UINT64_C(2038431770), // FCLE_W
873 UINT64_C(2032140314), // FCLT_D
874 UINT64_C(2030043162), // FCLT_W
875 UINT64_C(1176502320), // FCMP_D32
876 UINT64_C(1409287228), // FCMP_D32_MM
877 UINT64_C(1176502320), // FCMP_D64
878 UINT64_C(1174405168), // FCMP_S32
879 UINT64_C(1409286204), // FCMP_S32_MM
880 UINT64_C(2027946012), // FCNE_D
881 UINT64_C(2025848860), // FCNE_W
882 UINT64_C(2019557404), // FCOR_D
883 UINT64_C(2017460252), // FCOR_W
884 UINT64_C(2027946010), // FCUEQ_D
885 UINT64_C(2025848858), // FCUEQ_W
886 UINT64_C(2044723226), // FCULE_D
887 UINT64_C(2042626074), // FCULE_W
888 UINT64_C(2036334618), // FCULT_D
889 UINT64_C(2034237466), // FCULT_W
890 UINT64_C(2023751708), // FCUNE_D
891 UINT64_C(2021654556), // FCUNE_W
892 UINT64_C(2019557402), // FCUN_D
893 UINT64_C(2017460250), // FCUN_W
894 UINT64_C(2027946011), // FDIV_D
895 UINT64_C(1176502275), // FDIV_D32
896 UINT64_C(1409286640), // FDIV_D32_MM
897 UINT64_C(1176502275), // FDIV_D64
898 UINT64_C(1409286640), // FDIV_D64_MM
899 UINT64_C(1174405123), // FDIV_S
900 UINT64_C(1409286384), // FDIV_S_MM
901 UINT64_C(1409286384), // FDIV_S_MMR6
902 UINT64_C(2025848859), // FDIV_W
903 UINT64_C(2046820379), // FEXDO_H
904 UINT64_C(2048917531), // FEXDO_W
905 UINT64_C(2044723227), // FEXP2_D
906 UINT64_C(2042626075), // FEXP2_W
907 UINT64_C(2066808862), // FEXUPL_D
908 UINT64_C(2066743326), // FEXUPL_W
909 UINT64_C(2066939934), // FEXUPR_D
910 UINT64_C(2066874398), // FEXUPR_W
911 UINT64_C(2067595294), // FFINT_S_D
912 UINT64_C(2067529758), // FFINT_S_W
913 UINT64_C(2067726366), // FFINT_U_D
914 UINT64_C(2067660830), // FFINT_U_W
915 UINT64_C(2067071006), // FFQL_D
916 UINT64_C(2067005470), // FFQL_W
917 UINT64_C(2067202078), // FFQR_D
918 UINT64_C(2067136542), // FFQR_W
919 UINT64_C(2063597598), // FILL_B
920 UINT64_C(2063794206), // FILL_D
921 UINT64_C(2063663134), // FILL_H
922 UINT64_C(2063728670), // FILL_W
923 UINT64_C(2066677790), // FLOG2_D
924 UINT64_C(2066612254), // FLOG2_W
925 UINT64_C(1176502283), // FLOOR_L_D64
926 UINT64_C(1409303355), // FLOOR_L_D_MMR6
927 UINT64_C(1174405131), // FLOOR_L_S
928 UINT64_C(1409286971), // FLOOR_L_S_MMR6
929 UINT64_C(1176502287), // FLOOR_W_D32
930 UINT64_C(1176502287), // FLOOR_W_D64
931 UINT64_C(1409305403), // FLOOR_W_D_MMR6
932 UINT64_C(1409305403), // FLOOR_W_MM
933 UINT64_C(1174405135), // FLOOR_W_S
934 UINT64_C(1409289019), // FLOOR_W_S_MM
935 UINT64_C(1409289019), // FLOOR_W_S_MMR6
936 UINT64_C(2032140315), // FMADD_D
937 UINT64_C(2030043163), // FMADD_W
938 UINT64_C(2078277659), // FMAX_A_D
939 UINT64_C(2076180507), // FMAX_A_W
940 UINT64_C(2074083355), // FMAX_D
941 UINT64_C(2071986203), // FMAX_W
942 UINT64_C(2069889051), // FMIN_A_D
943 UINT64_C(2067791899), // FMIN_A_W
944 UINT64_C(2065694747), // FMIN_D
945 UINT64_C(2063597595), // FMIN_W
946 UINT64_C(1176502278), // FMOV_D32
947 UINT64_C(1409294459), // FMOV_D32_MM
948 UINT64_C(1176502278), // FMOV_D64
949 UINT64_C(1409294459), // FMOV_D64_MM
950 UINT64_C(1409294459), // FMOV_D_MMR6
951 UINT64_C(1174405126), // FMOV_S
952 UINT64_C(1409286267), // FMOV_S_MM
953 UINT64_C(1409286267), // FMOV_S_MMR6
954 UINT64_C(2036334619), // FMSUB_D
955 UINT64_C(2034237467), // FMSUB_W
956 UINT64_C(2023751707), // FMUL_D
957 UINT64_C(1176502274), // FMUL_D32
958 UINT64_C(1409286576), // FMUL_D32_MM
959 UINT64_C(1176502274), // FMUL_D64
960 UINT64_C(1409286576), // FMUL_D64_MM
961 UINT64_C(1186988034), // FMUL_PS64
962 UINT64_C(1174405122), // FMUL_S
963 UINT64_C(1409286320), // FMUL_S_MM
964 UINT64_C(1409286320), // FMUL_S_MMR6
965 UINT64_C(2021654555), // FMUL_W
966 UINT64_C(1176502279), // FNEG_D32
967 UINT64_C(1409297275), // FNEG_D32_MM
968 UINT64_C(1176502279), // FNEG_D64
969 UINT64_C(1409297275), // FNEG_D64_MM
970 UINT64_C(1174405127), // FNEG_S
971 UINT64_C(1409289083), // FNEG_S_MM
972 UINT64_C(1409289083), // FNEG_S_MMR6
973 UINT64_C(2080374792), // FORK
974 UINT64_C(2066415646), // FRCP_D
975 UINT64_C(2066350110), // FRCP_W
976 UINT64_C(2066546718), // FRINT_D
977 UINT64_C(2066481182), // FRINT_W
978 UINT64_C(2066284574), // FRSQRT_D
979 UINT64_C(2066219038), // FRSQRT_W
980 UINT64_C(2048917530), // FSAF_D
981 UINT64_C(2046820378), // FSAF_W
982 UINT64_C(2057306138), // FSEQ_D
983 UINT64_C(2055208986), // FSEQ_W
984 UINT64_C(2074083354), // FSLE_D
985 UINT64_C(2071986202), // FSLE_W
986 UINT64_C(2065694746), // FSLT_D
987 UINT64_C(2063597594), // FSLT_W
988 UINT64_C(2061500444), // FSNE_D
989 UINT64_C(2059403292), // FSNE_W
990 UINT64_C(2053111836), // FSOR_D
991 UINT64_C(2051014684), // FSOR_W
992 UINT64_C(2066153502), // FSQRT_D
993 UINT64_C(1176502276), // FSQRT_D32
994 UINT64_C(1409305147), // FSQRT_D32_MM
995 UINT64_C(1176502276), // FSQRT_D64
996 UINT64_C(1409305147), // FSQRT_D64_MM
997 UINT64_C(1174405124), // FSQRT_S
998 UINT64_C(1409288763), // FSQRT_S_MM
999 UINT64_C(2066087966), // FSQRT_W
1000 UINT64_C(2019557403), // FSUB_D
1001 UINT64_C(1176502273), // FSUB_D32
1002 UINT64_C(1409286512), // FSUB_D32_MM
1003 UINT64_C(1176502273), // FSUB_D64
1004 UINT64_C(1409286512), // FSUB_D64_MM
1005 UINT64_C(1186988033), // FSUB_PS64
1006 UINT64_C(1174405121), // FSUB_S
1007 UINT64_C(1409286256), // FSUB_S_MM
1008 UINT64_C(1409286256), // FSUB_S_MMR6
1009 UINT64_C(2017460251), // FSUB_W
1010 UINT64_C(2061500442), // FSUEQ_D
1011 UINT64_C(2059403290), // FSUEQ_W
1012 UINT64_C(2078277658), // FSULE_D
1013 UINT64_C(2076180506), // FSULE_W
1014 UINT64_C(2069889050), // FSULT_D
1015 UINT64_C(2067791898), // FSULT_W
1016 UINT64_C(2057306140), // FSUNE_D
1017 UINT64_C(2055208988), // FSUNE_W
1018 UINT64_C(2053111834), // FSUN_D
1019 UINT64_C(2051014682), // FSUN_W
1020 UINT64_C(2067333150), // FTINT_S_D
1021 UINT64_C(2067267614), // FTINT_S_W
1022 UINT64_C(2067464222), // FTINT_U_D
1023 UINT64_C(2067398686), // FTINT_U_W
1024 UINT64_C(2055208987), // FTQ_H
1025 UINT64_C(2057306139), // FTQ_W
1026 UINT64_C(2065891358), // FTRUNC_S_D
1027 UINT64_C(2065825822), // FTRUNC_S_W
1028 UINT64_C(2066022430), // FTRUNC_U_D
1029 UINT64_C(2065956894), // FTRUNC_U_W
1030 UINT64_C(2080374845), // GINVI
1031 UINT64_C(24956), // GINVI_MMR6
1032 UINT64_C(2080374973), // GINVT
1033 UINT64_C(29052), // GINVT_MMR6
1034 UINT64_C(2053111829), // HADD_S_D
1035 UINT64_C(2048917525), // HADD_S_H
1036 UINT64_C(2051014677), // HADD_S_W
1037 UINT64_C(2061500437), // HADD_U_D
1038 UINT64_C(2057306133), // HADD_U_H
1039 UINT64_C(2059403285), // HADD_U_W
1040 UINT64_C(2069889045), // HSUB_S_D
1041 UINT64_C(2065694741), // HSUB_S_H
1042 UINT64_C(2067791893), // HSUB_S_W
1043 UINT64_C(2078277653), // HSUB_U_D
1044 UINT64_C(2074083349), // HSUB_U_H
1045 UINT64_C(2076180501), // HSUB_U_W
1046 UINT64_C(1107296296), // HYPCALL
1047 UINT64_C(50044), // HYPCALL_MM
1048 UINT64_C(2063597588), // ILVEV_B
1049 UINT64_C(2069889044), // ILVEV_D
1050 UINT64_C(2065694740), // ILVEV_H
1051 UINT64_C(2067791892), // ILVEV_W
1052 UINT64_C(2046820372), // ILVL_B
1053 UINT64_C(2053111828), // ILVL_D
1054 UINT64_C(2048917524), // ILVL_H
1055 UINT64_C(2051014676), // ILVL_W
1056 UINT64_C(2071986196), // ILVOD_B
1057 UINT64_C(2078277652), // ILVOD_D
1058 UINT64_C(2074083348), // ILVOD_H
1059 UINT64_C(2076180500), // ILVOD_W
1060 UINT64_C(2055208980), // ILVR_B
1061 UINT64_C(2061500436), // ILVR_D
1062 UINT64_C(2057306132), // ILVR_H
1063 UINT64_C(2059403284), // ILVR_W
1064 UINT64_C(2080374788), // INS
1065 UINT64_C(2030043161), // INSERT_B
1066 UINT64_C(2033713177), // INSERT_D
1067 UINT64_C(2032140313), // INSERT_H
1068 UINT64_C(2033188889), // INSERT_W
1069 UINT64_C(2080374796), // INSV
1070 UINT64_C(2034237465), // INSVE_B
1071 UINT64_C(2037907481), // INSVE_D
1072 UINT64_C(2036334617), // INSVE_H
1073 UINT64_C(2037383193), // INSVE_W
1074 UINT64_C(16700), // INSV_MM
1075 UINT64_C(12), // INS_MM
1076 UINT64_C(12), // INS_MMR6
1077 UINT64_C(134217728), // J
1078 UINT64_C(201326592), // JAL
1079 UINT64_C(9), // JALR
1080 UINT64_C(17856), // JALR16_MM
1081 UINT64_C(9), // JALR64
1082 UINT64_C(17419), // JALRC16_MMR6
1083 UINT64_C(7996), // JALRC_HB_MMR6
1084 UINT64_C(3900), // JALRC_MMR6
1085 UINT64_C(17888), // JALRS16_MM
1086 UINT64_C(20284), // JALRS_MM
1087 UINT64_C(1033), // JALR_HB
1088 UINT64_C(1033), // JALR_HB64
1089 UINT64_C(7996), // JALR_HB_MM
1090 UINT64_C(3900), // JALR_MM
1091 UINT64_C(1946157056), // JALS_MM
1092 UINT64_C(1946157056), // JALX
1093 UINT64_C(4026531840), // JALX_MM
1094 UINT64_C(4093640704), // JAL_MM
1095 UINT64_C(4160749568), // JIALC
1096 UINT64_C(4160749568), // JIALC64
1097 UINT64_C(2147483648), // JIALC_MMR6
1098 UINT64_C(3623878656), // JIC
1099 UINT64_C(3623878656), // JIC64
1100 UINT64_C(2684354560), // JIC_MMR6
1101 UINT64_C(8), // JR
1102 UINT64_C(17792), // JR16_MM
1103 UINT64_C(8), // JR64
1104 UINT64_C(18176), // JRADDIUSP
1105 UINT64_C(17824), // JRC16_MM
1106 UINT64_C(17411), // JRC16_MMR6
1107 UINT64_C(17427), // JRCADDIUSP_MMR6
1108 UINT64_C(1032), // JR_HB
1109 UINT64_C(1032), // JR_HB64
1110 UINT64_C(1033), // JR_HB64_R6
1111 UINT64_C(7996), // JR_HB_MM
1112 UINT64_C(1033), // JR_HB_R6
1113 UINT64_C(3900), // JR_MM
1114 UINT64_C(3556769792), // J_MM
1115 UINT64_C(402653184), // Jal16
1116 UINT64_C(402653184), // JalB16
1117 UINT64_C(59424), // JrRa16
1118 UINT64_C(59616), // JrcRa16
1119 UINT64_C(59584), // JrcRx16
1120 UINT64_C(59392), // JumpLinkReg16
1121 UINT64_C(2147483648), // LB
1122 UINT64_C(2147483648), // LB64
1123 UINT64_C(2080374828), // LBE
1124 UINT64_C(1610639360), // LBE_MM
1125 UINT64_C(2048), // LBU16_MM
1126 UINT64_C(2080375178), // LBUX
1127 UINT64_C(549), // LBUX_MM
1128 UINT64_C(335544320), // LBU_MMR6
1129 UINT64_C(469762048), // LB_MM
1130 UINT64_C(469762048), // LB_MMR6
1131 UINT64_C(2415919104), // LBu
1132 UINT64_C(2415919104), // LBu64
1133 UINT64_C(2080374824), // LBuE
1134 UINT64_C(1610637312), // LBuE_MM
1135 UINT64_C(335544320), // LBu_MM
1136 UINT64_C(3690987520), // LD
1137 UINT64_C(3556769792), // LDC1
1138 UINT64_C(3556769792), // LDC164
1139 UINT64_C(3154116608), // LDC1_D64_MMR6
1140 UINT64_C(3154116608), // LDC1_MM_D32
1141 UINT64_C(3154116608), // LDC1_MM_D64
1142 UINT64_C(3623878656), // LDC2
1143 UINT64_C(536879104), // LDC2_MMR6
1144 UINT64_C(1237319680), // LDC2_R6
1145 UINT64_C(3690987520), // LDC3
1146 UINT64_C(2063597575), // LDI_B
1147 UINT64_C(2069889031), // LDI_D
1148 UINT64_C(2065694727), // LDI_H
1149 UINT64_C(2067791879), // LDI_W
1150 UINT64_C(1744830464), // LDL
1151 UINT64_C(3960995840), // LDPC
1152 UINT64_C(1811939328), // LDR
1153 UINT64_C(1275068417), // LDXC1
1154 UINT64_C(1275068417), // LDXC164
1155 UINT64_C(2013265952), // LD_B
1156 UINT64_C(2013265955), // LD_D
1157 UINT64_C(2013265953), // LD_H
1158 UINT64_C(2013265954), // LD_W
1159 UINT64_C(603979776), // LEA_ADDiu
1160 UINT64_C(1677721600), // LEA_ADDiu64
1161 UINT64_C(805306368), // LEA_ADDiu_MM
1162 UINT64_C(2214592512), // LH
1163 UINT64_C(2214592512), // LH64
1164 UINT64_C(2080374829), // LHE
1165 UINT64_C(1610639872), // LHE_MM
1166 UINT64_C(10240), // LHU16_MM
1167 UINT64_C(2080375050), // LHX
1168 UINT64_C(357), // LHX_MM
1169 UINT64_C(1006632960), // LH_MM
1170 UINT64_C(2483027968), // LHu
1171 UINT64_C(2483027968), // LHu64
1172 UINT64_C(2080374825), // LHuE
1173 UINT64_C(1610637824), // LHuE_MM
1174 UINT64_C(872415232), // LHu_MM
1175 UINT64_C(60416), // LI16_MM
1176 UINT64_C(60416), // LI16_MMR6
1177 UINT64_C(3221225472), // LL
1178 UINT64_C(3221225472), // LL64
1179 UINT64_C(2080374838), // LL64_R6
1180 UINT64_C(3489660928), // LLD
1181 UINT64_C(2080374839), // LLD_R6
1182 UINT64_C(2080374830), // LLE
1183 UINT64_C(1610640384), // LLE_MM
1184 UINT64_C(1610625024), // LL_MM
1185 UINT64_C(1610625024), // LL_MMR6
1186 UINT64_C(2080374838), // LL_R6
1187 UINT64_C(5), // LSA
1188 UINT64_C(15), // LSA_MMR6
1189 UINT64_C(5), // LSA_R6
1190 UINT64_C(268435456), // LUI_MMR6
1191 UINT64_C(1275068421), // LUXC1
1192 UINT64_C(1275068421), // LUXC164
1193 UINT64_C(1409286472), // LUXC1_MM
1194 UINT64_C(1006632960), // LUi
1195 UINT64_C(1006632960), // LUi64
1196 UINT64_C(1101004800), // LUi_MM
1197 UINT64_C(2348810240), // LW
1198 UINT64_C(26624), // LW16_MM
1199 UINT64_C(2348810240), // LW64
1200 UINT64_C(3288334336), // LWC1
1201 UINT64_C(2617245696), // LWC1_MM
1202 UINT64_C(3355443200), // LWC2
1203 UINT64_C(536870912), // LWC2_MMR6
1204 UINT64_C(1228931072), // LWC2_R6
1205 UINT64_C(3422552064), // LWC3
1206 UINT64_C(2348810240), // LWDSP
1207 UINT64_C(4227858432), // LWDSP_MM
1208 UINT64_C(2080374831), // LWE
1209 UINT64_C(1610640896), // LWE_MM
1210 UINT64_C(25600), // LWGP_MM
1211 UINT64_C(2281701376), // LWL
1212 UINT64_C(2281701376), // LWL64
1213 UINT64_C(2080374809), // LWLE
1214 UINT64_C(1610638336), // LWLE_MM
1215 UINT64_C(1610612736), // LWL_MM
1216 UINT64_C(17664), // LWM16_MM
1217 UINT64_C(17410), // LWM16_MMR6
1218 UINT64_C(536891392), // LWM32_MM
1219 UINT64_C(3959947264), // LWPC
1220 UINT64_C(2013790208), // LWPC_MMR6
1221 UINT64_C(536875008), // LWP_MM
1222 UINT64_C(2550136832), // LWR
1223 UINT64_C(2550136832), // LWR64
1224 UINT64_C(2080374810), // LWRE
1225 UINT64_C(1610638848), // LWRE_MM
1226 UINT64_C(1610616832), // LWR_MM
1227 UINT64_C(18432), // LWSP_MM
1228 UINT64_C(3960471552), // LWUPC
1229 UINT64_C(1610670080), // LWU_MM
1230 UINT64_C(2080374794), // LWX
1231 UINT64_C(1275068416), // LWXC1
1232 UINT64_C(1409286216), // LWXC1_MM
1233 UINT64_C(280), // LWXS_MM
1234 UINT64_C(421), // LWX_MM
1235 UINT64_C(4227858432), // LW_MM
1236 UINT64_C(4227858432), // LW_MMR6
1237 UINT64_C(2617245696), // LWu
1238 UINT64_C(4026570752), // LbRxRyOffMemX16
1239 UINT64_C(4026572800), // LbuRxRyOffMemX16
1240 UINT64_C(4026572800), // LhRxRyOffMemX16
1241 UINT64_C(4026572800), // LhuRxRyOffMemX16
1242 UINT64_C(26624), // LiRxImm16
1243 UINT64_C(4026558464), // LiRxImmAlignX16
1244 UINT64_C(4026558464), // LiRxImmX16
1245 UINT64_C(45056), // LwRxPcTcp16
1246 UINT64_C(4026576896), // LwRxPcTcpX16
1247 UINT64_C(4026570752), // LwRxRyOffMemX16
1248 UINT64_C(4026568704), // LwRxSpImmX16
1249 UINT64_C(1879048192), // MADD
1250 UINT64_C(1176502296), // MADDF_D
1251 UINT64_C(1409287096), // MADDF_D_MMR6
1252 UINT64_C(1174405144), // MADDF_S
1253 UINT64_C(1409286584), // MADDF_S_MMR6
1254 UINT64_C(2067791900), // MADDR_Q_H
1255 UINT64_C(2069889052), // MADDR_Q_W
1256 UINT64_C(1879048193), // MADDU
1257 UINT64_C(1879048193), // MADDU_DSP
1258 UINT64_C(6844), // MADDU_DSP_MM
1259 UINT64_C(56124), // MADDU_MM
1260 UINT64_C(2021654546), // MADDV_B
1261 UINT64_C(2027946002), // MADDV_D
1262 UINT64_C(2023751698), // MADDV_H
1263 UINT64_C(2025848850), // MADDV_W
1264 UINT64_C(1275068449), // MADD_D32
1265 UINT64_C(1409286153), // MADD_D32_MM
1266 UINT64_C(1275068449), // MADD_D64
1267 UINT64_C(1879048192), // MADD_DSP
1268 UINT64_C(2748), // MADD_DSP_MM
1269 UINT64_C(52028), // MADD_MM
1270 UINT64_C(2034237468), // MADD_Q_H
1271 UINT64_C(2036334620), // MADD_Q_W
1272 UINT64_C(1275068448), // MADD_S
1273 UINT64_C(1409286145), // MADD_S_MM
1274 UINT64_C(2080375856), // MAQ_SA_W_PHL
1275 UINT64_C(14972), // MAQ_SA_W_PHL_MM
1276 UINT64_C(2080375984), // MAQ_SA_W_PHR
1277 UINT64_C(10876), // MAQ_SA_W_PHR_MM
1278 UINT64_C(2080376112), // MAQ_S_W_PHL
1279 UINT64_C(6780), // MAQ_S_W_PHL_MM
1280 UINT64_C(2080376240), // MAQ_S_W_PHR
1281 UINT64_C(2684), // MAQ_S_W_PHR_MM
1282 UINT64_C(1176502303), // MAXA_D
1283 UINT64_C(1409286699), // MAXA_D_MMR6
1284 UINT64_C(1174405151), // MAXA_S
1285 UINT64_C(1409286187), // MAXA_S_MMR6
1286 UINT64_C(2030043142), // MAXI_S_B
1287 UINT64_C(2036334598), // MAXI_S_D
1288 UINT64_C(2032140294), // MAXI_S_H
1289 UINT64_C(2034237446), // MAXI_S_W
1290 UINT64_C(2038431750), // MAXI_U_B
1291 UINT64_C(2044723206), // MAXI_U_D
1292 UINT64_C(2040528902), // MAXI_U_H
1293 UINT64_C(2042626054), // MAXI_U_W
1294 UINT64_C(2063597582), // MAX_A_B
1295 UINT64_C(2069889038), // MAX_A_D
1296 UINT64_C(2065694734), // MAX_A_H
1297 UINT64_C(2067791886), // MAX_A_W
1298 UINT64_C(1176502302), // MAX_D
1299 UINT64_C(1409286667), // MAX_D_MMR6
1300 UINT64_C(1174405150), // MAX_S
1301 UINT64_C(2030043150), // MAX_S_B
1302 UINT64_C(2036334606), // MAX_S_D
1303 UINT64_C(2032140302), // MAX_S_H
1304 UINT64_C(1409286155), // MAX_S_MMR6
1305 UINT64_C(2034237454), // MAX_S_W
1306 UINT64_C(2038431758), // MAX_U_B
1307 UINT64_C(2044723214), // MAX_U_D
1308 UINT64_C(2040528910), // MAX_U_H
1309 UINT64_C(2042626062), // MAX_U_W
1310 UINT64_C(1073741824), // MFC0
1311 UINT64_C(252), // MFC0_MM
1312 UINT64_C(252), // MFC0_MMR6
1313 UINT64_C(1140850688), // MFC1
1314 UINT64_C(1140850688), // MFC1_D64
1315 UINT64_C(1409294395), // MFC1_MM
1316 UINT64_C(1409294395), // MFC1_MMR6
1317 UINT64_C(1207959552), // MFC2
1318 UINT64_C(19772), // MFC2_MMR6
1319 UINT64_C(1080033280), // MFGC0
1320 UINT64_C(1276), // MFGC0_MM
1321 UINT64_C(244), // MFHC0_MMR6
1322 UINT64_C(1147142144), // MFHC1_D32
1323 UINT64_C(1409298491), // MFHC1_D32_MM
1324 UINT64_C(1147142144), // MFHC1_D64
1325 UINT64_C(1409298491), // MFHC1_D64_MM
1326 UINT64_C(36156), // MFHC2_MMR6
1327 UINT64_C(1080034304), // MFHGC0
1328 UINT64_C(1268), // MFHGC0_MM
1329 UINT64_C(16), // MFHI
1330 UINT64_C(17920), // MFHI16_MM
1331 UINT64_C(16), // MFHI64
1332 UINT64_C(16), // MFHI_DSP
1333 UINT64_C(124), // MFHI_DSP_MM
1334 UINT64_C(3452), // MFHI_MM
1335 UINT64_C(18), // MFLO
1336 UINT64_C(17984), // MFLO16_MM
1337 UINT64_C(18), // MFLO64
1338 UINT64_C(18), // MFLO_DSP
1339 UINT64_C(4220), // MFLO_DSP_MM
1340 UINT64_C(7548), // MFLO_MM
1341 UINT64_C(1090519040), // MFTR
1342 UINT64_C(1176502301), // MINA_D
1343 UINT64_C(1409286691), // MINA_D_MMR6
1344 UINT64_C(1174405149), // MINA_S
1345 UINT64_C(1409286179), // MINA_S_MMR6
1346 UINT64_C(2046820358), // MINI_S_B
1347 UINT64_C(2053111814), // MINI_S_D
1348 UINT64_C(2048917510), // MINI_S_H
1349 UINT64_C(2051014662), // MINI_S_W
1350 UINT64_C(2055208966), // MINI_U_B
1351 UINT64_C(2061500422), // MINI_U_D
1352 UINT64_C(2057306118), // MINI_U_H
1353 UINT64_C(2059403270), // MINI_U_W
1354 UINT64_C(2071986190), // MIN_A_B
1355 UINT64_C(2078277646), // MIN_A_D
1356 UINT64_C(2074083342), // MIN_A_H
1357 UINT64_C(2076180494), // MIN_A_W
1358 UINT64_C(1176502300), // MIN_D
1359 UINT64_C(1409286659), // MIN_D_MMR6
1360 UINT64_C(1174405148), // MIN_S
1361 UINT64_C(2046820366), // MIN_S_B
1362 UINT64_C(2053111822), // MIN_S_D
1363 UINT64_C(2048917518), // MIN_S_H
1364 UINT64_C(1409286147), // MIN_S_MMR6
1365 UINT64_C(2051014670), // MIN_S_W
1366 UINT64_C(2055208974), // MIN_U_B
1367 UINT64_C(2061500430), // MIN_U_D
1368 UINT64_C(2057306126), // MIN_U_H
1369 UINT64_C(2059403278), // MIN_U_W
1370 UINT64_C(218), // MOD
1371 UINT64_C(2080375952), // MODSUB
1372 UINT64_C(661), // MODSUB_MM
1373 UINT64_C(219), // MODU
1374 UINT64_C(472), // MODU_MMR6
1375 UINT64_C(344), // MOD_MMR6
1376 UINT64_C(2063597586), // MOD_S_B
1377 UINT64_C(2069889042), // MOD_S_D
1378 UINT64_C(2065694738), // MOD_S_H
1379 UINT64_C(2067791890), // MOD_S_W
1380 UINT64_C(2071986194), // MOD_U_B
1381 UINT64_C(2078277650), // MOD_U_D
1382 UINT64_C(2074083346), // MOD_U_H
1383 UINT64_C(2076180498), // MOD_U_W
1384 UINT64_C(3072), // MOVE16_MM
1385 UINT64_C(3072), // MOVE16_MMR6
1386 UINT64_C(33792), // MOVEP_MM
1387 UINT64_C(17412), // MOVEP_MMR6
1388 UINT64_C(2025717785), // MOVE_V
1389 UINT64_C(1176502289), // MOVF_D32
1390 UINT64_C(1409286688), // MOVF_D32_MM
1391 UINT64_C(1176502289), // MOVF_D64
1392 UINT64_C(1), // MOVF_I
1393 UINT64_C(1), // MOVF_I64
1394 UINT64_C(1409286523), // MOVF_I_MM
1395 UINT64_C(1174405137), // MOVF_S
1396 UINT64_C(1409286176), // MOVF_S_MM
1397 UINT64_C(1176502291), // MOVN_I64_D64
1398 UINT64_C(11), // MOVN_I64_I
1399 UINT64_C(11), // MOVN_I64_I64
1400 UINT64_C(1174405139), // MOVN_I64_S
1401 UINT64_C(1176502291), // MOVN_I_D32
1402 UINT64_C(1409286456), // MOVN_I_D32_MM
1403 UINT64_C(1176502291), // MOVN_I_D64
1404 UINT64_C(11), // MOVN_I_I
1405 UINT64_C(11), // MOVN_I_I64
1406 UINT64_C(24), // MOVN_I_MM
1407 UINT64_C(1174405139), // MOVN_I_S
1408 UINT64_C(1409286200), // MOVN_I_S_MM
1409 UINT64_C(1176567825), // MOVT_D32
1410 UINT64_C(1409286752), // MOVT_D32_MM
1411 UINT64_C(1176567825), // MOVT_D64
1412 UINT64_C(65537), // MOVT_I
1413 UINT64_C(65537), // MOVT_I64
1414 UINT64_C(1409288571), // MOVT_I_MM
1415 UINT64_C(1174470673), // MOVT_S
1416 UINT64_C(1409286240), // MOVT_S_MM
1417 UINT64_C(1176502290), // MOVZ_I64_D64
1418 UINT64_C(10), // MOVZ_I64_I
1419 UINT64_C(10), // MOVZ_I64_I64
1420 UINT64_C(1174405138), // MOVZ_I64_S
1421 UINT64_C(1176502290), // MOVZ_I_D32
1422 UINT64_C(1409286520), // MOVZ_I_D32_MM
1423 UINT64_C(1176502290), // MOVZ_I_D64
1424 UINT64_C(10), // MOVZ_I_I
1425 UINT64_C(10), // MOVZ_I_I64
1426 UINT64_C(88), // MOVZ_I_MM
1427 UINT64_C(1174405138), // MOVZ_I_S
1428 UINT64_C(1409286264), // MOVZ_I_S_MM
1429 UINT64_C(1879048196), // MSUB
1430 UINT64_C(1176502297), // MSUBF_D
1431 UINT64_C(1409287160), // MSUBF_D_MMR6
1432 UINT64_C(1174405145), // MSUBF_S
1433 UINT64_C(1409286648), // MSUBF_S_MMR6
1434 UINT64_C(2071986204), // MSUBR_Q_H
1435 UINT64_C(2074083356), // MSUBR_Q_W
1436 UINT64_C(1879048197), // MSUBU
1437 UINT64_C(1879048197), // MSUBU_DSP
1438 UINT64_C(15036), // MSUBU_DSP_MM
1439 UINT64_C(64316), // MSUBU_MM
1440 UINT64_C(2030043154), // MSUBV_B
1441 UINT64_C(2036334610), // MSUBV_D
1442 UINT64_C(2032140306), // MSUBV_H
1443 UINT64_C(2034237458), // MSUBV_W
1444 UINT64_C(1275068457), // MSUB_D32
1445 UINT64_C(1409286185), // MSUB_D32_MM
1446 UINT64_C(1275068457), // MSUB_D64
1447 UINT64_C(1879048196), // MSUB_DSP
1448 UINT64_C(10940), // MSUB_DSP_MM
1449 UINT64_C(60220), // MSUB_MM
1450 UINT64_C(2038431772), // MSUB_Q_H
1451 UINT64_C(2040528924), // MSUB_Q_W
1452 UINT64_C(1275068456), // MSUB_S
1453 UINT64_C(1409286177), // MSUB_S_MM
1454 UINT64_C(1082130432), // MTC0
1455 UINT64_C(764), // MTC0_MM
1456 UINT64_C(764), // MTC0_MMR6
1457 UINT64_C(1149239296), // MTC1
1458 UINT64_C(1149239296), // MTC1_D64
1459 UINT64_C(1409296443), // MTC1_D64_MM
1460 UINT64_C(1409296443), // MTC1_MM
1461 UINT64_C(1409296443), // MTC1_MMR6
1462 UINT64_C(1216348160), // MTC2
1463 UINT64_C(23868), // MTC2_MMR6
1464 UINT64_C(1080033792), // MTGC0
1465 UINT64_C(1788), // MTGC0_MM
1466 UINT64_C(756), // MTHC0_MMR6
1467 UINT64_C(1155530752), // MTHC1_D32
1468 UINT64_C(1409300539), // MTHC1_D32_MM
1469 UINT64_C(1155530752), // MTHC1_D64
1470 UINT64_C(1409300539), // MTHC1_D64_MM
1471 UINT64_C(40252), // MTHC2_MMR6
1472 UINT64_C(1080034816), // MTHGC0
1473 UINT64_C(1780), // MTHGC0_MM
1474 UINT64_C(17), // MTHI
1475 UINT64_C(17), // MTHI64
1476 UINT64_C(17), // MTHI_DSP
1477 UINT64_C(8316), // MTHI_DSP_MM
1478 UINT64_C(11644), // MTHI_MM
1479 UINT64_C(2080376824), // MTHLIP
1480 UINT64_C(636), // MTHLIP_MM
1481 UINT64_C(19), // MTLO
1482 UINT64_C(19), // MTLO64
1483 UINT64_C(19), // MTLO_DSP
1484 UINT64_C(12412), // MTLO_DSP_MM
1485 UINT64_C(15740), // MTLO_MM
1486 UINT64_C(1879048200), // MTM0
1487 UINT64_C(1879048204), // MTM1
1488 UINT64_C(1879048205), // MTM2
1489 UINT64_C(1879048201), // MTP0
1490 UINT64_C(1879048202), // MTP1
1491 UINT64_C(1879048203), // MTP2
1492 UINT64_C(1098907648), // MTTR
1493 UINT64_C(216), // MUH
1494 UINT64_C(217), // MUHU
1495 UINT64_C(216), // MUHU_MMR6
1496 UINT64_C(88), // MUH_MMR6
1497 UINT64_C(1879048194), // MUL
1498 UINT64_C(2080376592), // MULEQ_S_W_PHL
1499 UINT64_C(37), // MULEQ_S_W_PHL_MM
1500 UINT64_C(2080376656), // MULEQ_S_W_PHR
1501 UINT64_C(101), // MULEQ_S_W_PHR_MM
1502 UINT64_C(2080375184), // MULEU_S_PH_QBL
1503 UINT64_C(149), // MULEU_S_PH_QBL_MM
1504 UINT64_C(2080375248), // MULEU_S_PH_QBR
1505 UINT64_C(213), // MULEU_S_PH_QBR_MM
1506 UINT64_C(2080376784), // MULQ_RS_PH
1507 UINT64_C(277), // MULQ_RS_PH_MM
1508 UINT64_C(2080376280), // MULQ_RS_W
1509 UINT64_C(405), // MULQ_RS_W_MMR2
1510 UINT64_C(2080376720), // MULQ_S_PH
1511 UINT64_C(341), // MULQ_S_PH_MMR2
1512 UINT64_C(2080376216), // MULQ_S_W
1513 UINT64_C(469), // MULQ_S_W_MMR2
1514 UINT64_C(1186988058), // MULR_PS64
1515 UINT64_C(2063597596), // MULR_Q_H
1516 UINT64_C(2065694748), // MULR_Q_W
1517 UINT64_C(2080375216), // MULSAQ_S_W_PH
1518 UINT64_C(15548), // MULSAQ_S_W_PH_MM
1519 UINT64_C(2080374960), // MULSA_W_PH
1520 UINT64_C(11452), // MULSA_W_PH_MMR2
1521 UINT64_C(24), // MULT
1522 UINT64_C(25), // MULTU_DSP
1523 UINT64_C(7356), // MULTU_DSP_MM
1524 UINT64_C(24), // MULT_DSP
1525 UINT64_C(3260), // MULT_DSP_MM
1526 UINT64_C(35644), // MULT_MM
1527 UINT64_C(25), // MULTu
1528 UINT64_C(39740), // MULTu_MM
1529 UINT64_C(153), // MULU
1530 UINT64_C(152), // MULU_MMR6
1531 UINT64_C(2013265938), // MULV_B
1532 UINT64_C(2019557394), // MULV_D
1533 UINT64_C(2015363090), // MULV_H
1534 UINT64_C(2017460242), // MULV_W
1535 UINT64_C(528), // MUL_MM
1536 UINT64_C(24), // MUL_MMR6
1537 UINT64_C(2080375576), // MUL_PH
1538 UINT64_C(45), // MUL_PH_MMR2
1539 UINT64_C(2030043164), // MUL_Q_H
1540 UINT64_C(2032140316), // MUL_Q_W
1541 UINT64_C(152), // MUL_R6
1542 UINT64_C(2080375704), // MUL_S_PH
1543 UINT64_C(1069), // MUL_S_PH_MMR2
1544 UINT64_C(59408), // Mfhi16
1545 UINT64_C(59410), // Mflo16
1546 UINT64_C(25856), // Move32R16
1547 UINT64_C(26368), // MoveR3216
1548 UINT64_C(68157440), // NAL
1549 UINT64_C(2064121886), // NLOC_B
1550 UINT64_C(2064318494), // NLOC_D
1551 UINT64_C(2064187422), // NLOC_H
1552 UINT64_C(2064252958), // NLOC_W
1553 UINT64_C(2064384030), // NLZC_B
1554 UINT64_C(2064580638), // NLZC_D
1555 UINT64_C(2064449566), // NLZC_H
1556 UINT64_C(2064515102), // NLZC_W
1557 UINT64_C(1275068465), // NMADD_D32
1558 UINT64_C(1409286154), // NMADD_D32_MM
1559 UINT64_C(1275068465), // NMADD_D64
1560 UINT64_C(1275068464), // NMADD_S
1561 UINT64_C(1409286146), // NMADD_S_MM
1562 UINT64_C(1275068473), // NMSUB_D32
1563 UINT64_C(1409286186), // NMSUB_D32_MM
1564 UINT64_C(1275068473), // NMSUB_D64
1565 UINT64_C(1275068472), // NMSUB_S
1566 UINT64_C(1409286178), // NMSUB_S_MM
1567 UINT64_C(39), // NOR
1568 UINT64_C(39), // NOR64
1569 UINT64_C(2046820352), // NORI_B
1570 UINT64_C(720), // NOR_MM
1571 UINT64_C(720), // NOR_MMR6
1572 UINT64_C(2017460254), // NOR_V
1573 UINT64_C(17408), // NOT16_MM
1574 UINT64_C(17408), // NOT16_MMR6
1575 UINT64_C(59421), // NegRxRy16
1576 UINT64_C(59407), // NotRxRy16
1577 UINT64_C(37), // OR
1578 UINT64_C(17600), // OR16_MM
1579 UINT64_C(17417), // OR16_MMR6
1580 UINT64_C(37), // OR64
1581 UINT64_C(2030043136), // ORI_B
1582 UINT64_C(1342177280), // ORI_MMR6
1583 UINT64_C(656), // OR_MM
1584 UINT64_C(656), // OR_MMR6
1585 UINT64_C(2015363102), // OR_V
1586 UINT64_C(872415232), // ORi
1587 UINT64_C(872415232), // ORi64
1588 UINT64_C(1342177280), // ORi_MM
1589 UINT64_C(59405), // OrRxRxRy16
1590 UINT64_C(2080375697), // PACKRL_PH
1591 UINT64_C(429), // PACKRL_PH_MM
1592 UINT64_C(320), // PAUSE
1593 UINT64_C(10240), // PAUSE_MM
1594 UINT64_C(10240), // PAUSE_MMR6
1595 UINT64_C(2030043156), // PCKEV_B
1596 UINT64_C(2036334612), // PCKEV_D
1597 UINT64_C(2032140308), // PCKEV_H
1598 UINT64_C(2034237460), // PCKEV_W
1599 UINT64_C(2038431764), // PCKOD_B
1600 UINT64_C(2044723220), // PCKOD_D
1601 UINT64_C(2040528916), // PCKOD_H
1602 UINT64_C(2042626068), // PCKOD_W
1603 UINT64_C(2063859742), // PCNT_B
1604 UINT64_C(2064056350), // PCNT_D
1605 UINT64_C(2063925278), // PCNT_H
1606 UINT64_C(2063990814), // PCNT_W
1607 UINT64_C(2080375505), // PICK_PH
1608 UINT64_C(557), // PICK_PH_MM
1609 UINT64_C(2080374993), // PICK_QB
1610 UINT64_C(493), // PICK_QB_MM
1611 UINT64_C(1186988076), // PLL_PS64
1612 UINT64_C(1186988077), // PLU_PS64
1613 UINT64_C(1879048236), // POP
1614 UINT64_C(2080375058), // PRECEQU_PH_QBL
1615 UINT64_C(2080375186), // PRECEQU_PH_QBLA
1616 UINT64_C(29500), // PRECEQU_PH_QBLA_MM
1617 UINT64_C(28988), // PRECEQU_PH_QBL_MM
1618 UINT64_C(2080375122), // PRECEQU_PH_QBR
1619 UINT64_C(2080375250), // PRECEQU_PH_QBRA
1620 UINT64_C(37692), // PRECEQU_PH_QBRA_MM
1621 UINT64_C(37180), // PRECEQU_PH_QBR_MM
1622 UINT64_C(2080375570), // PRECEQ_W_PHL
1623 UINT64_C(20796), // PRECEQ_W_PHL_MM
1624 UINT64_C(2080375634), // PRECEQ_W_PHR
1625 UINT64_C(24892), // PRECEQ_W_PHR_MM
1626 UINT64_C(2080376594), // PRECEU_PH_QBL
1627 UINT64_C(2080376722), // PRECEU_PH_QBLA
1628 UINT64_C(45884), // PRECEU_PH_QBLA_MM
1629 UINT64_C(45372), // PRECEU_PH_QBL_MM
1630 UINT64_C(2080376658), // PRECEU_PH_QBR
1631 UINT64_C(2080376786), // PRECEU_PH_QBRA
1632 UINT64_C(54076), // PRECEU_PH_QBRA_MM
1633 UINT64_C(53564), // PRECEU_PH_QBR_MM
1634 UINT64_C(2080375761), // PRECRQU_S_QB_PH
1635 UINT64_C(365), // PRECRQU_S_QB_PH_MM
1636 UINT64_C(2080376081), // PRECRQ_PH_W
1637 UINT64_C(237), // PRECRQ_PH_W_MM
1638 UINT64_C(2080375569), // PRECRQ_QB_PH
1639 UINT64_C(173), // PRECRQ_QB_PH_MM
1640 UINT64_C(2080376145), // PRECRQ_RS_PH_W
1641 UINT64_C(301), // PRECRQ_RS_PH_W_MM
1642 UINT64_C(2080375633), // PRECR_QB_PH
1643 UINT64_C(109), // PRECR_QB_PH_MMR2
1644 UINT64_C(2080376721), // PRECR_SRA_PH_W
1645 UINT64_C(973), // PRECR_SRA_PH_W_MMR2
1646 UINT64_C(2080376785), // PRECR_SRA_R_PH_W
1647 UINT64_C(1997), // PRECR_SRA_R_PH_W_MMR2
1648 UINT64_C(3422552064), // PREF
1649 UINT64_C(2080374819), // PREFE
1650 UINT64_C(1610654720), // PREFE_MM
1651 UINT64_C(1409286560), // PREFX_MM
1652 UINT64_C(1610620928), // PREF_MM
1653 UINT64_C(1610620928), // PREF_MMR6
1654 UINT64_C(2080374837), // PREF_R6
1655 UINT64_C(2080374897), // PREPEND
1656 UINT64_C(597), // PREPEND_MMR2
1657 UINT64_C(1186988078), // PUL_PS64
1658 UINT64_C(1186988079), // PUU_PS64
1659 UINT64_C(2080376080), // RADDU_W_QB
1660 UINT64_C(61756), // RADDU_W_QB_MM
1661 UINT64_C(2080375992), // RDDSP
1662 UINT64_C(1660), // RDDSP_MM
1663 UINT64_C(2080374843), // RDHWR
1664 UINT64_C(2080374843), // RDHWR64
1665 UINT64_C(27452), // RDHWR_MM
1666 UINT64_C(448), // RDHWR_MMR6
1667 UINT64_C(57724), // RDPGPR_MMR6
1668 UINT64_C(1176502293), // RECIP_D32
1669 UINT64_C(1409307195), // RECIP_D32_MM
1670 UINT64_C(1176502293), // RECIP_D64
1671 UINT64_C(1409307195), // RECIP_D64_MM
1672 UINT64_C(1174405141), // RECIP_S
1673 UINT64_C(1409290811), // RECIP_S_MM
1674 UINT64_C(2080375506), // REPLV_PH
1675 UINT64_C(828), // REPLV_PH_MM
1676 UINT64_C(2080374994), // REPLV_QB
1677 UINT64_C(4924), // REPLV_QB_MM
1678 UINT64_C(2080375442), // REPL_PH
1679 UINT64_C(61), // REPL_PH_MM
1680 UINT64_C(2080374930), // REPL_QB
1681 UINT64_C(1532), // REPL_QB_MM
1682 UINT64_C(1176502298), // RINT_D
1683 UINT64_C(1409286688), // RINT_D_MMR6
1684 UINT64_C(1174405146), // RINT_S
1685 UINT64_C(1409286176), // RINT_S_MMR6
1686 UINT64_C(2097154), // ROTR
1687 UINT64_C(70), // ROTRV
1688 UINT64_C(208), // ROTRV_MM
1689 UINT64_C(192), // ROTR_MM
1690 UINT64_C(1176502280), // ROUND_L_D64
1691 UINT64_C(1409315643), // ROUND_L_D_MMR6
1692 UINT64_C(1174405128), // ROUND_L_S
1693 UINT64_C(1409299259), // ROUND_L_S_MMR6
1694 UINT64_C(1176502284), // ROUND_W_D32
1695 UINT64_C(1176502284), // ROUND_W_D64
1696 UINT64_C(1409317691), // ROUND_W_D_MMR6
1697 UINT64_C(1409317691), // ROUND_W_MM
1698 UINT64_C(1174405132), // ROUND_W_S
1699 UINT64_C(1409301307), // ROUND_W_S_MM
1700 UINT64_C(1409301307), // ROUND_W_S_MMR6
1701 UINT64_C(1176502294), // RSQRT_D32
1702 UINT64_C(1409303099), // RSQRT_D32_MM
1703 UINT64_C(1176502294), // RSQRT_D64
1704 UINT64_C(1409303099), // RSQRT_D64_MM
1705 UINT64_C(1174405142), // RSQRT_S
1706 UINT64_C(1409286715), // RSQRT_S_MM
1707 UINT64_C(25728), // Restore16
1708 UINT64_C(25728), // RestoreX16
1709 UINT64_C(1879048216), // SAA
1710 UINT64_C(1879048217), // SAAD
1711 UINT64_C(2020605962), // SAT_S_B
1712 UINT64_C(2013265930), // SAT_S_D
1713 UINT64_C(2019557386), // SAT_S_H
1714 UINT64_C(2017460234), // SAT_S_W
1715 UINT64_C(2028994570), // SAT_U_B
1716 UINT64_C(2021654538), // SAT_U_D
1717 UINT64_C(2027945994), // SAT_U_H
1718 UINT64_C(2025848842), // SAT_U_W
1719 UINT64_C(2684354560), // SB
1720 UINT64_C(34816), // SB16_MM
1721 UINT64_C(34816), // SB16_MMR6
1722 UINT64_C(2684354560), // SB64
1723 UINT64_C(2080374812), // SBE
1724 UINT64_C(1610655744), // SBE_MM
1725 UINT64_C(402653184), // SB_MM
1726 UINT64_C(402653184), // SB_MMR6
1727 UINT64_C(3758096384), // SC
1728 UINT64_C(3758096384), // SC64
1729 UINT64_C(2080374822), // SC64_R6
1730 UINT64_C(4026531840), // SCD
1731 UINT64_C(2080374823), // SCD_R6
1732 UINT64_C(2080374814), // SCE
1733 UINT64_C(1610656768), // SCE_MM
1734 UINT64_C(1610657792), // SC_MM
1735 UINT64_C(1610657792), // SC_MMR6
1736 UINT64_C(2080374822), // SC_R6
1737 UINT64_C(4227858432), // SD
1738 UINT64_C(1879048255), // SDBBP
1739 UINT64_C(18112), // SDBBP16_MM
1740 UINT64_C(17467), // SDBBP16_MMR6
1741 UINT64_C(56188), // SDBBP_MM
1742 UINT64_C(56188), // SDBBP_MMR6
1743 UINT64_C(14), // SDBBP_R6
1744 UINT64_C(4093640704), // SDC1
1745 UINT64_C(4093640704), // SDC164
1746 UINT64_C(3087007744), // SDC1_D64_MMR6
1747 UINT64_C(3087007744), // SDC1_MM_D32
1748 UINT64_C(3087007744), // SDC1_MM_D64
1749 UINT64_C(4160749568), // SDC2
1750 UINT64_C(536911872), // SDC2_MMR6
1751 UINT64_C(1239416832), // SDC2_R6
1752 UINT64_C(4227858432), // SDC3
1753 UINT64_C(26), // SDIV
1754 UINT64_C(43836), // SDIV_MM
1755 UINT64_C(2952790016), // SDL
1756 UINT64_C(3019898880), // SDR
1757 UINT64_C(1275068425), // SDXC1
1758 UINT64_C(1275068425), // SDXC164
1759 UINT64_C(2080375840), // SEB
1760 UINT64_C(2080375840), // SEB64
1761 UINT64_C(11068), // SEB_MM
1762 UINT64_C(2080376352), // SEH
1763 UINT64_C(2080376352), // SEH64
1764 UINT64_C(15164), // SEH_MM
1765 UINT64_C(53), // SELEQZ
1766 UINT64_C(53), // SELEQZ64
1767 UINT64_C(1176502292), // SELEQZ_D
1768 UINT64_C(1409286712), // SELEQZ_D_MMR6
1769 UINT64_C(320), // SELEQZ_MMR6
1770 UINT64_C(1174405140), // SELEQZ_S
1771 UINT64_C(1409286200), // SELEQZ_S_MMR6
1772 UINT64_C(55), // SELNEZ
1773 UINT64_C(55), // SELNEZ64
1774 UINT64_C(1176502295), // SELNEZ_D
1775 UINT64_C(1409286776), // SELNEZ_D_MMR6
1776 UINT64_C(384), // SELNEZ_MMR6
1777 UINT64_C(1174405143), // SELNEZ_S
1778 UINT64_C(1409286264), // SELNEZ_S_MMR6
1779 UINT64_C(1176502288), // SEL_D
1780 UINT64_C(1409286840), // SEL_D_MMR6
1781 UINT64_C(1174405136), // SEL_S
1782 UINT64_C(1409286328), // SEL_S_MMR6
1783 UINT64_C(1879048234), // SEQ
1784 UINT64_C(1879048238), // SEQi
1785 UINT64_C(2751463424), // SH
1786 UINT64_C(43008), // SH16_MM
1787 UINT64_C(43008), // SH16_MMR6
1788 UINT64_C(2751463424), // SH64
1789 UINT64_C(2080374813), // SHE
1790 UINT64_C(1610656256), // SHE_MM
1791 UINT64_C(2013265922), // SHF_B
1792 UINT64_C(2030043138), // SHF_H
1793 UINT64_C(2046820354), // SHF_W
1794 UINT64_C(2080376504), // SHILO
1795 UINT64_C(2080376568), // SHILOV
1796 UINT64_C(4732), // SHILOV_MM
1797 UINT64_C(29), // SHILO_MM
1798 UINT64_C(2080375443), // SHLLV_PH
1799 UINT64_C(14), // SHLLV_PH_MM
1800 UINT64_C(2080374931), // SHLLV_QB
1801 UINT64_C(917), // SHLLV_QB_MM
1802 UINT64_C(2080375699), // SHLLV_S_PH
1803 UINT64_C(1038), // SHLLV_S_PH_MM
1804 UINT64_C(2080376211), // SHLLV_S_W
1805 UINT64_C(981), // SHLLV_S_W_MM
1806 UINT64_C(2080375315), // SHLL_PH
1807 UINT64_C(949), // SHLL_PH_MM
1808 UINT64_C(2080374803), // SHLL_QB
1809 UINT64_C(2172), // SHLL_QB_MM
1810 UINT64_C(2080375571), // SHLL_S_PH
1811 UINT64_C(2997), // SHLL_S_PH_MM
1812 UINT64_C(2080376083), // SHLL_S_W
1813 UINT64_C(1013), // SHLL_S_W_MM
1814 UINT64_C(2080375507), // SHRAV_PH
1815 UINT64_C(397), // SHRAV_PH_MM
1816 UINT64_C(2080375187), // SHRAV_QB
1817 UINT64_C(461), // SHRAV_QB_MMR2
1818 UINT64_C(2080375763), // SHRAV_R_PH
1819 UINT64_C(1421), // SHRAV_R_PH_MM
1820 UINT64_C(2080375251), // SHRAV_R_QB
1821 UINT64_C(1485), // SHRAV_R_QB_MMR2
1822 UINT64_C(2080376275), // SHRAV_R_W
1823 UINT64_C(725), // SHRAV_R_W_MM
1824 UINT64_C(2080375379), // SHRA_PH
1825 UINT64_C(821), // SHRA_PH_MM
1826 UINT64_C(2080375059), // SHRA_QB
1827 UINT64_C(508), // SHRA_QB_MMR2
1828 UINT64_C(2080375635), // SHRA_R_PH
1829 UINT64_C(1845), // SHRA_R_PH_MM
1830 UINT64_C(2080375123), // SHRA_R_QB
1831 UINT64_C(4604), // SHRA_R_QB_MMR2
1832 UINT64_C(2080376147), // SHRA_R_W
1833 UINT64_C(757), // SHRA_R_W_MM
1834 UINT64_C(2080376531), // SHRLV_PH
1835 UINT64_C(789), // SHRLV_PH_MMR2
1836 UINT64_C(2080374995), // SHRLV_QB
1837 UINT64_C(853), // SHRLV_QB_MM
1838 UINT64_C(2080376403), // SHRL_PH
1839 UINT64_C(1020), // SHRL_PH_MMR2
1840 UINT64_C(2080374867), // SHRL_QB
1841 UINT64_C(6268), // SHRL_QB_MM
1842 UINT64_C(939524096), // SH_MM
1843 UINT64_C(939524096), // SH_MMR6
1844 UINT64_C(68616192), // SIGRIE
1845 UINT64_C(63), // SIGRIE_MMR6
1846 UINT64_C(2013265945), // SLDI_B
1847 UINT64_C(2016935961), // SLDI_D
1848 UINT64_C(2015363097), // SLDI_H
1849 UINT64_C(2016411673), // SLDI_W
1850 UINT64_C(2013265940), // SLD_B
1851 UINT64_C(2019557396), // SLD_D
1852 UINT64_C(2015363092), // SLD_H
1853 UINT64_C(2017460244), // SLD_W
1854 UINT64_C(0), // SLL
1855 UINT64_C(9216), // SLL16_MM
1856 UINT64_C(9216), // SLL16_MMR6
1857 UINT64_C(0), // SLL64_32
1858 UINT64_C(0), // SLL64_64
1859 UINT64_C(2020605961), // SLLI_B
1860 UINT64_C(2013265929), // SLLI_D
1861 UINT64_C(2019557385), // SLLI_H
1862 UINT64_C(2017460233), // SLLI_W
1863 UINT64_C(4), // SLLV
1864 UINT64_C(16), // SLLV_MM
1865 UINT64_C(2013265933), // SLL_B
1866 UINT64_C(2019557389), // SLL_D
1867 UINT64_C(2015363085), // SLL_H
1868 UINT64_C(0), // SLL_MM
1869 UINT64_C(0), // SLL_MMR6
1870 UINT64_C(2017460237), // SLL_W
1871 UINT64_C(42), // SLT
1872 UINT64_C(42), // SLT64
1873 UINT64_C(848), // SLT_MM
1874 UINT64_C(671088640), // SLTi
1875 UINT64_C(671088640), // SLTi64
1876 UINT64_C(2415919104), // SLTi_MM
1877 UINT64_C(738197504), // SLTiu
1878 UINT64_C(738197504), // SLTiu64
1879 UINT64_C(2952790016), // SLTiu_MM
1880 UINT64_C(43), // SLTu
1881 UINT64_C(43), // SLTu64
1882 UINT64_C(912), // SLTu_MM
1883 UINT64_C(1879048235), // SNE
1884 UINT64_C(1879048239), // SNEi
1885 UINT64_C(2017460249), // SPLATI_B
1886 UINT64_C(2021130265), // SPLATI_D
1887 UINT64_C(2019557401), // SPLATI_H
1888 UINT64_C(2020605977), // SPLATI_W
1889 UINT64_C(2021654548), // SPLAT_B
1890 UINT64_C(2027946004), // SPLAT_D
1891 UINT64_C(2023751700), // SPLAT_H
1892 UINT64_C(2025848852), // SPLAT_W
1893 UINT64_C(3), // SRA
1894 UINT64_C(2028994569), // SRAI_B
1895 UINT64_C(2021654537), // SRAI_D
1896 UINT64_C(2027945993), // SRAI_H
1897 UINT64_C(2025848841), // SRAI_W
1898 UINT64_C(2037383178), // SRARI_B
1899 UINT64_C(2030043146), // SRARI_D
1900 UINT64_C(2036334602), // SRARI_H
1901 UINT64_C(2034237450), // SRARI_W
1902 UINT64_C(2021654549), // SRAR_B
1903 UINT64_C(2027946005), // SRAR_D
1904 UINT64_C(2023751701), // SRAR_H
1905 UINT64_C(2025848853), // SRAR_W
1906 UINT64_C(7), // SRAV
1907 UINT64_C(144), // SRAV_MM
1908 UINT64_C(2021654541), // SRA_B
1909 UINT64_C(2027945997), // SRA_D
1910 UINT64_C(2023751693), // SRA_H
1911 UINT64_C(128), // SRA_MM
1912 UINT64_C(2025848845), // SRA_W
1913 UINT64_C(2), // SRL
1914 UINT64_C(9217), // SRL16_MM
1915 UINT64_C(9217), // SRL16_MMR6
1916 UINT64_C(2037383177), // SRLI_B
1917 UINT64_C(2030043145), // SRLI_D
1918 UINT64_C(2036334601), // SRLI_H
1919 UINT64_C(2034237449), // SRLI_W
1920 UINT64_C(2045771786), // SRLRI_B
1921 UINT64_C(2038431754), // SRLRI_D
1922 UINT64_C(2044723210), // SRLRI_H
1923 UINT64_C(2042626058), // SRLRI_W
1924 UINT64_C(2030043157), // SRLR_B
1925 UINT64_C(2036334613), // SRLR_D
1926 UINT64_C(2032140309), // SRLR_H
1927 UINT64_C(2034237461), // SRLR_W
1928 UINT64_C(6), // SRLV
1929 UINT64_C(80), // SRLV_MM
1930 UINT64_C(2030043149), // SRL_B
1931 UINT64_C(2036334605), // SRL_D
1932 UINT64_C(2032140301), // SRL_H
1933 UINT64_C(64), // SRL_MM
1934 UINT64_C(2034237453), // SRL_W
1935 UINT64_C(64), // SSNOP
1936 UINT64_C(2048), // SSNOP_MM
1937 UINT64_C(2048), // SSNOP_MMR6
1938 UINT64_C(2013265956), // ST_B
1939 UINT64_C(2013265959), // ST_D
1940 UINT64_C(2013265957), // ST_H
1941 UINT64_C(2013265958), // ST_W
1942 UINT64_C(34), // SUB
1943 UINT64_C(2080375384), // SUBQH_PH
1944 UINT64_C(589), // SUBQH_PH_MMR2
1945 UINT64_C(2080375512), // SUBQH_R_PH
1946 UINT64_C(1613), // SUBQH_R_PH_MMR2
1947 UINT64_C(2080376024), // SUBQH_R_W
1948 UINT64_C(1677), // SUBQH_R_W_MMR2
1949 UINT64_C(2080375896), // SUBQH_W
1950 UINT64_C(653), // SUBQH_W_MMR2
1951 UINT64_C(2080375504), // SUBQ_PH
1952 UINT64_C(525), // SUBQ_PH_MM
1953 UINT64_C(2080375760), // SUBQ_S_PH
1954 UINT64_C(1549), // SUBQ_S_PH_MM
1955 UINT64_C(2080376272), // SUBQ_S_W
1956 UINT64_C(837), // SUBQ_S_W_MM
1957 UINT64_C(2030043153), // SUBSUS_U_B
1958 UINT64_C(2036334609), // SUBSUS_U_D
1959 UINT64_C(2032140305), // SUBSUS_U_H
1960 UINT64_C(2034237457), // SUBSUS_U_W
1961 UINT64_C(2038431761), // SUBSUU_S_B
1962 UINT64_C(2044723217), // SUBSUU_S_D
1963 UINT64_C(2040528913), // SUBSUU_S_H
1964 UINT64_C(2042626065), // SUBSUU_S_W
1965 UINT64_C(2013265937), // SUBS_S_B
1966 UINT64_C(2019557393), // SUBS_S_D
1967 UINT64_C(2015363089), // SUBS_S_H
1968 UINT64_C(2017460241), // SUBS_S_W
1969 UINT64_C(2021654545), // SUBS_U_B
1970 UINT64_C(2027946001), // SUBS_U_D
1971 UINT64_C(2023751697), // SUBS_U_H
1972 UINT64_C(2025848849), // SUBS_U_W
1973 UINT64_C(1025), // SUBU16_MM
1974 UINT64_C(1025), // SUBU16_MMR6
1975 UINT64_C(2080374872), // SUBUH_QB
1976 UINT64_C(845), // SUBUH_QB_MMR2
1977 UINT64_C(2080375000), // SUBUH_R_QB
1978 UINT64_C(1869), // SUBUH_R_QB_MMR2
1979 UINT64_C(464), // SUBU_MMR6
1980 UINT64_C(2080375376), // SUBU_PH
1981 UINT64_C(781), // SUBU_PH_MMR2
1982 UINT64_C(2080374864), // SUBU_QB
1983 UINT64_C(717), // SUBU_QB_MM
1984 UINT64_C(2080375632), // SUBU_S_PH
1985 UINT64_C(1805), // SUBU_S_PH_MMR2
1986 UINT64_C(2080375120), // SUBU_S_QB
1987 UINT64_C(1741), // SUBU_S_QB_MM
1988 UINT64_C(2021654534), // SUBVI_B
1989 UINT64_C(2027945990), // SUBVI_D
1990 UINT64_C(2023751686), // SUBVI_H
1991 UINT64_C(2025848838), // SUBVI_W
1992 UINT64_C(2021654542), // SUBV_B
1993 UINT64_C(2027945998), // SUBV_D
1994 UINT64_C(2023751694), // SUBV_H
1995 UINT64_C(2025848846), // SUBV_W
1996 UINT64_C(400), // SUB_MM
1997 UINT64_C(400), // SUB_MMR6
1998 UINT64_C(35), // SUBu
1999 UINT64_C(464), // SUBu_MM
2000 UINT64_C(1275068429), // SUXC1
2001 UINT64_C(1275068429), // SUXC164
2002 UINT64_C(1409286536), // SUXC1_MM
2003 UINT64_C(2885681152), // SW
2004 UINT64_C(59392), // SW16_MM
2005 UINT64_C(59392), // SW16_MMR6
2006 UINT64_C(2885681152), // SW64
2007 UINT64_C(3825205248), // SWC1
2008 UINT64_C(2550136832), // SWC1_MM
2009 UINT64_C(3892314112), // SWC2
2010 UINT64_C(536903680), // SWC2_MMR6
2011 UINT64_C(1231028224), // SWC2_R6
2012 UINT64_C(3959422976), // SWC3
2013 UINT64_C(2885681152), // SWDSP
2014 UINT64_C(4160749568), // SWDSP_MM
2015 UINT64_C(2080374815), // SWE
2016 UINT64_C(1610657280), // SWE_MM
2017 UINT64_C(2818572288), // SWL
2018 UINT64_C(2818572288), // SWL64
2019 UINT64_C(2080374817), // SWLE
2020 UINT64_C(1610653696), // SWLE_MM
2021 UINT64_C(1610645504), // SWL_MM
2022 UINT64_C(17728), // SWM16_MM
2023 UINT64_C(17418), // SWM16_MMR6
2024 UINT64_C(536924160), // SWM32_MM
2025 UINT64_C(536907776), // SWP_MM
2026 UINT64_C(3087007744), // SWR
2027 UINT64_C(3087007744), // SWR64
2028 UINT64_C(2080374818), // SWRE
2029 UINT64_C(1610654208), // SWRE_MM
2030 UINT64_C(1610649600), // SWR_MM
2031 UINT64_C(51200), // SWSP_MM
2032 UINT64_C(51200), // SWSP_MMR6
2033 UINT64_C(1275068424), // SWXC1
2034 UINT64_C(1409286280), // SWXC1_MM
2035 UINT64_C(4160749568), // SW_MM
2036 UINT64_C(4160749568), // SW_MMR6
2037 UINT64_C(15), // SYNC
2038 UINT64_C(69140480), // SYNCI
2039 UINT64_C(1107296256), // SYNCI_MM
2040 UINT64_C(1098907648), // SYNCI_MMR6
2041 UINT64_C(27516), // SYNC_MM
2042 UINT64_C(27516), // SYNC_MMR6
2043 UINT64_C(12), // SYSCALL
2044 UINT64_C(35708), // SYSCALL_MM
2045 UINT64_C(25728), // Save16
2046 UINT64_C(25728), // SaveX16
2047 UINT64_C(4026580992), // SbRxRyOffMemX16
2048 UINT64_C(59537), // SebRx16
2049 UINT64_C(59569), // SehRx16
2050 UINT64_C(4026583040), // ShRxRyOffMemX16
2051 UINT64_C(4026544128), // SllX16
2052 UINT64_C(59396), // SllvRxRy16
2053 UINT64_C(59394), // SltRxRy16
2054 UINT64_C(20480), // SltiRxImm16
2055 UINT64_C(4026552320), // SltiRxImmX16
2056 UINT64_C(22528), // SltiuRxImm16
2057 UINT64_C(4026554368), // SltiuRxImmX16
2058 UINT64_C(59395), // SltuRxRy16
2059 UINT64_C(4026544131), // SraX16
2060 UINT64_C(59399), // SravRxRy16
2061 UINT64_C(4026544130), // SrlX16
2062 UINT64_C(59398), // SrlvRxRy16
2063 UINT64_C(57347), // SubuRxRyRz16
2064 UINT64_C(4026587136), // SwRxRyOffMemX16
2065 UINT64_C(4026585088), // SwRxSpImmX16
2066 UINT64_C(52), // TEQ
2067 UINT64_C(67895296), // TEQI
2068 UINT64_C(1103101952), // TEQI_MM
2069 UINT64_C(60), // TEQ_MM
2070 UINT64_C(48), // TGE
2071 UINT64_C(67633152), // TGEI
2072 UINT64_C(67698688), // TGEIU
2073 UINT64_C(1096810496), // TGEIU_MM
2074 UINT64_C(1092616192), // TGEI_MM
2075 UINT64_C(49), // TGEU
2076 UINT64_C(1084), // TGEU_MM
2077 UINT64_C(572), // TGE_MM
2078 UINT64_C(1107296267), // TLBGINV
2079 UINT64_C(1107296268), // TLBGINVF
2080 UINT64_C(20860), // TLBGINVF_MM
2081 UINT64_C(16764), // TLBGINV_MM
2082 UINT64_C(1107296272), // TLBGP
2083 UINT64_C(380), // TLBGP_MM
2084 UINT64_C(1107296265), // TLBGR
2085 UINT64_C(4476), // TLBGR_MM
2086 UINT64_C(1107296266), // TLBGWI
2087 UINT64_C(8572), // TLBGWI_MM
2088 UINT64_C(1107296270), // TLBGWR
2089 UINT64_C(12668), // TLBGWR_MM
2090 UINT64_C(1107296259), // TLBINV
2091 UINT64_C(1107296260), // TLBINVF
2092 UINT64_C(21372), // TLBINVF_MMR6
2093 UINT64_C(17276), // TLBINV_MMR6
2094 UINT64_C(1107296264), // TLBP
2095 UINT64_C(892), // TLBP_MM
2096 UINT64_C(1107296257), // TLBR
2097 UINT64_C(4988), // TLBR_MM
2098 UINT64_C(1107296258), // TLBWI
2099 UINT64_C(9084), // TLBWI_MM
2100 UINT64_C(1107296262), // TLBWR
2101 UINT64_C(13180), // TLBWR_MM
2102 UINT64_C(50), // TLT
2103 UINT64_C(67764224), // TLTI
2104 UINT64_C(1094713344), // TLTIU_MM
2105 UINT64_C(1090519040), // TLTI_MM
2106 UINT64_C(51), // TLTU
2107 UINT64_C(2620), // TLTU_MM
2108 UINT64_C(2108), // TLT_MM
2109 UINT64_C(54), // TNE
2110 UINT64_C(68026368), // TNEI
2111 UINT64_C(1098907648), // TNEI_MM
2112 UINT64_C(3132), // TNE_MM
2113 UINT64_C(1176502281), // TRUNC_L_D64
2114 UINT64_C(1409311547), // TRUNC_L_D_MMR6
2115 UINT64_C(1174405129), // TRUNC_L_S
2116 UINT64_C(1409295163), // TRUNC_L_S_MMR6
2117 UINT64_C(1176502285), // TRUNC_W_D32
2118 UINT64_C(1176502285), // TRUNC_W_D64
2119 UINT64_C(1409313595), // TRUNC_W_D_MMR6
2120 UINT64_C(1409313595), // TRUNC_W_MM
2121 UINT64_C(1174405133), // TRUNC_W_S
2122 UINT64_C(1409297211), // TRUNC_W_S_MM
2123 UINT64_C(1409297211), // TRUNC_W_S_MMR6
2124 UINT64_C(67829760), // TTLTIU
2125 UINT64_C(27), // UDIV
2126 UINT64_C(47932), // UDIV_MM
2127 UINT64_C(1879048209), // V3MULU
2128 UINT64_C(1879048208), // VMM0
2129 UINT64_C(1879048207), // VMULU
2130 UINT64_C(2013265941), // VSHF_B
2131 UINT64_C(2019557397), // VSHF_D
2132 UINT64_C(2015363093), // VSHF_H
2133 UINT64_C(2017460245), // VSHF_W
2134 UINT64_C(1107296288), // WAIT
2135 UINT64_C(37756), // WAIT_MM
2136 UINT64_C(37756), // WAIT_MMR6
2137 UINT64_C(2080376056), // WRDSP
2138 UINT64_C(5756), // WRDSP_MM
2139 UINT64_C(61820), // WRPGPR_MMR6
2140 UINT64_C(2080374944), // WSBH
2141 UINT64_C(31548), // WSBH_MM
2142 UINT64_C(31548), // WSBH_MMR6
2143 UINT64_C(38), // XOR
2144 UINT64_C(17472), // XOR16_MM
2145 UINT64_C(17416), // XOR16_MMR6
2146 UINT64_C(38), // XOR64
2147 UINT64_C(2063597568), // XORI_B
2148 UINT64_C(1879048192), // XORI_MMR6
2149 UINT64_C(784), // XOR_MM
2150 UINT64_C(784), // XOR_MMR6
2151 UINT64_C(2019557406), // XOR_V
2152 UINT64_C(939524096), // XORi
2153 UINT64_C(939524096), // XORi64
2154 UINT64_C(1879048192), // XORi_MM
2155 UINT64_C(59406), // XorRxRxRy16
2156 UINT64_C(2080374793), // YIELD
2157 };
2158 constexpr unsigned FirstSupportedOpcode = 788;
2159
2160 const unsigned opcode = MI.getOpcode();
2161 if (opcode < FirstSupportedOpcode)
2162 reportUnsupportedInst(Inst: MI);
2163 unsigned TableIndex = opcode - FirstSupportedOpcode;
2164 uint64_t Value = InstBits[TableIndex];
2165 uint64_t op = 0;
2166 (void)op; // suppress warning
2167 switch (opcode) {
2168 case Mips::Break16:
2169 case Mips::DERET:
2170 case Mips::DERET_MM:
2171 case Mips::DERET_MMR6:
2172 case Mips::EHB:
2173 case Mips::EHB_MM:
2174 case Mips::EHB_MMR6:
2175 case Mips::ERET:
2176 case Mips::ERETNC:
2177 case Mips::ERETNC_MMR6:
2178 case Mips::ERET_MM:
2179 case Mips::ERET_MMR6:
2180 case Mips::JrRa16:
2181 case Mips::JrcRa16:
2182 case Mips::NAL:
2183 case Mips::PAUSE:
2184 case Mips::PAUSE_MM:
2185 case Mips::PAUSE_MMR6:
2186 case Mips::Restore16:
2187 case Mips::RestoreX16:
2188 case Mips::SSNOP:
2189 case Mips::SSNOP_MM:
2190 case Mips::SSNOP_MMR6:
2191 case Mips::Save16:
2192 case Mips::SaveX16:
2193 case Mips::TLBGINV:
2194 case Mips::TLBGINVF:
2195 case Mips::TLBGINVF_MM:
2196 case Mips::TLBGINV_MM:
2197 case Mips::TLBGP:
2198 case Mips::TLBGP_MM:
2199 case Mips::TLBGR:
2200 case Mips::TLBGR_MM:
2201 case Mips::TLBGWI:
2202 case Mips::TLBGWI_MM:
2203 case Mips::TLBGWR:
2204 case Mips::TLBGWR_MM:
2205 case Mips::TLBINV:
2206 case Mips::TLBINVF:
2207 case Mips::TLBINVF_MMR6:
2208 case Mips::TLBINV_MMR6:
2209 case Mips::TLBP:
2210 case Mips::TLBP_MM:
2211 case Mips::TLBR:
2212 case Mips::TLBR_MM:
2213 case Mips::TLBWI:
2214 case Mips::TLBWI_MM:
2215 case Mips::TLBWR:
2216 case Mips::TLBWR_MM:
2217 case Mips::WAIT: {
2218 break;
2219 }
2220 case Mips::MTHLIP:
2221 case Mips::SHILOV: {
2222 // op: ac
2223 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2224 Value |= (op & 0x3) << 11;
2225 // op: rs
2226 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
2227 Value |= (op & 0x1f) << 21;
2228 break;
2229 }
2230 case Mips::DPAQX_SA_W_PH:
2231 case Mips::DPAQX_S_W_PH:
2232 case Mips::DPAQ_SA_L_W:
2233 case Mips::DPAQ_S_W_PH:
2234 case Mips::DPAU_H_QBL:
2235 case Mips::DPAU_H_QBR:
2236 case Mips::DPAX_W_PH:
2237 case Mips::DPA_W_PH:
2238 case Mips::DPSQX_SA_W_PH:
2239 case Mips::DPSQX_S_W_PH:
2240 case Mips::DPSQ_SA_L_W:
2241 case Mips::DPSQ_S_W_PH:
2242 case Mips::DPSU_H_QBL:
2243 case Mips::DPSU_H_QBR:
2244 case Mips::DPSX_W_PH:
2245 case Mips::DPS_W_PH:
2246 case Mips::MADDU_DSP:
2247 case Mips::MADD_DSP:
2248 case Mips::MAQ_SA_W_PHL:
2249 case Mips::MAQ_SA_W_PHR:
2250 case Mips::MAQ_S_W_PHL:
2251 case Mips::MAQ_S_W_PHR:
2252 case Mips::MSUBU_DSP:
2253 case Mips::MSUB_DSP:
2254 case Mips::MULSAQ_S_W_PH:
2255 case Mips::MULSA_W_PH:
2256 case Mips::MULTU_DSP:
2257 case Mips::MULT_DSP: {
2258 // op: ac
2259 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2260 Value |= (op & 0x3) << 11;
2261 // op: rs
2262 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
2263 Value |= (op & 0x1f) << 21;
2264 // op: rt
2265 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
2266 Value |= (op & 0x1f) << 16;
2267 break;
2268 }
2269 case Mips::SHILO: {
2270 // op: ac
2271 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2272 Value |= (op & 0x3) << 11;
2273 // op: shift
2274 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
2275 Value |= (op & 0x3f) << 20;
2276 break;
2277 }
2278 case Mips::SYNCI_MM:
2279 case Mips::SYNCI_MMR6: {
2280 // op: base
2281 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2282 Value |= (op & 0x1f) << 16;
2283 // op: offset
2284 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
2285 Value |= (op & 0xffff);
2286 break;
2287 }
2288 case Mips::CACHEE:
2289 case Mips::PREFE: {
2290 // op: base
2291 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2292 Value |= (op & 0x1f) << 21;
2293 // op: offset
2294 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
2295 Value |= (op & 0x1ff) << 7;
2296 // op: hint
2297 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
2298 Value |= (op & 0x1f) << 16;
2299 break;
2300 }
2301 case Mips::SYNCI: {
2302 // op: base
2303 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2304 Value |= (op & 0x1f) << 21;
2305 // op: offset
2306 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
2307 Value |= (op & 0xffff);
2308 break;
2309 }
2310 case Mips::HYPCALL: {
2311 // op: code_
2312 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2313 Value |= (op & 0x3ff) << 11;
2314 break;
2315 }
2316 case Mips::HYPCALL_MM:
2317 case Mips::SDBBP_MM:
2318 case Mips::SDBBP_MMR6:
2319 case Mips::SYSCALL_MM:
2320 case Mips::WAIT_MM:
2321 case Mips::WAIT_MMR6: {
2322 // op: code_
2323 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2324 Value |= (op & 0x3ff) << 16;
2325 break;
2326 }
2327 case Mips::BREAK16_MMR6:
2328 case Mips::SDBBP16_MMR6: {
2329 // op: code_
2330 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2331 Value |= (op & 0xf) << 6;
2332 break;
2333 }
2334 case Mips::BREAK16_MM:
2335 case Mips::SDBBP16_MM: {
2336 // op: code_
2337 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2338 Value |= (op & 0xf);
2339 break;
2340 }
2341 case Mips::SIGRIE_MMR6: {
2342 // op: code_
2343 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2344 Value |= (op & 0xffff) << 6;
2345 break;
2346 }
2347 case Mips::SIGRIE: {
2348 // op: code_
2349 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2350 Value |= (op & 0xffff);
2351 break;
2352 }
2353 case Mips::SDBBP:
2354 case Mips::SDBBP_R6:
2355 case Mips::SYSCALL: {
2356 // op: code_
2357 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2358 Value |= (op & 0xfffff) << 6;
2359 break;
2360 }
2361 case Mips::BREAK:
2362 case Mips::BREAK_MM:
2363 case Mips::BREAK_MMR6: {
2364 // op: code_1
2365 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2366 Value |= (op & 0x3ff) << 16;
2367 // op: code_2
2368 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
2369 Value |= (op & 0x3ff) << 6;
2370 break;
2371 }
2372 case Mips::BC2EQZ:
2373 case Mips::BC2NEZ: {
2374 // op: ct
2375 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2376 Value |= (op & 0x1f) << 16;
2377 // op: offset
2378 op = getBranchTargetOpValue(MI, OpNo: 1, Fixups, STI);
2379 Value |= (op & 0xffff);
2380 break;
2381 }
2382 case Mips::BC1F:
2383 case Mips::BC1FL:
2384 case Mips::BC1T:
2385 case Mips::BC1TL: {
2386 // op: fcc
2387 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2388 Value |= (op & 0x7) << 18;
2389 // op: offset
2390 op = getBranchTargetOpValue(MI, OpNo: 1, Fixups, STI);
2391 Value |= (op & 0xffff);
2392 break;
2393 }
2394 case Mips::BC1F_MM:
2395 case Mips::BC1T_MM: {
2396 // op: fcc
2397 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2398 Value |= (op & 0x7) << 18;
2399 // op: offset
2400 op = getBranchTargetOpValueMM(MI, OpNo: 1, Fixups, STI);
2401 Value |= (op & 0xffff);
2402 break;
2403 }
2404 case Mips::LUXC1_MM:
2405 case Mips::LWXC1_MM: {
2406 // op: fd
2407 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2408 Value |= (op & 0x1f) << 11;
2409 // op: base
2410 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
2411 Value |= (op & 0x1f) << 16;
2412 // op: index
2413 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
2414 Value |= (op & 0x1f) << 21;
2415 break;
2416 }
2417 case Mips::MOVN_I_D32_MM:
2418 case Mips::MOVN_I_S_MM:
2419 case Mips::MOVZ_I_D32_MM:
2420 case Mips::MOVZ_I_S_MM: {
2421 // op: fd
2422 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2423 Value |= (op & 0x1f) << 11;
2424 // op: fs
2425 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
2426 Value |= (op & 0x1f) << 16;
2427 // op: rt
2428 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
2429 Value |= (op & 0x1f) << 21;
2430 break;
2431 }
2432 case Mips::CEIL_W_MM:
2433 case Mips::CEIL_W_S_MM:
2434 case Mips::CVT_D32_S_MM:
2435 case Mips::CVT_D32_W_MM:
2436 case Mips::CVT_D64_S_MM:
2437 case Mips::CVT_D64_W_MM:
2438 case Mips::CVT_L_D64_MM:
2439 case Mips::CVT_L_S_MM:
2440 case Mips::CVT_S_D32_MM:
2441 case Mips::CVT_S_D64_MM:
2442 case Mips::CVT_S_W_MM:
2443 case Mips::CVT_W_D32_MM:
2444 case Mips::CVT_W_D64_MM:
2445 case Mips::CVT_W_S_MM:
2446 case Mips::FABS_D32_MM:
2447 case Mips::FABS_D64_MM:
2448 case Mips::FABS_S_MM:
2449 case Mips::FLOOR_W_MM:
2450 case Mips::FLOOR_W_S_MM:
2451 case Mips::FMOV_D32_MM:
2452 case Mips::FMOV_D64_MM:
2453 case Mips::FMOV_S_MM:
2454 case Mips::FNEG_D32_MM:
2455 case Mips::FNEG_D64_MM:
2456 case Mips::FNEG_S_MM:
2457 case Mips::FSQRT_D32_MM:
2458 case Mips::FSQRT_D64_MM:
2459 case Mips::FSQRT_S_MM:
2460 case Mips::RECIP_D32_MM:
2461 case Mips::RECIP_D64_MM:
2462 case Mips::RECIP_S_MM:
2463 case Mips::ROUND_W_MM:
2464 case Mips::ROUND_W_S_MM:
2465 case Mips::RSQRT_D32_MM:
2466 case Mips::RSQRT_D64_MM:
2467 case Mips::RSQRT_S_MM:
2468 case Mips::TRUNC_W_MM:
2469 case Mips::TRUNC_W_S_MM: {
2470 // op: fd
2471 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2472 Value |= (op & 0x1f) << 21;
2473 // op: fs
2474 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
2475 Value |= (op & 0x1f) << 16;
2476 break;
2477 }
2478 case Mips::MOVF_D32_MM:
2479 case Mips::MOVF_S_MM:
2480 case Mips::MOVT_D32_MM:
2481 case Mips::MOVT_S_MM: {
2482 // op: fd
2483 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2484 Value |= (op & 0x1f) << 21;
2485 // op: fs
2486 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
2487 Value |= (op & 0x1f) << 16;
2488 // op: fcc
2489 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
2490 Value |= (op & 0x7) << 13;
2491 break;
2492 }
2493 case Mips::LDXC1:
2494 case Mips::LDXC164:
2495 case Mips::LUXC1:
2496 case Mips::LUXC164:
2497 case Mips::LWXC1: {
2498 // op: fd
2499 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2500 Value |= (op & 0x1f) << 6;
2501 // op: base
2502 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
2503 Value |= (op & 0x1f) << 21;
2504 // op: index
2505 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
2506 Value |= (op & 0x1f) << 16;
2507 break;
2508 }
2509 case Mips::MADD_D32:
2510 case Mips::MADD_D64:
2511 case Mips::MADD_S:
2512 case Mips::MSUB_D32:
2513 case Mips::MSUB_D64:
2514 case Mips::MSUB_S:
2515 case Mips::NMADD_D32:
2516 case Mips::NMADD_D64:
2517 case Mips::NMADD_S:
2518 case Mips::NMSUB_D32:
2519 case Mips::NMSUB_D64:
2520 case Mips::NMSUB_S: {
2521 // op: fd
2522 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2523 Value |= (op & 0x1f) << 6;
2524 // op: fr
2525 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
2526 Value |= (op & 0x1f) << 21;
2527 // op: fs
2528 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
2529 Value |= (op & 0x1f) << 11;
2530 // op: ft
2531 op = getMachineOpValue(MI, MO: MI.getOperand(i: 3), Fixups, STI);
2532 Value |= (op & 0x1f) << 16;
2533 break;
2534 }
2535 case Mips::CEIL_L_D64:
2536 case Mips::CEIL_L_S:
2537 case Mips::CEIL_W_D32:
2538 case Mips::CEIL_W_D64:
2539 case Mips::CEIL_W_S:
2540 case Mips::CVT_D32_S:
2541 case Mips::CVT_D32_W:
2542 case Mips::CVT_D64_L:
2543 case Mips::CVT_D64_S:
2544 case Mips::CVT_D64_W:
2545 case Mips::CVT_L_D64:
2546 case Mips::CVT_L_S:
2547 case Mips::CVT_PS_PW64:
2548 case Mips::CVT_PW_PS64:
2549 case Mips::CVT_S_D32:
2550 case Mips::CVT_S_D64:
2551 case Mips::CVT_S_L:
2552 case Mips::CVT_S_PL64:
2553 case Mips::CVT_S_PU64:
2554 case Mips::CVT_S_W:
2555 case Mips::CVT_W_D32:
2556 case Mips::CVT_W_D64:
2557 case Mips::CVT_W_S:
2558 case Mips::FABS_D32:
2559 case Mips::FABS_D64:
2560 case Mips::FABS_S:
2561 case Mips::FLOOR_L_D64:
2562 case Mips::FLOOR_L_S:
2563 case Mips::FLOOR_W_D32:
2564 case Mips::FLOOR_W_D64:
2565 case Mips::FLOOR_W_S:
2566 case Mips::FMOV_D32:
2567 case Mips::FMOV_D64:
2568 case Mips::FMOV_S:
2569 case Mips::FNEG_D32:
2570 case Mips::FNEG_D64:
2571 case Mips::FNEG_S:
2572 case Mips::FSQRT_D32:
2573 case Mips::FSQRT_D64:
2574 case Mips::FSQRT_S:
2575 case Mips::RECIP_D32:
2576 case Mips::RECIP_D64:
2577 case Mips::RECIP_S:
2578 case Mips::ROUND_L_D64:
2579 case Mips::ROUND_L_S:
2580 case Mips::ROUND_W_D32:
2581 case Mips::ROUND_W_D64:
2582 case Mips::ROUND_W_S:
2583 case Mips::RSQRT_D32:
2584 case Mips::RSQRT_D64:
2585 case Mips::RSQRT_S:
2586 case Mips::TRUNC_L_D64:
2587 case Mips::TRUNC_L_S:
2588 case Mips::TRUNC_W_D32:
2589 case Mips::TRUNC_W_D64:
2590 case Mips::TRUNC_W_S: {
2591 // op: fd
2592 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2593 Value |= (op & 0x1f) << 6;
2594 // op: fs
2595 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
2596 Value |= (op & 0x1f) << 11;
2597 break;
2598 }
2599 case Mips::MOVF_D32:
2600 case Mips::MOVF_D64:
2601 case Mips::MOVF_S:
2602 case Mips::MOVT_D32:
2603 case Mips::MOVT_D64:
2604 case Mips::MOVT_S: {
2605 // op: fd
2606 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2607 Value |= (op & 0x1f) << 6;
2608 // op: fs
2609 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
2610 Value |= (op & 0x1f) << 11;
2611 // op: fcc
2612 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
2613 Value |= (op & 0x7) << 18;
2614 break;
2615 }
2616 case Mips::ADDR_PS64:
2617 case Mips::CMP_EQ_D:
2618 case Mips::CMP_EQ_S:
2619 case Mips::CMP_F_D:
2620 case Mips::CMP_F_S:
2621 case Mips::CMP_LE_D:
2622 case Mips::CMP_LE_S:
2623 case Mips::CMP_LT_D:
2624 case Mips::CMP_LT_S:
2625 case Mips::CMP_SAF_D:
2626 case Mips::CMP_SAF_S:
2627 case Mips::CMP_SEQ_D:
2628 case Mips::CMP_SEQ_S:
2629 case Mips::CMP_SLE_D:
2630 case Mips::CMP_SLE_S:
2631 case Mips::CMP_SLT_D:
2632 case Mips::CMP_SLT_S:
2633 case Mips::CMP_SUEQ_D:
2634 case Mips::CMP_SUEQ_S:
2635 case Mips::CMP_SULE_D:
2636 case Mips::CMP_SULE_S:
2637 case Mips::CMP_SULT_D:
2638 case Mips::CMP_SULT_S:
2639 case Mips::CMP_SUN_D:
2640 case Mips::CMP_SUN_S:
2641 case Mips::CMP_UEQ_D:
2642 case Mips::CMP_UEQ_S:
2643 case Mips::CMP_ULE_D:
2644 case Mips::CMP_ULE_S:
2645 case Mips::CMP_ULT_D:
2646 case Mips::CMP_ULT_S:
2647 case Mips::CMP_UN_D:
2648 case Mips::CMP_UN_S:
2649 case Mips::CVT_PS_S64:
2650 case Mips::FADD_D32:
2651 case Mips::FADD_D64:
2652 case Mips::FADD_PS64:
2653 case Mips::FADD_S:
2654 case Mips::FDIV_D32:
2655 case Mips::FDIV_D64:
2656 case Mips::FDIV_S:
2657 case Mips::FMUL_D32:
2658 case Mips::FMUL_D64:
2659 case Mips::FMUL_PS64:
2660 case Mips::FMUL_S:
2661 case Mips::FSUB_D32:
2662 case Mips::FSUB_D64:
2663 case Mips::FSUB_PS64:
2664 case Mips::FSUB_S:
2665 case Mips::MULR_PS64:
2666 case Mips::PLL_PS64:
2667 case Mips::PLU_PS64:
2668 case Mips::PUL_PS64:
2669 case Mips::PUU_PS64: {
2670 // op: fd
2671 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2672 Value |= (op & 0x1f) << 6;
2673 // op: fs
2674 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
2675 Value |= (op & 0x1f) << 11;
2676 // op: ft
2677 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
2678 Value |= (op & 0x1f) << 16;
2679 break;
2680 }
2681 case Mips::MOVN_I64_D64:
2682 case Mips::MOVN_I64_S:
2683 case Mips::MOVN_I_D32:
2684 case Mips::MOVN_I_D64:
2685 case Mips::MOVN_I_S:
2686 case Mips::MOVZ_I64_D64:
2687 case Mips::MOVZ_I64_S:
2688 case Mips::MOVZ_I_D32:
2689 case Mips::MOVZ_I_D64:
2690 case Mips::MOVZ_I_S: {
2691 // op: fd
2692 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2693 Value |= (op & 0x1f) << 6;
2694 // op: fs
2695 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
2696 Value |= (op & 0x1f) << 11;
2697 // op: rt
2698 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
2699 Value |= (op & 0x1f) << 16;
2700 break;
2701 }
2702 case Mips::SUXC1_MM:
2703 case Mips::SWXC1_MM: {
2704 // op: fs
2705 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2706 Value |= (op & 0x1f) << 11;
2707 // op: base
2708 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
2709 Value |= (op & 0x1f) << 16;
2710 // op: index
2711 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
2712 Value |= (op & 0x1f) << 21;
2713 break;
2714 }
2715 case Mips::SDXC1:
2716 case Mips::SDXC164:
2717 case Mips::SUXC1:
2718 case Mips::SUXC164:
2719 case Mips::SWXC1: {
2720 // op: fs
2721 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2722 Value |= (op & 0x1f) << 11;
2723 // op: base
2724 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
2725 Value |= (op & 0x1f) << 21;
2726 // op: index
2727 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
2728 Value |= (op & 0x1f) << 16;
2729 break;
2730 }
2731 case Mips::FCMP_D32:
2732 case Mips::FCMP_D64:
2733 case Mips::FCMP_S32: {
2734 // op: fs
2735 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2736 Value |= (op & 0x1f) << 11;
2737 // op: ft
2738 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
2739 Value |= (op & 0x1f) << 16;
2740 // op: cond
2741 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
2742 Value |= (op & 0xf);
2743 break;
2744 }
2745 case Mips::FCMP_D32_MM:
2746 case Mips::FCMP_S32_MM: {
2747 // op: fs
2748 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2749 Value |= (op & 0x1f) << 16;
2750 // op: ft
2751 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
2752 Value |= (op & 0x1f) << 21;
2753 // op: cond
2754 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
2755 Value |= (op & 0xf) << 6;
2756 break;
2757 }
2758 case Mips::CLASS_D:
2759 case Mips::CLASS_S:
2760 case Mips::RINT_D:
2761 case Mips::RINT_S: {
2762 // op: fs
2763 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
2764 Value |= (op & 0x1f) << 11;
2765 // op: fd
2766 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2767 Value |= (op & 0x1f) << 6;
2768 break;
2769 }
2770 case Mips::C_EQ_D32:
2771 case Mips::C_EQ_D64:
2772 case Mips::C_EQ_S:
2773 case Mips::C_F_D32:
2774 case Mips::C_F_D64:
2775 case Mips::C_F_S:
2776 case Mips::C_LE_D32:
2777 case Mips::C_LE_D64:
2778 case Mips::C_LE_S:
2779 case Mips::C_LT_D32:
2780 case Mips::C_LT_D64:
2781 case Mips::C_LT_S:
2782 case Mips::C_NGE_D32:
2783 case Mips::C_NGE_D64:
2784 case Mips::C_NGE_S:
2785 case Mips::C_NGLE_D32:
2786 case Mips::C_NGLE_D64:
2787 case Mips::C_NGLE_S:
2788 case Mips::C_NGL_D32:
2789 case Mips::C_NGL_D64:
2790 case Mips::C_NGL_S:
2791 case Mips::C_NGT_D32:
2792 case Mips::C_NGT_D64:
2793 case Mips::C_NGT_S:
2794 case Mips::C_OLE_D32:
2795 case Mips::C_OLE_D64:
2796 case Mips::C_OLE_S:
2797 case Mips::C_OLT_D32:
2798 case Mips::C_OLT_D64:
2799 case Mips::C_OLT_S:
2800 case Mips::C_SEQ_D32:
2801 case Mips::C_SEQ_D64:
2802 case Mips::C_SEQ_S:
2803 case Mips::C_SF_D32:
2804 case Mips::C_SF_D64:
2805 case Mips::C_SF_S:
2806 case Mips::C_UEQ_D32:
2807 case Mips::C_UEQ_D64:
2808 case Mips::C_UEQ_S:
2809 case Mips::C_ULE_D32:
2810 case Mips::C_ULE_D64:
2811 case Mips::C_ULE_S:
2812 case Mips::C_ULT_D32:
2813 case Mips::C_ULT_D64:
2814 case Mips::C_ULT_S:
2815 case Mips::C_UN_D32:
2816 case Mips::C_UN_D64:
2817 case Mips::C_UN_S: {
2818 // op: fs
2819 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
2820 Value |= (op & 0x1f) << 11;
2821 // op: ft
2822 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
2823 Value |= (op & 0x1f) << 16;
2824 // op: fcc
2825 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2826 Value |= (op & 0x7) << 8;
2827 break;
2828 }
2829 case Mips::C_EQ_D32_MM:
2830 case Mips::C_EQ_D64_MM:
2831 case Mips::C_EQ_S_MM:
2832 case Mips::C_F_D32_MM:
2833 case Mips::C_F_D64_MM:
2834 case Mips::C_F_S_MM:
2835 case Mips::C_LE_D32_MM:
2836 case Mips::C_LE_D64_MM:
2837 case Mips::C_LE_S_MM:
2838 case Mips::C_LT_D32_MM:
2839 case Mips::C_LT_D64_MM:
2840 case Mips::C_LT_S_MM:
2841 case Mips::C_NGE_D32_MM:
2842 case Mips::C_NGE_D64_MM:
2843 case Mips::C_NGE_S_MM:
2844 case Mips::C_NGLE_D32_MM:
2845 case Mips::C_NGLE_D64_MM:
2846 case Mips::C_NGLE_S_MM:
2847 case Mips::C_NGL_D32_MM:
2848 case Mips::C_NGL_D64_MM:
2849 case Mips::C_NGL_S_MM:
2850 case Mips::C_NGT_D32_MM:
2851 case Mips::C_NGT_D64_MM:
2852 case Mips::C_NGT_S_MM:
2853 case Mips::C_OLE_D32_MM:
2854 case Mips::C_OLE_D64_MM:
2855 case Mips::C_OLE_S_MM:
2856 case Mips::C_OLT_D32_MM:
2857 case Mips::C_OLT_D64_MM:
2858 case Mips::C_OLT_S_MM:
2859 case Mips::C_SEQ_D32_MM:
2860 case Mips::C_SEQ_D64_MM:
2861 case Mips::C_SEQ_S_MM:
2862 case Mips::C_SF_D32_MM:
2863 case Mips::C_SF_D64_MM:
2864 case Mips::C_SF_S_MM:
2865 case Mips::C_UEQ_D32_MM:
2866 case Mips::C_UEQ_D64_MM:
2867 case Mips::C_UEQ_S_MM:
2868 case Mips::C_ULE_D32_MM:
2869 case Mips::C_ULE_D64_MM:
2870 case Mips::C_ULE_S_MM:
2871 case Mips::C_ULT_D32_MM:
2872 case Mips::C_ULT_D64_MM:
2873 case Mips::C_ULT_S_MM:
2874 case Mips::C_UN_D32_MM:
2875 case Mips::C_UN_D64_MM:
2876 case Mips::C_UN_S_MM: {
2877 // op: fs
2878 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
2879 Value |= (op & 0x1f) << 16;
2880 // op: ft
2881 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
2882 Value |= (op & 0x1f) << 21;
2883 // op: fcc
2884 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2885 Value |= (op & 0x7) << 13;
2886 break;
2887 }
2888 case Mips::CLASS_D_MMR6:
2889 case Mips::CLASS_S_MMR6:
2890 case Mips::RINT_D_MMR6:
2891 case Mips::RINT_S_MMR6: {
2892 // op: fs
2893 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
2894 Value |= (op & 0x1f) << 21;
2895 // op: fd
2896 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2897 Value |= (op & 0x1f) << 16;
2898 break;
2899 }
2900 case Mips::BC1EQZ:
2901 case Mips::BC1NEZ: {
2902 // op: ft
2903 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2904 Value |= (op & 0x1f) << 16;
2905 // op: offset
2906 op = getBranchTargetOpValue(MI, OpNo: 1, Fixups, STI);
2907 Value |= (op & 0xffff);
2908 break;
2909 }
2910 case Mips::LDC1_D64_MMR6:
2911 case Mips::SDC1_D64_MMR6: {
2912 // op: ft
2913 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2914 Value |= (op & 0x1f) << 21;
2915 // op: base
2916 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
2917 Value |= (op & 0x1f) << 16;
2918 // op: offset
2919 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
2920 Value |= (op & 0xffff);
2921 break;
2922 }
2923 case Mips::CEIL_L_D_MMR6:
2924 case Mips::CEIL_L_S_MMR6:
2925 case Mips::CEIL_W_D_MMR6:
2926 case Mips::CEIL_W_S_MMR6:
2927 case Mips::CVT_D_L_MMR6:
2928 case Mips::CVT_L_D_MMR6:
2929 case Mips::CVT_L_S_MMR6:
2930 case Mips::CVT_S_L_MMR6:
2931 case Mips::CVT_S_W_MMR6:
2932 case Mips::CVT_W_S_MMR6:
2933 case Mips::FLOOR_L_D_MMR6:
2934 case Mips::FLOOR_L_S_MMR6:
2935 case Mips::FLOOR_W_D_MMR6:
2936 case Mips::FLOOR_W_S_MMR6:
2937 case Mips::FMOV_D_MMR6:
2938 case Mips::FMOV_S_MMR6:
2939 case Mips::FNEG_S_MMR6:
2940 case Mips::ROUND_L_D_MMR6:
2941 case Mips::ROUND_L_S_MMR6:
2942 case Mips::ROUND_W_D_MMR6:
2943 case Mips::ROUND_W_S_MMR6:
2944 case Mips::TRUNC_L_D_MMR6:
2945 case Mips::TRUNC_L_S_MMR6:
2946 case Mips::TRUNC_W_D_MMR6:
2947 case Mips::TRUNC_W_S_MMR6: {
2948 // op: ft
2949 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2950 Value |= (op & 0x1f) << 21;
2951 // op: fs
2952 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
2953 Value |= (op & 0x1f) << 16;
2954 break;
2955 }
2956 case Mips::FADD_S_MMR6:
2957 case Mips::FDIV_S_MMR6:
2958 case Mips::FMUL_S_MMR6:
2959 case Mips::FSUB_S_MMR6: {
2960 // op: ft
2961 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
2962 Value |= (op & 0x1f) << 21;
2963 // op: fs
2964 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
2965 Value |= (op & 0x1f) << 16;
2966 // op: fd
2967 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2968 Value |= (op & 0x1f) << 11;
2969 break;
2970 }
2971 case Mips::MAXA_D:
2972 case Mips::MAXA_S:
2973 case Mips::MAX_D:
2974 case Mips::MAX_S:
2975 case Mips::MINA_D:
2976 case Mips::MINA_S:
2977 case Mips::MIN_D:
2978 case Mips::MIN_S:
2979 case Mips::SELEQZ_D:
2980 case Mips::SELEQZ_S:
2981 case Mips::SELNEZ_D:
2982 case Mips::SELNEZ_S: {
2983 // op: ft
2984 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
2985 Value |= (op & 0x1f) << 16;
2986 // op: fs
2987 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
2988 Value |= (op & 0x1f) << 11;
2989 // op: fd
2990 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
2991 Value |= (op & 0x1f) << 6;
2992 break;
2993 }
2994 case Mips::CMP_AF_D_MMR6:
2995 case Mips::CMP_AF_S_MMR6:
2996 case Mips::CMP_EQ_D_MMR6:
2997 case Mips::CMP_EQ_S_MMR6:
2998 case Mips::CMP_LE_D_MMR6:
2999 case Mips::CMP_LE_S_MMR6:
3000 case Mips::CMP_LT_D_MMR6:
3001 case Mips::CMP_LT_S_MMR6:
3002 case Mips::CMP_SAF_D_MMR6:
3003 case Mips::CMP_SAF_S_MMR6:
3004 case Mips::CMP_SEQ_D_MMR6:
3005 case Mips::CMP_SEQ_S_MMR6:
3006 case Mips::CMP_SLE_D_MMR6:
3007 case Mips::CMP_SLE_S_MMR6:
3008 case Mips::CMP_SLT_D_MMR6:
3009 case Mips::CMP_SLT_S_MMR6:
3010 case Mips::CMP_SUEQ_D_MMR6:
3011 case Mips::CMP_SUEQ_S_MMR6:
3012 case Mips::CMP_SULE_D_MMR6:
3013 case Mips::CMP_SULE_S_MMR6:
3014 case Mips::CMP_SULT_D_MMR6:
3015 case Mips::CMP_SULT_S_MMR6:
3016 case Mips::CMP_SUN_D_MMR6:
3017 case Mips::CMP_SUN_S_MMR6:
3018 case Mips::CMP_UEQ_D_MMR6:
3019 case Mips::CMP_UEQ_S_MMR6:
3020 case Mips::CMP_ULE_D_MMR6:
3021 case Mips::CMP_ULE_S_MMR6:
3022 case Mips::CMP_ULT_D_MMR6:
3023 case Mips::CMP_ULT_S_MMR6:
3024 case Mips::CMP_UN_D_MMR6:
3025 case Mips::CMP_UN_S_MMR6:
3026 case Mips::FADD_D32_MM:
3027 case Mips::FADD_D64_MM:
3028 case Mips::FADD_S_MM:
3029 case Mips::FDIV_D32_MM:
3030 case Mips::FDIV_D64_MM:
3031 case Mips::FDIV_S_MM:
3032 case Mips::FMUL_D32_MM:
3033 case Mips::FMUL_D64_MM:
3034 case Mips::FMUL_S_MM:
3035 case Mips::FSUB_D32_MM:
3036 case Mips::FSUB_D64_MM:
3037 case Mips::FSUB_S_MM:
3038 case Mips::MAXA_D_MMR6:
3039 case Mips::MAXA_S_MMR6:
3040 case Mips::MAX_D_MMR6:
3041 case Mips::MAX_S_MMR6:
3042 case Mips::MINA_D_MMR6:
3043 case Mips::MINA_S_MMR6:
3044 case Mips::MIN_D_MMR6:
3045 case Mips::MIN_S_MMR6:
3046 case Mips::SELEQZ_D_MMR6:
3047 case Mips::SELEQZ_S_MMR6:
3048 case Mips::SELNEZ_D_MMR6:
3049 case Mips::SELNEZ_S_MMR6: {
3050 // op: ft
3051 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3052 Value |= (op & 0x1f) << 21;
3053 // op: fs
3054 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3055 Value |= (op & 0x1f) << 16;
3056 // op: fd
3057 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3058 Value |= (op & 0x1f) << 11;
3059 break;
3060 }
3061 case Mips::MADDF_D:
3062 case Mips::MADDF_S:
3063 case Mips::MSUBF_D:
3064 case Mips::MSUBF_S:
3065 case Mips::SEL_D:
3066 case Mips::SEL_S: {
3067 // op: ft
3068 op = getMachineOpValue(MI, MO: MI.getOperand(i: 3), Fixups, STI);
3069 Value |= (op & 0x1f) << 16;
3070 // op: fs
3071 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3072 Value |= (op & 0x1f) << 11;
3073 // op: fd
3074 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3075 Value |= (op & 0x1f) << 6;
3076 break;
3077 }
3078 case Mips::MADDF_D_MMR6:
3079 case Mips::MADDF_S_MMR6:
3080 case Mips::MSUBF_D_MMR6:
3081 case Mips::MSUBF_S_MMR6:
3082 case Mips::SEL_D_MMR6:
3083 case Mips::SEL_S_MMR6: {
3084 // op: ft
3085 op = getMachineOpValue(MI, MO: MI.getOperand(i: 3), Fixups, STI);
3086 Value |= (op & 0x1f) << 21;
3087 // op: fs
3088 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3089 Value |= (op & 0x1f) << 16;
3090 // op: fd
3091 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3092 Value |= (op & 0x1f) << 11;
3093 break;
3094 }
3095 case Mips::MADD_D32_MM:
3096 case Mips::MADD_S_MM:
3097 case Mips::MSUB_D32_MM:
3098 case Mips::MSUB_S_MM:
3099 case Mips::NMADD_D32_MM:
3100 case Mips::NMADD_S_MM:
3101 case Mips::NMSUB_D32_MM:
3102 case Mips::NMSUB_S_MM: {
3103 // op: ft
3104 op = getMachineOpValue(MI, MO: MI.getOperand(i: 3), Fixups, STI);
3105 Value |= (op & 0x1f) << 21;
3106 // op: fs
3107 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3108 Value |= (op & 0x1f) << 16;
3109 // op: fd
3110 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3111 Value |= (op & 0x1f) << 11;
3112 // op: fr
3113 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3114 Value |= (op & 0x1f) << 6;
3115 break;
3116 }
3117 case Mips::CACHE_R6:
3118 case Mips::PREF_R6: {
3119 // op: hint
3120 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3121 Value |= (op & 0x1f) << 16;
3122 // op: base
3123 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3124 Value |= (op & 0x1f) << 21;
3125 // op: offset
3126 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3127 Value |= (op & 0x1ff) << 7;
3128 break;
3129 }
3130 case Mips::CACHE:
3131 case Mips::PREF: {
3132 // op: hint
3133 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3134 Value |= (op & 0x1f) << 16;
3135 // op: base
3136 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3137 Value |= (op & 0x1f) << 21;
3138 // op: offset
3139 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3140 Value |= (op & 0xffff);
3141 break;
3142 }
3143 case Mips::CACHEE_MM:
3144 case Mips::PREFE_MM: {
3145 // op: hint
3146 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3147 Value |= (op & 0x1f) << 21;
3148 // op: base
3149 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3150 Value |= (op & 0x1f) << 16;
3151 // op: offset
3152 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3153 Value |= (op & 0x1ff);
3154 break;
3155 }
3156 case Mips::CACHE_MM:
3157 case Mips::PREF_MM: {
3158 // op: hint
3159 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3160 Value |= (op & 0x1f) << 21;
3161 // op: base
3162 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3163 Value |= (op & 0x1f) << 16;
3164 // op: offset
3165 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3166 Value |= (op & 0xfff);
3167 break;
3168 }
3169 case Mips::ADDVI_B:
3170 case Mips::ADDVI_D:
3171 case Mips::ADDVI_H:
3172 case Mips::ADDVI_W:
3173 case Mips::CEQI_B:
3174 case Mips::CEQI_D:
3175 case Mips::CEQI_H:
3176 case Mips::CEQI_W:
3177 case Mips::CLEI_S_B:
3178 case Mips::CLEI_S_D:
3179 case Mips::CLEI_S_H:
3180 case Mips::CLEI_S_W:
3181 case Mips::CLEI_U_B:
3182 case Mips::CLEI_U_D:
3183 case Mips::CLEI_U_H:
3184 case Mips::CLEI_U_W:
3185 case Mips::CLTI_S_B:
3186 case Mips::CLTI_S_D:
3187 case Mips::CLTI_S_H:
3188 case Mips::CLTI_S_W:
3189 case Mips::CLTI_U_B:
3190 case Mips::CLTI_U_D:
3191 case Mips::CLTI_U_H:
3192 case Mips::CLTI_U_W:
3193 case Mips::MAXI_S_B:
3194 case Mips::MAXI_S_D:
3195 case Mips::MAXI_S_H:
3196 case Mips::MAXI_S_W:
3197 case Mips::MAXI_U_B:
3198 case Mips::MAXI_U_D:
3199 case Mips::MAXI_U_H:
3200 case Mips::MAXI_U_W:
3201 case Mips::MINI_S_B:
3202 case Mips::MINI_S_D:
3203 case Mips::MINI_S_H:
3204 case Mips::MINI_S_W:
3205 case Mips::MINI_U_B:
3206 case Mips::MINI_U_D:
3207 case Mips::MINI_U_H:
3208 case Mips::MINI_U_W:
3209 case Mips::SUBVI_B:
3210 case Mips::SUBVI_D:
3211 case Mips::SUBVI_H:
3212 case Mips::SUBVI_W: {
3213 // op: imm
3214 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3215 Value |= (op & 0x1f) << 16;
3216 // op: ws
3217 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3218 Value |= (op & 0x1f) << 11;
3219 // op: wd
3220 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3221 Value |= (op & 0x1f) << 6;
3222 break;
3223 }
3224 case Mips::ADDIUSP_MM: {
3225 // op: imm
3226 op = getSImm9AddiuspValue(MI, OpNo: 0, Fixups, STI);
3227 Value |= (op & 0x1ff) << 1;
3228 break;
3229 }
3230 case Mips::JRCADDIUSP_MMR6: {
3231 // op: imm
3232 op = getUImm5Lsl2Encoding(MI, OpNo: 0, Fixups, STI);
3233 Value |= (op & 0x1f) << 5;
3234 break;
3235 }
3236 case Mips::JRADDIUSP: {
3237 // op: imm
3238 op = getUImm5Lsl2Encoding(MI, OpNo: 0, Fixups, STI);
3239 Value |= (op & 0x1f);
3240 break;
3241 }
3242 case Mips::Bimm16: {
3243 // op: imm11
3244 op = getBranchTargetOpValue(MI, OpNo: 0, Fixups, STI);
3245 Value |= (op & 0x7ff);
3246 break;
3247 }
3248 case Mips::AddiuRxRyOffMemX16: {
3249 // op: imm15
3250 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3251 Value |= (op & 0x7f0) << 16;
3252 Value |= (op & 0x7800) << 5;
3253 Value |= (op & 0xf);
3254 // op: rx
3255 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3256 Value |= (op & 0x7) << 8;
3257 // op: ry
3258 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3259 Value |= (op & 0x7) << 5;
3260 break;
3261 }
3262 case Mips::BimmX16: {
3263 // op: imm16
3264 op = getBranchTargetOpValue(MI, OpNo: 0, Fixups, STI);
3265 Value |= (op & 0x7e0) << 16;
3266 Value |= (op & 0xf800) << 5;
3267 Value |= (op & 0x1f);
3268 break;
3269 }
3270 case Mips::BeqzRxImmX16:
3271 case Mips::BnezRxImmX16: {
3272 // op: imm16
3273 op = getBranchTargetOpValue(MI, OpNo: 1, Fixups, STI);
3274 Value |= (op & 0x7e0) << 16;
3275 Value |= (op & 0xf800) << 5;
3276 Value |= (op & 0x1f);
3277 // op: rx
3278 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3279 Value |= (op & 0x7) << 8;
3280 break;
3281 }
3282 case Mips::AddiuSpImmX16:
3283 case Mips::BteqzX16:
3284 case Mips::BtnezX16: {
3285 // op: imm16
3286 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3287 Value |= (op & 0x7e0) << 16;
3288 Value |= (op & 0xf800) << 5;
3289 Value |= (op & 0x1f);
3290 break;
3291 }
3292 case Mips::AddiuRxImmX16:
3293 case Mips::AddiuRxPcImmX16:
3294 case Mips::CmpiRxImmX16:
3295 case Mips::LiRxImmAlignX16:
3296 case Mips::LiRxImmX16:
3297 case Mips::LwRxPcTcpX16:
3298 case Mips::SltiRxImmX16:
3299 case Mips::SltiuRxImmX16: {
3300 // op: imm16
3301 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3302 Value |= (op & 0x7e0) << 16;
3303 Value |= (op & 0xf800) << 5;
3304 Value |= (op & 0x1f);
3305 // op: rx
3306 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3307 Value |= (op & 0x7) << 8;
3308 break;
3309 }
3310 case Mips::AddiuRxRxImmX16: {
3311 // op: imm16
3312 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3313 Value |= (op & 0x7e0) << 16;
3314 Value |= (op & 0xf800) << 5;
3315 Value |= (op & 0x1f);
3316 // op: rx
3317 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3318 Value |= (op & 0x7) << 8;
3319 break;
3320 }
3321 case Mips::LbRxRyOffMemX16:
3322 case Mips::LbuRxRyOffMemX16:
3323 case Mips::LhRxRyOffMemX16:
3324 case Mips::LhuRxRyOffMemX16:
3325 case Mips::LwRxRyOffMemX16:
3326 case Mips::LwRxSpImmX16:
3327 case Mips::SbRxRyOffMemX16:
3328 case Mips::ShRxRyOffMemX16:
3329 case Mips::SwRxRyOffMemX16:
3330 case Mips::SwRxSpImmX16: {
3331 // op: imm16
3332 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3333 Value |= (op & 0x7e0) << 16;
3334 Value |= (op & 0xf800) << 5;
3335 Value |= (op & 0x1f);
3336 // op: rx
3337 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3338 Value |= (op & 0x7) << 8;
3339 // op: ry
3340 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3341 Value |= (op & 0x7) << 5;
3342 break;
3343 }
3344 case Mips::Jal16:
3345 case Mips::JalB16: {
3346 // op: imm26
3347 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3348 Value |= (op & 0x1f0000) << 5;
3349 Value |= (op & 0x3e00000) >> 5;
3350 Value |= (op & 0xffff);
3351 break;
3352 }
3353 case Mips::AddiuSpImm16:
3354 case Mips::Bteqz16:
3355 case Mips::Btnez16: {
3356 // op: imm8
3357 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3358 Value |= (op & 0xff);
3359 break;
3360 }
3361 case Mips::PREFX_MM: {
3362 // op: index
3363 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3364 Value |= (op & 0x1f) << 21;
3365 // op: base
3366 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3367 Value |= (op & 0x1f) << 16;
3368 // op: hint
3369 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3370 Value |= (op & 0x1f) << 11;
3371 break;
3372 }
3373 case Mips::LBUX_MM:
3374 case Mips::LHX_MM:
3375 case Mips::LWX_MM: {
3376 // op: index
3377 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3378 Value |= (op & 0x1f) << 21;
3379 // op: base
3380 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3381 Value |= (op & 0x1f) << 16;
3382 // op: rd
3383 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3384 Value |= (op & 0x1f) << 11;
3385 break;
3386 }
3387 case Mips::COPY_S_D: {
3388 // op: n
3389 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3390 Value |= (op & 0x1) << 16;
3391 // op: ws
3392 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3393 Value |= (op & 0x1f) << 11;
3394 // op: rd
3395 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3396 Value |= (op & 0x1f) << 6;
3397 break;
3398 }
3399 case Mips::SPLATI_D: {
3400 // op: n
3401 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3402 Value |= (op & 0x1) << 16;
3403 // op: ws
3404 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3405 Value |= (op & 0x1f) << 11;
3406 // op: wd
3407 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3408 Value |= (op & 0x1f) << 6;
3409 break;
3410 }
3411 case Mips::INSVE_D: {
3412 // op: n
3413 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3414 Value |= (op & 0x1) << 16;
3415 // op: ws
3416 op = getMachineOpValue(MI, MO: MI.getOperand(i: 3), Fixups, STI);
3417 Value |= (op & 0x1f) << 11;
3418 // op: wd
3419 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3420 Value |= (op & 0x1f) << 6;
3421 break;
3422 }
3423 case Mips::COPY_S_W:
3424 case Mips::COPY_U_W: {
3425 // op: n
3426 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3427 Value |= (op & 0x3) << 16;
3428 // op: ws
3429 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3430 Value |= (op & 0x1f) << 11;
3431 // op: rd
3432 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3433 Value |= (op & 0x1f) << 6;
3434 break;
3435 }
3436 case Mips::SPLATI_W: {
3437 // op: n
3438 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3439 Value |= (op & 0x3) << 16;
3440 // op: ws
3441 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3442 Value |= (op & 0x1f) << 11;
3443 // op: wd
3444 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3445 Value |= (op & 0x1f) << 6;
3446 break;
3447 }
3448 case Mips::INSVE_W: {
3449 // op: n
3450 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3451 Value |= (op & 0x3) << 16;
3452 // op: ws
3453 op = getMachineOpValue(MI, MO: MI.getOperand(i: 3), Fixups, STI);
3454 Value |= (op & 0x1f) << 11;
3455 // op: wd
3456 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3457 Value |= (op & 0x1f) << 6;
3458 break;
3459 }
3460 case Mips::COPY_S_H:
3461 case Mips::COPY_U_H: {
3462 // op: n
3463 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3464 Value |= (op & 0x7) << 16;
3465 // op: ws
3466 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3467 Value |= (op & 0x1f) << 11;
3468 // op: rd
3469 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3470 Value |= (op & 0x1f) << 6;
3471 break;
3472 }
3473 case Mips::SPLATI_H: {
3474 // op: n
3475 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3476 Value |= (op & 0x7) << 16;
3477 // op: ws
3478 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3479 Value |= (op & 0x1f) << 11;
3480 // op: wd
3481 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3482 Value |= (op & 0x1f) << 6;
3483 break;
3484 }
3485 case Mips::INSVE_H: {
3486 // op: n
3487 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3488 Value |= (op & 0x7) << 16;
3489 // op: ws
3490 op = getMachineOpValue(MI, MO: MI.getOperand(i: 3), Fixups, STI);
3491 Value |= (op & 0x1f) << 11;
3492 // op: wd
3493 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3494 Value |= (op & 0x1f) << 6;
3495 break;
3496 }
3497 case Mips::COPY_S_B:
3498 case Mips::COPY_U_B: {
3499 // op: n
3500 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3501 Value |= (op & 0xf) << 16;
3502 // op: ws
3503 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3504 Value |= (op & 0x1f) << 11;
3505 // op: rd
3506 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3507 Value |= (op & 0x1f) << 6;
3508 break;
3509 }
3510 case Mips::SPLATI_B: {
3511 // op: n
3512 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3513 Value |= (op & 0xf) << 16;
3514 // op: ws
3515 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3516 Value |= (op & 0x1f) << 11;
3517 // op: wd
3518 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3519 Value |= (op & 0x1f) << 6;
3520 break;
3521 }
3522 case Mips::INSVE_B: {
3523 // op: n
3524 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3525 Value |= (op & 0xf) << 16;
3526 // op: ws
3527 op = getMachineOpValue(MI, MO: MI.getOperand(i: 3), Fixups, STI);
3528 Value |= (op & 0x1f) << 11;
3529 // op: wd
3530 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3531 Value |= (op & 0x1f) << 6;
3532 break;
3533 }
3534 case Mips::INSERT_D: {
3535 // op: n
3536 op = getMachineOpValue(MI, MO: MI.getOperand(i: 3), Fixups, STI);
3537 Value |= (op & 0x1) << 16;
3538 // op: rs
3539 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3540 Value |= (op & 0x1f) << 11;
3541 // op: wd
3542 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3543 Value |= (op & 0x1f) << 6;
3544 break;
3545 }
3546 case Mips::SLDI_D: {
3547 // op: n
3548 op = getMachineOpValue(MI, MO: MI.getOperand(i: 3), Fixups, STI);
3549 Value |= (op & 0x1) << 16;
3550 // op: ws
3551 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3552 Value |= (op & 0x1f) << 11;
3553 // op: wd
3554 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3555 Value |= (op & 0x1f) << 6;
3556 break;
3557 }
3558 case Mips::INSERT_W: {
3559 // op: n
3560 op = getMachineOpValue(MI, MO: MI.getOperand(i: 3), Fixups, STI);
3561 Value |= (op & 0x3) << 16;
3562 // op: rs
3563 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3564 Value |= (op & 0x1f) << 11;
3565 // op: wd
3566 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3567 Value |= (op & 0x1f) << 6;
3568 break;
3569 }
3570 case Mips::SLDI_W: {
3571 // op: n
3572 op = getMachineOpValue(MI, MO: MI.getOperand(i: 3), Fixups, STI);
3573 Value |= (op & 0x3) << 16;
3574 // op: ws
3575 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3576 Value |= (op & 0x1f) << 11;
3577 // op: wd
3578 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3579 Value |= (op & 0x1f) << 6;
3580 break;
3581 }
3582 case Mips::INSERT_H: {
3583 // op: n
3584 op = getMachineOpValue(MI, MO: MI.getOperand(i: 3), Fixups, STI);
3585 Value |= (op & 0x7) << 16;
3586 // op: rs
3587 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3588 Value |= (op & 0x1f) << 11;
3589 // op: wd
3590 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3591 Value |= (op & 0x1f) << 6;
3592 break;
3593 }
3594 case Mips::SLDI_H: {
3595 // op: n
3596 op = getMachineOpValue(MI, MO: MI.getOperand(i: 3), Fixups, STI);
3597 Value |= (op & 0x7) << 16;
3598 // op: ws
3599 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3600 Value |= (op & 0x1f) << 11;
3601 // op: wd
3602 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3603 Value |= (op & 0x1f) << 6;
3604 break;
3605 }
3606 case Mips::INSERT_B: {
3607 // op: n
3608 op = getMachineOpValue(MI, MO: MI.getOperand(i: 3), Fixups, STI);
3609 Value |= (op & 0xf) << 16;
3610 // op: rs
3611 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3612 Value |= (op & 0x1f) << 11;
3613 // op: wd
3614 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3615 Value |= (op & 0x1f) << 6;
3616 break;
3617 }
3618 case Mips::SLDI_B: {
3619 // op: n
3620 op = getMachineOpValue(MI, MO: MI.getOperand(i: 3), Fixups, STI);
3621 Value |= (op & 0xf) << 16;
3622 // op: ws
3623 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3624 Value |= (op & 0x1f) << 11;
3625 // op: wd
3626 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3627 Value |= (op & 0x1f) << 6;
3628 break;
3629 }
3630 case Mips::BALC:
3631 case Mips::BC: {
3632 // op: offset
3633 op = getBranchTarget26OpValue(MI, OpNo: 0, Fixups, STI);
3634 Value |= (op & 0x3ffffff);
3635 break;
3636 }
3637 case Mips::BALC_MMR6:
3638 case Mips::BC_MMR6: {
3639 // op: offset
3640 op = getBranchTarget26OpValueMM(MI, OpNo: 0, Fixups, STI);
3641 Value |= (op & 0x3ffffff);
3642 break;
3643 }
3644 case Mips::BAL:
3645 case Mips::BPOSGE32: {
3646 // op: offset
3647 op = getBranchTargetOpValue(MI, OpNo: 0, Fixups, STI);
3648 Value |= (op & 0xffff);
3649 break;
3650 }
3651 case Mips::BNZ_B:
3652 case Mips::BNZ_D:
3653 case Mips::BNZ_H:
3654 case Mips::BNZ_V:
3655 case Mips::BNZ_W:
3656 case Mips::BZ_B:
3657 case Mips::BZ_D:
3658 case Mips::BZ_H:
3659 case Mips::BZ_V:
3660 case Mips::BZ_W: {
3661 // op: offset
3662 op = getBranchTargetOpValue(MI, OpNo: 1, Fixups, STI);
3663 Value |= (op & 0xffff);
3664 // op: wt
3665 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3666 Value |= (op & 0x1f) << 16;
3667 break;
3668 }
3669 case Mips::BPOSGE32C_MMR3: {
3670 // op: offset
3671 op = getBranchTargetOpValue1SImm16(MI, OpNo: 0, Fixups, STI);
3672 Value |= (op & 0xffff);
3673 break;
3674 }
3675 case Mips::BPOSGE32_MM: {
3676 // op: offset
3677 op = getBranchTargetOpValueMM(MI, OpNo: 0, Fixups, STI);
3678 Value |= (op & 0xffff);
3679 break;
3680 }
3681 case Mips::B16_MM:
3682 case Mips::BC16_MMR6: {
3683 // op: offset
3684 op = getBranchTargetOpValueMMPC10(MI, OpNo: 0, Fixups, STI);
3685 Value |= (op & 0x3ff);
3686 break;
3687 }
3688 case Mips::CACHE_MMR6:
3689 case Mips::PREF_MMR6: {
3690 // op: offset
3691 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3692 Value |= (op & 0xfff);
3693 // op: base
3694 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3695 Value |= (op & 0x1f) << 16;
3696 // op: hint
3697 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3698 Value |= (op & 0x1f) << 21;
3699 break;
3700 }
3701 case Mips::LD_B:
3702 case Mips::ST_B: {
3703 // op: offset
3704 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3705 Value |= (op & 0x3ff) << 16;
3706 // op: base
3707 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3708 Value |= (op & 0x1f) << 11;
3709 // op: wd
3710 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3711 Value |= (op & 0x1f) << 6;
3712 break;
3713 }
3714 case Mips::LL_MM:
3715 case Mips::LWL_MM:
3716 case Mips::LWR_MM:
3717 case Mips::LWU_MM:
3718 case Mips::SWL_MM:
3719 case Mips::SWR_MM: {
3720 // op: offset
3721 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3722 Value |= (op & 0xfff);
3723 // op: base
3724 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3725 Value |= (op & 0x1f) << 16;
3726 // op: rt
3727 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3728 Value |= (op & 0x1f) << 21;
3729 break;
3730 }
3731 case Mips::SW_MMR6: {
3732 // op: offset
3733 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3734 Value |= (op & 0xffff);
3735 // op: base
3736 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3737 Value |= (op & 0x1f) << 16;
3738 // op: rt
3739 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3740 Value |= (op & 0x1f) << 21;
3741 break;
3742 }
3743 case Mips::LWP_MM:
3744 case Mips::SWP_MM: {
3745 // op: offset
3746 op = getMachineOpValue(MI, MO: MI.getOperand(i: 3), Fixups, STI);
3747 Value |= (op & 0xfff);
3748 // op: base
3749 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3750 Value |= (op & 0x1f) << 16;
3751 // op: rt
3752 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3753 Value |= (op & 0x1f) << 21;
3754 break;
3755 }
3756 case Mips::SC_MM: {
3757 // op: offset
3758 op = getMachineOpValue(MI, MO: MI.getOperand(i: 3), Fixups, STI);
3759 Value |= (op & 0xfff);
3760 // op: base
3761 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3762 Value |= (op & 0x1f) << 16;
3763 // op: rt
3764 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3765 Value |= (op & 0x1f) << 21;
3766 break;
3767 }
3768 case Mips::LWM32_MM:
3769 case Mips::SWM32_MM: {
3770 // op: offset
3771 op = getOperandFromEndValue<1, 0>(MI, OpNo: 2, Fixups, STI);
3772 Value |= (op & 0xfff);
3773 // op: base
3774 op = getOperandFromEndValue<2>(MI, OpNo: 1, Fixups, STI);
3775 Value |= (op & 0x1f) << 16;
3776 // op: rt
3777 op = getRegisterListOpValue(MI, OpNo: 0, Fixups, STI);
3778 Value |= (op & 0x1f) << 21;
3779 break;
3780 }
3781 case Mips::LD_H:
3782 case Mips::ST_H: {
3783 // op: offset
3784 op = getScaledImmOpValue<1>(MI, OpNo: 2, Fixups, STI);
3785 Value |= (op & 0x3ff) << 16;
3786 // op: base
3787 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3788 Value |= (op & 0x1f) << 11;
3789 // op: wd
3790 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3791 Value |= (op & 0x1f) << 6;
3792 break;
3793 }
3794 case Mips::LD_W:
3795 case Mips::ST_W: {
3796 // op: offset
3797 op = getScaledImmOpValue<2>(MI, OpNo: 2, Fixups, STI);
3798 Value |= (op & 0x3ff) << 16;
3799 // op: base
3800 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3801 Value |= (op & 0x1f) << 11;
3802 // op: wd
3803 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3804 Value |= (op & 0x1f) << 6;
3805 break;
3806 }
3807 case Mips::LD_D:
3808 case Mips::ST_D: {
3809 // op: offset
3810 op = getScaledImmOpValue<3>(MI, OpNo: 2, Fixups, STI);
3811 Value |= (op & 0x3ff) << 16;
3812 // op: base
3813 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3814 Value |= (op & 0x1f) << 11;
3815 // op: wd
3816 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3817 Value |= (op & 0x1f) << 6;
3818 break;
3819 }
3820 case Mips::Move32R16: {
3821 // op: r32
3822 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3823 Value |= (op & 0x7) << 5;
3824 Value |= (op & 0x18);
3825 // op: rz
3826 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3827 Value |= (op & 0x7);
3828 break;
3829 }
3830 case Mips::MFHI:
3831 case Mips::MFHI64:
3832 case Mips::MFLO:
3833 case Mips::MFLO64: {
3834 // op: rd
3835 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3836 Value |= (op & 0x1f) << 11;
3837 break;
3838 }
3839 case Mips::MFHI_DSP:
3840 case Mips::MFLO_DSP: {
3841 // op: rd
3842 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3843 Value |= (op & 0x1f) << 11;
3844 // op: ac
3845 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3846 Value |= (op & 0x3) << 21;
3847 break;
3848 }
3849 case Mips::LWXS_MM: {
3850 // op: rd
3851 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3852 Value |= (op & 0x1f) << 11;
3853 // op: base
3854 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3855 Value |= (op & 0x1f) << 16;
3856 // op: index
3857 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3858 Value |= (op & 0x1f) << 21;
3859 break;
3860 }
3861 case Mips::LBUX:
3862 case Mips::LHX:
3863 case Mips::LWX: {
3864 // op: rd
3865 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3866 Value |= (op & 0x1f) << 11;
3867 // op: base
3868 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3869 Value |= (op & 0x1f) << 21;
3870 // op: index
3871 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3872 Value |= (op & 0x1f) << 16;
3873 break;
3874 }
3875 case Mips::REPL_PH:
3876 case Mips::REPL_PH_MM:
3877 case Mips::REPL_QB: {
3878 // op: rd
3879 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3880 Value |= (op & 0x1f) << 11;
3881 // op: imm
3882 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3883 Value |= (op & 0x3ff) << 16;
3884 break;
3885 }
3886 case Mips::RDDSP: {
3887 // op: rd
3888 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3889 Value |= (op & 0x1f) << 11;
3890 // op: mask
3891 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3892 Value |= (op & 0x3ff) << 16;
3893 break;
3894 }
3895 case Mips::ADDQH_PH_MMR2:
3896 case Mips::ADDQH_R_PH_MMR2:
3897 case Mips::ADDQH_R_W_MMR2:
3898 case Mips::ADDQH_W_MMR2:
3899 case Mips::ADDQ_PH_MM:
3900 case Mips::ADDQ_S_PH_MM:
3901 case Mips::ADDQ_S_W_MM:
3902 case Mips::ADDSC_MM:
3903 case Mips::ADDUH_QB_MMR2:
3904 case Mips::ADDUH_R_QB_MMR2:
3905 case Mips::ADDU_PH_MMR2:
3906 case Mips::ADDU_QB_MM:
3907 case Mips::ADDU_S_PH_MMR2:
3908 case Mips::ADDU_S_QB_MM:
3909 case Mips::ADDWC_MM:
3910 case Mips::CMPGDU_EQ_QB_MMR2:
3911 case Mips::CMPGDU_LE_QB_MMR2:
3912 case Mips::CMPGDU_LT_QB_MMR2:
3913 case Mips::MODSUB_MM:
3914 case Mips::MULEQ_S_W_PHL_MM:
3915 case Mips::MULEQ_S_W_PHR_MM:
3916 case Mips::MULEU_S_PH_QBL_MM:
3917 case Mips::MULEU_S_PH_QBR_MM:
3918 case Mips::MULQ_RS_PH_MM:
3919 case Mips::MULQ_RS_W_MMR2:
3920 case Mips::MULQ_S_PH_MMR2:
3921 case Mips::MULQ_S_W_MMR2:
3922 case Mips::MUL_PH_MMR2:
3923 case Mips::MUL_S_PH_MMR2:
3924 case Mips::PACKRL_PH_MM:
3925 case Mips::PICK_PH_MM:
3926 case Mips::PICK_QB_MM:
3927 case Mips::PRECRQU_S_QB_PH_MM:
3928 case Mips::PRECRQ_PH_W_MM:
3929 case Mips::PRECRQ_QB_PH_MM:
3930 case Mips::PRECRQ_RS_PH_W_MM:
3931 case Mips::PRECR_QB_PH_MMR2:
3932 case Mips::SELEQZ_MMR6:
3933 case Mips::SELNEZ_MMR6:
3934 case Mips::SUBQH_PH_MMR2:
3935 case Mips::SUBQH_R_PH_MMR2:
3936 case Mips::SUBQH_R_W_MMR2:
3937 case Mips::SUBQH_W_MMR2:
3938 case Mips::SUBQ_PH_MM:
3939 case Mips::SUBQ_S_PH_MM:
3940 case Mips::SUBQ_S_W_MM:
3941 case Mips::SUBUH_QB_MMR2:
3942 case Mips::SUBUH_R_QB_MMR2:
3943 case Mips::SUBU_PH_MMR2:
3944 case Mips::SUBU_QB_MM:
3945 case Mips::SUBU_S_PH_MMR2:
3946 case Mips::SUBU_S_QB_MM: {
3947 // op: rd
3948 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3949 Value |= (op & 0x1f) << 11;
3950 // op: rs
3951 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3952 Value |= (op & 0x1f) << 16;
3953 // op: rt
3954 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3955 Value |= (op & 0x1f) << 21;
3956 break;
3957 }
3958 case Mips::LSA_MMR6: {
3959 // op: rd
3960 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3961 Value |= (op & 0x1f) << 11;
3962 // op: rs
3963 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3964 Value |= (op & 0x1f) << 16;
3965 // op: rt
3966 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
3967 Value |= (op & 0x1f) << 21;
3968 // op: imm2
3969 op = getUImmWithOffsetEncoding<2, 1>(MI, OpNo: 3, Fixups, STI);
3970 Value |= (op & 0x3) << 9;
3971 break;
3972 }
3973 case Mips::CLO_R6:
3974 case Mips::CLZ_R6:
3975 case Mips::DCLO_R6:
3976 case Mips::DCLZ_R6:
3977 case Mips::DPOP:
3978 case Mips::JALR:
3979 case Mips::JALR64:
3980 case Mips::JALR_HB:
3981 case Mips::JALR_HB64:
3982 case Mips::POP:
3983 case Mips::RADDU_W_QB: {
3984 // op: rd
3985 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3986 Value |= (op & 0x1f) << 11;
3987 // op: rs
3988 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
3989 Value |= (op & 0x1f) << 21;
3990 break;
3991 }
3992 case Mips::MOVF_I:
3993 case Mips::MOVF_I64:
3994 case Mips::MOVT_I:
3995 case Mips::MOVT_I64: {
3996 // op: rd
3997 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
3998 Value |= (op & 0x1f) << 11;
3999 // op: rs
4000 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4001 Value |= (op & 0x1f) << 21;
4002 // op: fcc
4003 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
4004 Value |= (op & 0x7) << 18;
4005 break;
4006 }
4007 case Mips::ADD:
4008 case Mips::ADDQH_PH:
4009 case Mips::ADDQH_R_PH:
4010 case Mips::ADDQH_R_W:
4011 case Mips::ADDQH_W:
4012 case Mips::ADDQ_PH:
4013 case Mips::ADDQ_S_PH:
4014 case Mips::ADDQ_S_W:
4015 case Mips::ADDSC:
4016 case Mips::ADDUH_QB:
4017 case Mips::ADDUH_R_QB:
4018 case Mips::ADDU_PH:
4019 case Mips::ADDU_QB:
4020 case Mips::ADDU_S_PH:
4021 case Mips::ADDU_S_QB:
4022 case Mips::ADDWC:
4023 case Mips::ADDu:
4024 case Mips::AND:
4025 case Mips::AND64:
4026 case Mips::BADDu:
4027 case Mips::DADD:
4028 case Mips::DADDu:
4029 case Mips::DDIV:
4030 case Mips::DDIVU:
4031 case Mips::DIV:
4032 case Mips::DIVU:
4033 case Mips::DMOD:
4034 case Mips::DMODU:
4035 case Mips::DMUH:
4036 case Mips::DMUHU:
4037 case Mips::DMUL:
4038 case Mips::DMULU:
4039 case Mips::DMUL_R6:
4040 case Mips::DSUB:
4041 case Mips::DSUBu:
4042 case Mips::MOD:
4043 case Mips::MODSUB:
4044 case Mips::MODU:
4045 case Mips::MOVN_I64_I:
4046 case Mips::MOVN_I64_I64:
4047 case Mips::MOVN_I_I:
4048 case Mips::MOVN_I_I64:
4049 case Mips::MOVZ_I64_I:
4050 case Mips::MOVZ_I64_I64:
4051 case Mips::MOVZ_I_I:
4052 case Mips::MOVZ_I_I64:
4053 case Mips::MUH:
4054 case Mips::MUHU:
4055 case Mips::MUL:
4056 case Mips::MULEQ_S_W_PHL:
4057 case Mips::MULEQ_S_W_PHR:
4058 case Mips::MULEU_S_PH_QBL:
4059 case Mips::MULEU_S_PH_QBR:
4060 case Mips::MULQ_RS_PH:
4061 case Mips::MULQ_RS_W:
4062 case Mips::MULQ_S_PH:
4063 case Mips::MULQ_S_W:
4064 case Mips::MULU:
4065 case Mips::MUL_PH:
4066 case Mips::MUL_R6:
4067 case Mips::MUL_S_PH:
4068 case Mips::NOR:
4069 case Mips::NOR64:
4070 case Mips::OR:
4071 case Mips::OR64:
4072 case Mips::SELEQZ:
4073 case Mips::SELEQZ64:
4074 case Mips::SELNEZ:
4075 case Mips::SELNEZ64:
4076 case Mips::SEQ:
4077 case Mips::SLT:
4078 case Mips::SLT64:
4079 case Mips::SLTu:
4080 case Mips::SLTu64:
4081 case Mips::SNE:
4082 case Mips::SUB:
4083 case Mips::SUBQH_PH:
4084 case Mips::SUBQH_R_PH:
4085 case Mips::SUBQH_R_W:
4086 case Mips::SUBQH_W:
4087 case Mips::SUBQ_PH:
4088 case Mips::SUBQ_S_PH:
4089 case Mips::SUBQ_S_W:
4090 case Mips::SUBUH_QB:
4091 case Mips::SUBUH_R_QB:
4092 case Mips::SUBU_PH:
4093 case Mips::SUBU_QB:
4094 case Mips::SUBU_S_PH:
4095 case Mips::SUBU_S_QB:
4096 case Mips::SUBu:
4097 case Mips::V3MULU:
4098 case Mips::VMM0:
4099 case Mips::VMULU:
4100 case Mips::XOR:
4101 case Mips::XOR64: {
4102 // op: rd
4103 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4104 Value |= (op & 0x1f) << 11;
4105 // op: rs
4106 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4107 Value |= (op & 0x1f) << 21;
4108 // op: rt
4109 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
4110 Value |= (op & 0x1f) << 16;
4111 break;
4112 }
4113 case Mips::ALIGN: {
4114 // op: rd
4115 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4116 Value |= (op & 0x1f) << 11;
4117 // op: rs
4118 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4119 Value |= (op & 0x1f) << 21;
4120 // op: rt
4121 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
4122 Value |= (op & 0x1f) << 16;
4123 // op: bp
4124 op = getMachineOpValue(MI, MO: MI.getOperand(i: 3), Fixups, STI);
4125 Value |= (op & 0x3) << 6;
4126 break;
4127 }
4128 case Mips::ALIGN_MMR6: {
4129 // op: rd
4130 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4131 Value |= (op & 0x1f) << 11;
4132 // op: rs
4133 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4134 Value |= (op & 0x1f) << 21;
4135 // op: rt
4136 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
4137 Value |= (op & 0x1f) << 16;
4138 // op: bp
4139 op = getMachineOpValue(MI, MO: MI.getOperand(i: 3), Fixups, STI);
4140 Value |= (op & 0x3) << 9;
4141 break;
4142 }
4143 case Mips::DALIGN: {
4144 // op: rd
4145 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4146 Value |= (op & 0x1f) << 11;
4147 // op: rs
4148 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4149 Value |= (op & 0x1f) << 21;
4150 // op: rt
4151 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
4152 Value |= (op & 0x1f) << 16;
4153 // op: bp
4154 op = getMachineOpValue(MI, MO: MI.getOperand(i: 3), Fixups, STI);
4155 Value |= (op & 0x7) << 6;
4156 break;
4157 }
4158 case Mips::DLSA_R6:
4159 case Mips::LSA_R6: {
4160 // op: rd
4161 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4162 Value |= (op & 0x1f) << 11;
4163 // op: rs
4164 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4165 Value |= (op & 0x1f) << 21;
4166 // op: rt
4167 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
4168 Value |= (op & 0x1f) << 16;
4169 // op: imm2
4170 op = getUImmWithOffsetEncoding<2, 1>(MI, OpNo: 3, Fixups, STI);
4171 Value |= (op & 0x3) << 6;
4172 break;
4173 }
4174 case Mips::SHLLV_PH_MM:
4175 case Mips::SHLLV_QB_MM:
4176 case Mips::SHLLV_S_PH_MM:
4177 case Mips::SHLLV_S_W_MM:
4178 case Mips::SHRAV_PH_MM:
4179 case Mips::SHRAV_QB_MMR2:
4180 case Mips::SHRAV_R_PH_MM:
4181 case Mips::SHRAV_R_QB_MMR2:
4182 case Mips::SHRAV_R_W_MM:
4183 case Mips::SHRLV_PH_MMR2:
4184 case Mips::SHRLV_QB_MM: {
4185 // op: rd
4186 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4187 Value |= (op & 0x1f) << 11;
4188 // op: rs
4189 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
4190 Value |= (op & 0x1f) << 16;
4191 // op: rt
4192 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4193 Value |= (op & 0x1f) << 21;
4194 break;
4195 }
4196 case Mips::ABSQ_S_PH:
4197 case Mips::ABSQ_S_QB:
4198 case Mips::ABSQ_S_W:
4199 case Mips::BITREV:
4200 case Mips::BITSWAP:
4201 case Mips::DBITSWAP:
4202 case Mips::DSBH:
4203 case Mips::DSHD:
4204 case Mips::DSLL64_32:
4205 case Mips::PRECEQU_PH_QBL:
4206 case Mips::PRECEQU_PH_QBLA:
4207 case Mips::PRECEQU_PH_QBR:
4208 case Mips::PRECEQU_PH_QBRA:
4209 case Mips::PRECEQ_W_PHL:
4210 case Mips::PRECEQ_W_PHR:
4211 case Mips::PRECEU_PH_QBL:
4212 case Mips::PRECEU_PH_QBLA:
4213 case Mips::PRECEU_PH_QBR:
4214 case Mips::PRECEU_PH_QBRA:
4215 case Mips::REPLV_PH:
4216 case Mips::REPLV_QB:
4217 case Mips::SEB:
4218 case Mips::SEB64:
4219 case Mips::SEH:
4220 case Mips::SEH64:
4221 case Mips::SLL64_32:
4222 case Mips::SLL64_64:
4223 case Mips::WSBH: {
4224 // op: rd
4225 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4226 Value |= (op & 0x1f) << 11;
4227 // op: rt
4228 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4229 Value |= (op & 0x1f) << 16;
4230 break;
4231 }
4232 case Mips::DROTRV:
4233 case Mips::DSLLV:
4234 case Mips::DSRAV:
4235 case Mips::DSRLV:
4236 case Mips::ROTRV:
4237 case Mips::SLLV:
4238 case Mips::SRAV:
4239 case Mips::SRLV: {
4240 // op: rd
4241 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4242 Value |= (op & 0x1f) << 11;
4243 // op: rt
4244 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4245 Value |= (op & 0x1f) << 16;
4246 // op: rs
4247 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
4248 Value |= (op & 0x1f) << 21;
4249 break;
4250 }
4251 case Mips::SHLLV_PH:
4252 case Mips::SHLLV_QB:
4253 case Mips::SHLLV_S_PH:
4254 case Mips::SHLLV_S_W:
4255 case Mips::SHLL_PH:
4256 case Mips::SHLL_QB:
4257 case Mips::SHLL_S_PH:
4258 case Mips::SHLL_S_W:
4259 case Mips::SHRAV_PH:
4260 case Mips::SHRAV_QB:
4261 case Mips::SHRAV_R_PH:
4262 case Mips::SHRAV_R_QB:
4263 case Mips::SHRAV_R_W:
4264 case Mips::SHRA_PH:
4265 case Mips::SHRA_QB:
4266 case Mips::SHRA_R_PH:
4267 case Mips::SHRA_R_QB:
4268 case Mips::SHRA_R_W:
4269 case Mips::SHRLV_PH:
4270 case Mips::SHRLV_QB:
4271 case Mips::SHRL_PH:
4272 case Mips::SHRL_QB: {
4273 // op: rd
4274 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4275 Value |= (op & 0x1f) << 11;
4276 // op: rt
4277 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4278 Value |= (op & 0x1f) << 16;
4279 // op: rs_sa
4280 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
4281 Value |= (op & 0x1f) << 21;
4282 break;
4283 }
4284 case Mips::DROTR:
4285 case Mips::DROTR32:
4286 case Mips::DSLL:
4287 case Mips::DSLL32:
4288 case Mips::DSRA:
4289 case Mips::DSRA32:
4290 case Mips::DSRL:
4291 case Mips::DSRL32:
4292 case Mips::ROTR:
4293 case Mips::SLL:
4294 case Mips::SRA:
4295 case Mips::SRL: {
4296 // op: rd
4297 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4298 Value |= (op & 0x1f) << 11;
4299 // op: rt
4300 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4301 Value |= (op & 0x1f) << 16;
4302 // op: shamt
4303 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
4304 Value |= (op & 0x1f) << 6;
4305 break;
4306 }
4307 case Mips::ROTRV_MM:
4308 case Mips::SLLV_MM:
4309 case Mips::SRAV_MM:
4310 case Mips::SRLV_MM: {
4311 // op: rd
4312 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4313 Value |= (op & 0x1f) << 11;
4314 // op: rt
4315 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4316 Value |= (op & 0x1f) << 21;
4317 // op: rs
4318 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
4319 Value |= (op & 0x1f) << 16;
4320 break;
4321 }
4322 case Mips::ADDU_MMR6:
4323 case Mips::ADD_MMR6:
4324 case Mips::AND_MMR6:
4325 case Mips::DIVU_MMR6:
4326 case Mips::DIV_MMR6:
4327 case Mips::MODU_MMR6:
4328 case Mips::MOD_MMR6:
4329 case Mips::MUHU_MMR6:
4330 case Mips::MUH_MMR6:
4331 case Mips::MULU_MMR6:
4332 case Mips::MUL_MMR6:
4333 case Mips::NOR_MMR6:
4334 case Mips::OR_MMR6:
4335 case Mips::SUBU_MMR6:
4336 case Mips::SUB_MMR6:
4337 case Mips::XOR_MMR6: {
4338 // op: rd
4339 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4340 Value |= (op & 0x1f) << 11;
4341 // op: rt
4342 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
4343 Value |= (op & 0x1f) << 21;
4344 // op: rs
4345 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4346 Value |= (op & 0x1f) << 16;
4347 break;
4348 }
4349 case Mips::MFHI_MM:
4350 case Mips::MFLO_MM: {
4351 // op: rd
4352 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4353 Value |= (op & 0x1f) << 16;
4354 break;
4355 }
4356 case Mips::BITSWAP_MMR6: {
4357 // op: rd
4358 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4359 Value |= (op & 0x1f) << 16;
4360 // op: rt
4361 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4362 Value |= (op & 0x1f) << 21;
4363 break;
4364 }
4365 case Mips::CLO:
4366 case Mips::CLZ:
4367 case Mips::DCLO:
4368 case Mips::DCLZ: {
4369 // op: rd
4370 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4371 Value |= (op & 0x1f) << 16;
4372 Value |= (op & 0x1f) << 11;
4373 // op: rs
4374 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4375 Value |= (op & 0x1f) << 21;
4376 break;
4377 }
4378 case Mips::CLO_MM:
4379 case Mips::CLZ_MM: {
4380 // op: rd
4381 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4382 Value |= (op & 0x1f) << 21;
4383 // op: rs
4384 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4385 Value |= (op & 0x1f) << 16;
4386 break;
4387 }
4388 case Mips::MOVF_I_MM:
4389 case Mips::MOVT_I_MM: {
4390 // op: rd
4391 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4392 Value |= (op & 0x1f) << 21;
4393 // op: rs
4394 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4395 Value |= (op & 0x1f) << 16;
4396 // op: fcc
4397 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
4398 Value |= (op & 0x7) << 13;
4399 break;
4400 }
4401 case Mips::SEB_MM:
4402 case Mips::SEH_MM:
4403 case Mips::WSBH_MM: {
4404 // op: rd
4405 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4406 Value |= (op & 0x1f) << 21;
4407 // op: rt
4408 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4409 Value |= (op & 0x1f) << 16;
4410 break;
4411 }
4412 case Mips::ROTR_MM:
4413 case Mips::SLL_MM:
4414 case Mips::SLL_MMR6:
4415 case Mips::SRA_MM:
4416 case Mips::SRL_MM: {
4417 // op: rd
4418 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4419 Value |= (op & 0x1f) << 21;
4420 // op: rt
4421 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4422 Value |= (op & 0x1f) << 16;
4423 // op: shamt
4424 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
4425 Value |= (op & 0x1f) << 11;
4426 break;
4427 }
4428 case Mips::CFCMSA: {
4429 // op: rd
4430 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4431 Value |= (op & 0x1f) << 6;
4432 // op: cs
4433 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4434 Value |= (op & 0x1f) << 11;
4435 break;
4436 }
4437 case Mips::MFHI16_MM:
4438 case Mips::MFLO16_MM: {
4439 // op: rd
4440 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4441 Value |= (op & 0x1f);
4442 break;
4443 }
4444 case Mips::LI16_MM:
4445 case Mips::LI16_MMR6: {
4446 // op: rd
4447 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4448 Value |= (op & 0x7) << 7;
4449 // op: imm
4450 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4451 Value |= (op & 0x7f);
4452 break;
4453 }
4454 case Mips::ADDIUR1SP_MM: {
4455 // op: rd
4456 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4457 Value |= (op & 0x7) << 7;
4458 // op: imm
4459 op = getUImm6Lsl2Encoding(MI, OpNo: 1, Fixups, STI);
4460 Value |= (op & 0x3f) << 1;
4461 break;
4462 }
4463 case Mips::ADDIUR2_MM: {
4464 // op: rd
4465 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4466 Value |= (op & 0x7) << 7;
4467 // op: rs
4468 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4469 Value |= (op & 0x7) << 4;
4470 // op: imm
4471 op = getSImm3Lsa2Value(MI, OpNo: 2, Fixups, STI);
4472 Value |= (op & 0x7) << 1;
4473 break;
4474 }
4475 case Mips::ANDI16_MM:
4476 case Mips::ANDI16_MMR6: {
4477 // op: rd
4478 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4479 Value |= (op & 0x7) << 7;
4480 // op: rs
4481 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4482 Value |= (op & 0x7) << 4;
4483 // op: imm
4484 op = getUImm4AndValue(MI, OpNo: 2, Fixups, STI);
4485 Value |= (op & 0xf);
4486 break;
4487 }
4488 case Mips::SLL16_MM:
4489 case Mips::SLL16_MMR6:
4490 case Mips::SRL16_MM:
4491 case Mips::SRL16_MMR6: {
4492 // op: rd
4493 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4494 Value |= (op & 0x7) << 7;
4495 // op: rt
4496 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4497 Value |= (op & 0x7) << 4;
4498 // op: shamt
4499 op = getUImm3Mod8Encoding(MI, OpNo: 2, Fixups, STI);
4500 Value |= (op & 0x7) << 1;
4501 break;
4502 }
4503 case Mips::ADDU16_MM:
4504 case Mips::SUBU16_MM: {
4505 // op: rd
4506 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4507 Value |= (op & 0x7) << 7;
4508 // op: rt
4509 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
4510 Value |= (op & 0x7) << 4;
4511 // op: rs
4512 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4513 Value |= (op & 0x7) << 1;
4514 break;
4515 }
4516 case Mips::ADDIUS5_MM: {
4517 // op: rd
4518 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4519 Value |= (op & 0x1f) << 5;
4520 // op: imm
4521 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
4522 Value |= (op & 0xf) << 1;
4523 break;
4524 }
4525 case Mips::DVP_MMR6:
4526 case Mips::EVP_MMR6:
4527 case Mips::GINVI_MMR6:
4528 case Mips::JR_HB_MM:
4529 case Mips::JR_MM:
4530 case Mips::MTHI_MM:
4531 case Mips::MTLO_MM: {
4532 // op: rs
4533 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4534 Value |= (op & 0x1f) << 16;
4535 break;
4536 }
4537 case Mips::MFHI_DSP_MM:
4538 case Mips::MFLO_DSP_MM: {
4539 // op: rs
4540 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4541 Value |= (op & 0x1f) << 16;
4542 // op: ac
4543 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4544 Value |= (op & 0x3) << 14;
4545 break;
4546 }
4547 case Mips::TEQI_MM:
4548 case Mips::TGEIU_MM:
4549 case Mips::TGEI_MM:
4550 case Mips::TLTIU_MM:
4551 case Mips::TLTI_MM:
4552 case Mips::TNEI_MM: {
4553 // op: rs
4554 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4555 Value |= (op & 0x1f) << 16;
4556 // op: imm16
4557 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4558 Value |= (op & 0xffff);
4559 break;
4560 }
4561 case Mips::BEQZC_MM:
4562 case Mips::BGEZALS_MM:
4563 case Mips::BGEZAL_MM:
4564 case Mips::BGEZ_MM:
4565 case Mips::BGTZ_MM:
4566 case Mips::BLEZ_MM:
4567 case Mips::BLTZALS_MM:
4568 case Mips::BLTZAL_MM:
4569 case Mips::BLTZ_MM:
4570 case Mips::BNEZC_MM: {
4571 // op: rs
4572 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4573 Value |= (op & 0x1f) << 16;
4574 // op: offset
4575 op = getBranchTargetOpValueMM(MI, OpNo: 1, Fixups, STI);
4576 Value |= (op & 0xffff);
4577 break;
4578 }
4579 case Mips::MADDU_MM:
4580 case Mips::MADD_MM:
4581 case Mips::MSUBU_MM:
4582 case Mips::MSUB_MM:
4583 case Mips::MULT_MM:
4584 case Mips::MULTu_MM:
4585 case Mips::SDIV_MM:
4586 case Mips::UDIV_MM: {
4587 // op: rs
4588 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4589 Value |= (op & 0x1f) << 16;
4590 // op: rt
4591 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4592 Value |= (op & 0x1f) << 21;
4593 break;
4594 }
4595 case Mips::TEQ_MM:
4596 case Mips::TGEU_MM:
4597 case Mips::TGE_MM:
4598 case Mips::TLTU_MM:
4599 case Mips::TLT_MM:
4600 case Mips::TNE_MM: {
4601 // op: rs
4602 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4603 Value |= (op & 0x1f) << 16;
4604 // op: rt
4605 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4606 Value |= (op & 0x1f) << 21;
4607 // op: code_
4608 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
4609 Value |= (op & 0xf) << 12;
4610 break;
4611 }
4612 case Mips::BEQ_MM:
4613 case Mips::BNE_MM: {
4614 // op: rs
4615 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4616 Value |= (op & 0x1f) << 16;
4617 // op: rt
4618 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4619 Value |= (op & 0x1f) << 21;
4620 // op: offset
4621 op = getBranchTargetOpValueMM(MI, OpNo: 2, Fixups, STI);
4622 Value |= (op & 0xffff);
4623 break;
4624 }
4625 case Mips::GINVT_MMR6: {
4626 // op: rs
4627 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4628 Value |= (op & 0x1f) << 16;
4629 // op: type
4630 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4631 Value |= (op & 0x3) << 9;
4632 break;
4633 }
4634 case Mips::GINVI:
4635 case Mips::JR:
4636 case Mips::JR64:
4637 case Mips::JR_HB:
4638 case Mips::JR_HB64:
4639 case Mips::JR_HB64_R6:
4640 case Mips::JR_HB_R6:
4641 case Mips::MTHI:
4642 case Mips::MTHI64:
4643 case Mips::MTLO:
4644 case Mips::MTLO64:
4645 case Mips::MTM0:
4646 case Mips::MTM1:
4647 case Mips::MTM2:
4648 case Mips::MTP0:
4649 case Mips::MTP1:
4650 case Mips::MTP2: {
4651 // op: rs
4652 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4653 Value |= (op & 0x1f) << 21;
4654 break;
4655 }
4656 case Mips::ALUIPC:
4657 case Mips::AUIPC: {
4658 // op: rs
4659 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4660 Value |= (op & 0x1f) << 21;
4661 // op: imm
4662 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4663 Value |= (op & 0xffff);
4664 break;
4665 }
4666 case Mips::DAHI:
4667 case Mips::DATI: {
4668 // op: rs
4669 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4670 Value |= (op & 0x1f) << 21;
4671 // op: imm
4672 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
4673 Value |= (op & 0xffff);
4674 break;
4675 }
4676 case Mips::LDPC: {
4677 // op: rs
4678 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4679 Value |= (op & 0x1f) << 21;
4680 // op: imm
4681 op = getSimm18Lsl3Encoding(MI, OpNo: 1, Fixups, STI);
4682 Value |= (op & 0x3ffff);
4683 break;
4684 }
4685 case Mips::ADDIUPC:
4686 case Mips::LWPC:
4687 case Mips::LWUPC: {
4688 // op: rs
4689 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4690 Value |= (op & 0x1f) << 21;
4691 // op: imm
4692 op = getSimm19Lsl2Encoding(MI, OpNo: 1, Fixups, STI);
4693 Value |= (op & 0x7ffff);
4694 break;
4695 }
4696 case Mips::TEQI:
4697 case Mips::TGEI:
4698 case Mips::TGEIU:
4699 case Mips::TLTI:
4700 case Mips::TNEI:
4701 case Mips::TTLTIU: {
4702 // op: rs
4703 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4704 Value |= (op & 0x1f) << 21;
4705 // op: imm16
4706 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4707 Value |= (op & 0xffff);
4708 break;
4709 }
4710 case Mips::WRDSP: {
4711 // op: rs
4712 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4713 Value |= (op & 0x1f) << 21;
4714 // op: mask
4715 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4716 Value |= (op & 0x3ff) << 11;
4717 break;
4718 }
4719 case Mips::BEQZC:
4720 case Mips::BEQZC64:
4721 case Mips::BNEZC:
4722 case Mips::BNEZC64: {
4723 // op: rs
4724 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4725 Value |= (op & 0x1f) << 21;
4726 // op: offset
4727 op = getBranchTarget21OpValue(MI, OpNo: 1, Fixups, STI);
4728 Value |= (op & 0x1fffff);
4729 break;
4730 }
4731 case Mips::BEQZC_MMR6:
4732 case Mips::BNEZC_MMR6: {
4733 // op: rs
4734 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4735 Value |= (op & 0x1f) << 21;
4736 // op: offset
4737 op = getBranchTarget21OpValueMM(MI, OpNo: 1, Fixups, STI);
4738 Value |= (op & 0x1fffff);
4739 break;
4740 }
4741 case Mips::BGEZ:
4742 case Mips::BGEZ64:
4743 case Mips::BGEZAL:
4744 case Mips::BGEZALL:
4745 case Mips::BGEZL:
4746 case Mips::BGTZ:
4747 case Mips::BGTZ64:
4748 case Mips::BGTZL:
4749 case Mips::BLEZ:
4750 case Mips::BLEZ64:
4751 case Mips::BLEZL:
4752 case Mips::BLTZ:
4753 case Mips::BLTZ64:
4754 case Mips::BLTZAL:
4755 case Mips::BLTZALL:
4756 case Mips::BLTZL: {
4757 // op: rs
4758 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4759 Value |= (op & 0x1f) << 21;
4760 // op: offset
4761 op = getBranchTargetOpValue(MI, OpNo: 1, Fixups, STI);
4762 Value |= (op & 0xffff);
4763 break;
4764 }
4765 case Mips::BBIT0:
4766 case Mips::BBIT032:
4767 case Mips::BBIT1:
4768 case Mips::BBIT132: {
4769 // op: rs
4770 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4771 Value |= (op & 0x1f) << 21;
4772 // op: p
4773 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4774 Value |= (op & 0x1f) << 16;
4775 // op: offset
4776 op = getBranchTargetOpValue(MI, OpNo: 2, Fixups, STI);
4777 Value |= (op & 0xffff);
4778 break;
4779 }
4780 case Mips::CMPU_EQ_QB:
4781 case Mips::CMPU_LE_QB:
4782 case Mips::CMPU_LT_QB:
4783 case Mips::CMP_EQ_PH:
4784 case Mips::CMP_LE_PH:
4785 case Mips::CMP_LT_PH:
4786 case Mips::DMULT:
4787 case Mips::DMULTu:
4788 case Mips::DSDIV:
4789 case Mips::DUDIV:
4790 case Mips::MADD:
4791 case Mips::MADDU:
4792 case Mips::MSUB:
4793 case Mips::MSUBU:
4794 case Mips::MULT:
4795 case Mips::MULTu:
4796 case Mips::SDIV:
4797 case Mips::UDIV: {
4798 // op: rs
4799 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4800 Value |= (op & 0x1f) << 21;
4801 // op: rt
4802 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4803 Value |= (op & 0x1f) << 16;
4804 break;
4805 }
4806 case Mips::TEQ:
4807 case Mips::TGE:
4808 case Mips::TGEU:
4809 case Mips::TLT:
4810 case Mips::TLTU:
4811 case Mips::TNE: {
4812 // op: rs
4813 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4814 Value |= (op & 0x1f) << 21;
4815 // op: rt
4816 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4817 Value |= (op & 0x1f) << 16;
4818 // op: code_
4819 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
4820 Value |= (op & 0x3ff) << 6;
4821 break;
4822 }
4823 case Mips::BEQ:
4824 case Mips::BEQ64:
4825 case Mips::BEQC:
4826 case Mips::BEQC64:
4827 case Mips::BEQL:
4828 case Mips::BGEC:
4829 case Mips::BGEC64:
4830 case Mips::BGEUC:
4831 case Mips::BGEUC64:
4832 case Mips::BLTC:
4833 case Mips::BLTC64:
4834 case Mips::BLTUC:
4835 case Mips::BLTUC64:
4836 case Mips::BNE:
4837 case Mips::BNE64:
4838 case Mips::BNEC:
4839 case Mips::BNEC64:
4840 case Mips::BNEL:
4841 case Mips::BNVC:
4842 case Mips::BOVC: {
4843 // op: rs
4844 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4845 Value |= (op & 0x1f) << 21;
4846 // op: rt
4847 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4848 Value |= (op & 0x1f) << 16;
4849 // op: offset
4850 op = getBranchTargetOpValue(MI, OpNo: 2, Fixups, STI);
4851 Value |= (op & 0xffff);
4852 break;
4853 }
4854 case Mips::FORK: {
4855 // op: rs
4856 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4857 Value |= (op & 0x1f) << 21;
4858 // op: rt
4859 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
4860 Value |= (op & 0x1f) << 16;
4861 // op: rd
4862 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4863 Value |= (op & 0x1f) << 11;
4864 break;
4865 }
4866 case Mips::GINVT: {
4867 // op: rs
4868 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4869 Value |= (op & 0x1f) << 21;
4870 // op: type_
4871 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4872 Value |= (op & 0x3) << 8;
4873 break;
4874 }
4875 case Mips::JALRC16_MMR6:
4876 case Mips::JRC16_MMR6: {
4877 // op: rs
4878 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4879 Value |= (op & 0x1f) << 5;
4880 break;
4881 }
4882 case Mips::JALR16_MM:
4883 case Mips::JALRS16_MM:
4884 case Mips::JR16_MM:
4885 case Mips::JRC16_MM: {
4886 // op: rs
4887 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4888 Value |= (op & 0x1f);
4889 break;
4890 }
4891 case Mips::ADDIUPC_MM: {
4892 // op: rs
4893 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4894 Value |= (op & 0x7) << 23;
4895 // op: imm
4896 op = getSimm23Lsl2Encoding(MI, OpNo: 1, Fixups, STI);
4897 Value |= (op & 0x7fffff);
4898 break;
4899 }
4900 case Mips::BEQZ16_MM:
4901 case Mips::BEQZC16_MMR6:
4902 case Mips::BNEZ16_MM:
4903 case Mips::BNEZC16_MMR6: {
4904 // op: rs
4905 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4906 Value |= (op & 0x7) << 7;
4907 // op: offset
4908 op = getBranchTarget7OpValueMM(MI, OpNo: 1, Fixups, STI);
4909 Value |= (op & 0x7f);
4910 break;
4911 }
4912 case Mips::CTCMSA: {
4913 // op: rs
4914 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4915 Value |= (op & 0x1f) << 11;
4916 // op: cd
4917 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4918 Value |= (op & 0x1f) << 6;
4919 break;
4920 }
4921 case Mips::FILL_B:
4922 case Mips::FILL_D:
4923 case Mips::FILL_H:
4924 case Mips::FILL_W: {
4925 // op: rs
4926 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4927 Value |= (op & 0x1f) << 11;
4928 // op: wd
4929 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4930 Value |= (op & 0x1f) << 6;
4931 break;
4932 }
4933 case Mips::MTHI_DSP_MM:
4934 case Mips::MTHLIP_MM:
4935 case Mips::MTLO_DSP_MM:
4936 case Mips::SHILOV_MM: {
4937 // op: rs
4938 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4939 Value |= (op & 0x1f) << 16;
4940 // op: ac
4941 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4942 Value |= (op & 0x3) << 14;
4943 break;
4944 }
4945 case Mips::JALRS_MM:
4946 case Mips::JALR_HB_MM:
4947 case Mips::JALR_MM: {
4948 // op: rs
4949 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4950 Value |= (op & 0x1f) << 16;
4951 // op: rd
4952 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4953 Value |= (op & 0x1f) << 21;
4954 break;
4955 }
4956 case Mips::CLO_MMR6: {
4957 // op: rs
4958 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4959 Value |= (op & 0x1f) << 16;
4960 // op: rt
4961 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4962 Value |= (op & 0x1f) << 21;
4963 break;
4964 }
4965 case Mips::AUI_MMR6: {
4966 // op: rs
4967 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4968 Value |= (op & 0x1f) << 16;
4969 // op: rt
4970 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4971 Value |= (op & 0x1f) << 21;
4972 // op: imm
4973 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
4974 Value |= (op & 0xffff);
4975 break;
4976 }
4977 case Mips::ADDi_MM:
4978 case Mips::ADDiu_MM:
4979 case Mips::ANDi_MM:
4980 case Mips::ORi_MM:
4981 case Mips::XORi_MM: {
4982 // op: rs
4983 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4984 Value |= (op & 0x1f) << 16;
4985 // op: rt
4986 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
4987 Value |= (op & 0x1f) << 21;
4988 // op: imm16
4989 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
4990 Value |= (op & 0xffff);
4991 break;
4992 }
4993 case Mips::MTHI_DSP:
4994 case Mips::MTLO_DSP: {
4995 // op: rs
4996 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
4997 Value |= (op & 0x1f) << 21;
4998 // op: ac
4999 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5000 Value |= (op & 0x3) << 11;
5001 break;
5002 }
5003 case Mips::YIELD: {
5004 // op: rs
5005 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5006 Value |= (op & 0x1f) << 21;
5007 // op: rd
5008 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5009 Value |= (op & 0x1f) << 11;
5010 break;
5011 }
5012 case Mips::CLZ_MMR6: {
5013 // op: rs
5014 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5015 Value |= (op & 0x1f) << 21;
5016 // op: rt
5017 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5018 Value |= (op & 0x1f) << 11;
5019 break;
5020 }
5021 case Mips::AUI:
5022 case Mips::DAUI: {
5023 // op: rs
5024 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5025 Value |= (op & 0x1f) << 21;
5026 // op: rt
5027 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5028 Value |= (op & 0x1f) << 16;
5029 // op: imm
5030 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5031 Value |= (op & 0xffff);
5032 break;
5033 }
5034 case Mips::SEQi:
5035 case Mips::SNEi: {
5036 // op: rs
5037 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5038 Value |= (op & 0x1f) << 21;
5039 // op: rt
5040 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5041 Value |= (op & 0x1f) << 16;
5042 // op: imm10
5043 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5044 Value |= (op & 0x3ff) << 6;
5045 break;
5046 }
5047 case Mips::ADDi:
5048 case Mips::ADDiu:
5049 case Mips::ANDi:
5050 case Mips::ANDi64:
5051 case Mips::DADDi:
5052 case Mips::DADDiu:
5053 case Mips::ORi:
5054 case Mips::ORi64:
5055 case Mips::XORi:
5056 case Mips::XORi64: {
5057 // op: rs
5058 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5059 Value |= (op & 0x1f) << 21;
5060 // op: rt
5061 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5062 Value |= (op & 0x1f) << 16;
5063 // op: imm16
5064 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5065 Value |= (op & 0xffff);
5066 break;
5067 }
5068 case Mips::PRECR_SRA_PH_W:
5069 case Mips::PRECR_SRA_R_PH_W: {
5070 // op: rs
5071 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5072 Value |= (op & 0x1f) << 21;
5073 // op: rt
5074 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5075 Value |= (op & 0x1f) << 16;
5076 // op: sa
5077 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5078 Value |= (op & 0x1f) << 11;
5079 break;
5080 }
5081 case Mips::CRC32B:
5082 case Mips::CRC32CB:
5083 case Mips::CRC32CD:
5084 case Mips::CRC32CH:
5085 case Mips::CRC32CW:
5086 case Mips::CRC32D:
5087 case Mips::CRC32H:
5088 case Mips::CRC32W: {
5089 // op: rs
5090 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5091 Value |= (op & 0x1f) << 21;
5092 // op: rt
5093 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5094 Value |= (op & 0x1f) << 16;
5095 break;
5096 }
5097 case Mips::CMPGDU_EQ_QB:
5098 case Mips::CMPGDU_LE_QB:
5099 case Mips::CMPGDU_LT_QB:
5100 case Mips::CMPGU_EQ_QB:
5101 case Mips::CMPGU_LE_QB:
5102 case Mips::CMPGU_LT_QB:
5103 case Mips::PACKRL_PH:
5104 case Mips::PICK_PH:
5105 case Mips::PICK_QB:
5106 case Mips::PRECRQU_S_QB_PH:
5107 case Mips::PRECRQ_PH_W:
5108 case Mips::PRECRQ_QB_PH:
5109 case Mips::PRECRQ_RS_PH_W:
5110 case Mips::PRECR_QB_PH: {
5111 // op: rs
5112 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5113 Value |= (op & 0x1f) << 21;
5114 // op: rt
5115 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5116 Value |= (op & 0x1f) << 16;
5117 // op: rd
5118 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5119 Value |= (op & 0x1f) << 11;
5120 break;
5121 }
5122 case Mips::DLSA:
5123 case Mips::LSA: {
5124 // op: rs
5125 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5126 Value |= (op & 0x1f) << 21;
5127 // op: rt
5128 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5129 Value |= (op & 0x1f) << 16;
5130 // op: rd
5131 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5132 Value |= (op & 0x1f) << 11;
5133 // op: sa
5134 op = getUImmWithOffsetEncoding<2, 1>(MI, OpNo: 3, Fixups, STI);
5135 Value |= (op & 0x3) << 6;
5136 break;
5137 }
5138 case Mips::MOVE16_MM:
5139 case Mips::MOVE16_MMR6: {
5140 // op: rs
5141 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5142 Value |= (op & 0x1f);
5143 // op: rd
5144 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5145 Value |= (op & 0x1f) << 5;
5146 break;
5147 }
5148 case Mips::ADDU16_MMR6:
5149 case Mips::SUBU16_MMR6: {
5150 // op: rs
5151 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5152 Value |= (op & 0x7) << 7;
5153 // op: rt
5154 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5155 Value |= (op & 0x7) << 4;
5156 // op: rd
5157 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5158 Value |= (op & 0x7) << 1;
5159 break;
5160 }
5161 case Mips::DI:
5162 case Mips::DI_MM:
5163 case Mips::DI_MMR6:
5164 case Mips::DMT:
5165 case Mips::DVP:
5166 case Mips::DVPE:
5167 case Mips::EI:
5168 case Mips::EI_MM:
5169 case Mips::EI_MMR6:
5170 case Mips::EMT:
5171 case Mips::EVP:
5172 case Mips::EVPE: {
5173 // op: rt
5174 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5175 Value |= (op & 0x1f) << 16;
5176 break;
5177 }
5178 case Mips::EXTP:
5179 case Mips::EXTPDP:
5180 case Mips::EXTPDPV:
5181 case Mips::EXTPV:
5182 case Mips::EXTRV_RS_W:
5183 case Mips::EXTRV_R_W:
5184 case Mips::EXTRV_S_H:
5185 case Mips::EXTRV_W:
5186 case Mips::EXTR_RS_W:
5187 case Mips::EXTR_R_W:
5188 case Mips::EXTR_S_H:
5189 case Mips::EXTR_W: {
5190 // op: rt
5191 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5192 Value |= (op & 0x1f) << 16;
5193 // op: ac
5194 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5195 Value |= (op & 0x3) << 11;
5196 // op: shift_rs
5197 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5198 Value |= (op & 0x1f) << 21;
5199 break;
5200 }
5201 case Mips::LDC2_R6:
5202 case Mips::LWC2_R6:
5203 case Mips::SDC2_R6:
5204 case Mips::SWC2_R6: {
5205 // op: rt
5206 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5207 Value |= (op & 0x1f) << 16;
5208 // op: base
5209 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5210 Value |= (op & 0x1f) << 11;
5211 // op: offset
5212 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5213 Value |= (op & 0x7ff);
5214 break;
5215 }
5216 case Mips::LBE:
5217 case Mips::LBuE:
5218 case Mips::LHE:
5219 case Mips::LHuE:
5220 case Mips::LL64_R6:
5221 case Mips::LLD_R6:
5222 case Mips::LLE:
5223 case Mips::LL_R6:
5224 case Mips::LWE:
5225 case Mips::LWLE:
5226 case Mips::LWRE:
5227 case Mips::SBE:
5228 case Mips::SHE:
5229 case Mips::SWE:
5230 case Mips::SWLE:
5231 case Mips::SWRE: {
5232 // op: rt
5233 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5234 Value |= (op & 0x1f) << 16;
5235 // op: base
5236 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5237 Value |= (op & 0x1f) << 21;
5238 // op: offset
5239 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5240 Value |= (op & 0x1ff) << 7;
5241 break;
5242 }
5243 case Mips::LB:
5244 case Mips::LB64:
5245 case Mips::LBu:
5246 case Mips::LBu64:
5247 case Mips::LD:
5248 case Mips::LDC1:
5249 case Mips::LDC164:
5250 case Mips::LDC2:
5251 case Mips::LDC3:
5252 case Mips::LDL:
5253 case Mips::LDR:
5254 case Mips::LEA_ADDiu:
5255 case Mips::LEA_ADDiu64:
5256 case Mips::LH:
5257 case Mips::LH64:
5258 case Mips::LHu:
5259 case Mips::LHu64:
5260 case Mips::LL:
5261 case Mips::LL64:
5262 case Mips::LLD:
5263 case Mips::LW:
5264 case Mips::LW64:
5265 case Mips::LWC1:
5266 case Mips::LWC2:
5267 case Mips::LWC3:
5268 case Mips::LWDSP:
5269 case Mips::LWL:
5270 case Mips::LWL64:
5271 case Mips::LWR:
5272 case Mips::LWR64:
5273 case Mips::LWu:
5274 case Mips::SB:
5275 case Mips::SB64:
5276 case Mips::SD:
5277 case Mips::SDC1:
5278 case Mips::SDC164:
5279 case Mips::SDC2:
5280 case Mips::SDC3:
5281 case Mips::SDL:
5282 case Mips::SDR:
5283 case Mips::SH:
5284 case Mips::SH64:
5285 case Mips::SW:
5286 case Mips::SW64:
5287 case Mips::SWC1:
5288 case Mips::SWC2:
5289 case Mips::SWC3:
5290 case Mips::SWDSP:
5291 case Mips::SWL:
5292 case Mips::SWL64:
5293 case Mips::SWR:
5294 case Mips::SWR64: {
5295 // op: rt
5296 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5297 Value |= (op & 0x1f) << 16;
5298 // op: base
5299 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5300 Value |= (op & 0x1f) << 21;
5301 // op: offset
5302 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5303 Value |= (op & 0xffff);
5304 break;
5305 }
5306 case Mips::CFC1:
5307 case Mips::DMFC1:
5308 case Mips::MFC1:
5309 case Mips::MFC1_D64:
5310 case Mips::MFHC1_D32:
5311 case Mips::MFHC1_D64: {
5312 // op: rt
5313 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5314 Value |= (op & 0x1f) << 16;
5315 // op: fs
5316 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5317 Value |= (op & 0x1f) << 11;
5318 break;
5319 }
5320 case Mips::DMFC2_OCTEON:
5321 case Mips::DMTC2_OCTEON:
5322 case Mips::LUi:
5323 case Mips::LUi64:
5324 case Mips::LUi_MM: {
5325 // op: rt
5326 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5327 Value |= (op & 0x1f) << 16;
5328 // op: imm16
5329 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5330 Value |= (op & 0xffff);
5331 break;
5332 }
5333 case Mips::BEQZALC:
5334 case Mips::BGTZALC:
5335 case Mips::BGTZC:
5336 case Mips::BGTZC64:
5337 case Mips::BLEZALC:
5338 case Mips::BLEZC:
5339 case Mips::BLEZC64:
5340 case Mips::BNEZALC: {
5341 // op: rt
5342 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5343 Value |= (op & 0x1f) << 16;
5344 // op: offset
5345 op = getBranchTargetOpValue(MI, OpNo: 1, Fixups, STI);
5346 Value |= (op & 0xffff);
5347 break;
5348 }
5349 case Mips::BC1EQZC_MMR6:
5350 case Mips::BC1NEZC_MMR6:
5351 case Mips::BC2EQZC_MMR6:
5352 case Mips::BC2NEZC_MMR6: {
5353 // op: rt
5354 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5355 Value |= (op & 0x1f) << 16;
5356 // op: offset
5357 op = getBranchTargetOpValueMM(MI, OpNo: 1, Fixups, STI);
5358 Value |= (op & 0xffff);
5359 break;
5360 }
5361 case Mips::JIALC:
5362 case Mips::JIALC64:
5363 case Mips::JIALC_MMR6:
5364 case Mips::JIC:
5365 case Mips::JIC64:
5366 case Mips::JIC_MMR6: {
5367 // op: rt
5368 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5369 Value |= (op & 0x1f) << 16;
5370 // op: offset
5371 op = getJumpOffset16OpValue(MI, OpNo: 1, Fixups, STI);
5372 Value |= (op & 0xffff);
5373 break;
5374 }
5375 case Mips::RDHWR:
5376 case Mips::RDHWR64: {
5377 // op: rt
5378 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5379 Value |= (op & 0x1f) << 16;
5380 // op: rd
5381 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5382 Value |= (op & 0x1f) << 11;
5383 // op: sel
5384 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5385 Value |= (op & 0x7) << 6;
5386 break;
5387 }
5388 case Mips::DMFC0:
5389 case Mips::DMFC2:
5390 case Mips::DMFGC0:
5391 case Mips::MFC0:
5392 case Mips::MFC2:
5393 case Mips::MFGC0:
5394 case Mips::MFHGC0: {
5395 // op: rt
5396 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5397 Value |= (op & 0x1f) << 16;
5398 // op: rd
5399 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5400 Value |= (op & 0x1f) << 11;
5401 // op: sel
5402 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5403 Value |= (op & 0x7);
5404 break;
5405 }
5406 case Mips::SAA:
5407 case Mips::SAAD: {
5408 // op: rt
5409 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5410 Value |= (op & 0x1f) << 16;
5411 // op: rs
5412 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5413 Value |= (op & 0x1f) << 21;
5414 break;
5415 }
5416 case Mips::SLTi:
5417 case Mips::SLTi64:
5418 case Mips::SLTiu:
5419 case Mips::SLTiu64: {
5420 // op: rt
5421 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5422 Value |= (op & 0x1f) << 16;
5423 // op: rs
5424 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5425 Value |= (op & 0x1f) << 21;
5426 // op: imm16
5427 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5428 Value |= (op & 0xffff);
5429 break;
5430 }
5431 case Mips::CINS:
5432 case Mips::CINS32:
5433 case Mips::CINS64_32:
5434 case Mips::CINS_i32:
5435 case Mips::EXTS:
5436 case Mips::EXTS32: {
5437 // op: rt
5438 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5439 Value |= (op & 0x1f) << 16;
5440 // op: rs
5441 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5442 Value |= (op & 0x1f) << 21;
5443 // op: pos
5444 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5445 Value |= (op & 0x1f) << 6;
5446 // op: lenm1
5447 op = getMachineOpValue(MI, MO: MI.getOperand(i: 3), Fixups, STI);
5448 Value |= (op & 0x1f) << 11;
5449 break;
5450 }
5451 case Mips::DINS:
5452 case Mips::DINSM:
5453 case Mips::DINSU:
5454 case Mips::INS: {
5455 // op: rt
5456 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5457 Value |= (op & 0x1f) << 16;
5458 // op: rs
5459 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5460 Value |= (op & 0x1f) << 21;
5461 // op: pos
5462 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5463 Value |= (op & 0x1f) << 6;
5464 // op: size
5465 op = getSizeInsEncoding(MI, OpNo: 3, Fixups, STI);
5466 Value |= (op & 0x1f) << 11;
5467 break;
5468 }
5469 case Mips::DEXT:
5470 case Mips::DEXT64_32:
5471 case Mips::DEXTM:
5472 case Mips::DEXTU:
5473 case Mips::EXT: {
5474 // op: rt
5475 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5476 Value |= (op & 0x1f) << 16;
5477 // op: rs
5478 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5479 Value |= (op & 0x1f) << 21;
5480 // op: pos
5481 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5482 Value |= (op & 0x1f) << 6;
5483 // op: size
5484 op = getUImmWithOffsetEncoding<5, 1>(MI, OpNo: 3, Fixups, STI);
5485 Value |= (op & 0x1f) << 11;
5486 break;
5487 }
5488 case Mips::APPEND:
5489 case Mips::BALIGN:
5490 case Mips::PREPEND: {
5491 // op: rt
5492 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5493 Value |= (op & 0x1f) << 16;
5494 // op: rs
5495 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5496 Value |= (op & 0x1f) << 21;
5497 // op: sa
5498 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5499 Value |= (op & 0x1f) << 11;
5500 break;
5501 }
5502 case Mips::INSV: {
5503 // op: rt
5504 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5505 Value |= (op & 0x1f) << 16;
5506 // op: rs
5507 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5508 Value |= (op & 0x1f) << 21;
5509 break;
5510 }
5511 case Mips::LBE_MM:
5512 case Mips::LBuE_MM:
5513 case Mips::LHE_MM:
5514 case Mips::LHuE_MM:
5515 case Mips::LLE_MM:
5516 case Mips::LL_MMR6:
5517 case Mips::LWE_MM:
5518 case Mips::LWLE_MM:
5519 case Mips::LWRE_MM:
5520 case Mips::SBE_MM:
5521 case Mips::SHE_MM:
5522 case Mips::SWE_MM:
5523 case Mips::SWLE_MM:
5524 case Mips::SWRE_MM: {
5525 // op: rt
5526 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5527 Value |= (op & 0x1f) << 21;
5528 // op: base
5529 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5530 Value |= (op & 0x1f) << 16;
5531 // op: offset
5532 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5533 Value |= (op & 0x1ff);
5534 break;
5535 }
5536 case Mips::LDC2_MMR6:
5537 case Mips::LWC2_MMR6:
5538 case Mips::SDC2_MMR6:
5539 case Mips::SWC2_MMR6: {
5540 // op: rt
5541 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5542 Value |= (op & 0x1f) << 21;
5543 // op: base
5544 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5545 Value |= (op & 0x1f) << 16;
5546 // op: offset
5547 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5548 Value |= (op & 0x7ff);
5549 break;
5550 }
5551 case Mips::LBU_MMR6:
5552 case Mips::LB_MM:
5553 case Mips::LB_MMR6:
5554 case Mips::LBu_MM:
5555 case Mips::LDC1_MM_D32:
5556 case Mips::LDC1_MM_D64:
5557 case Mips::LEA_ADDiu_MM:
5558 case Mips::LH_MM:
5559 case Mips::LHu_MM:
5560 case Mips::LWC1_MM:
5561 case Mips::LWDSP_MM:
5562 case Mips::LW_MM:
5563 case Mips::LW_MMR6:
5564 case Mips::SB_MM:
5565 case Mips::SB_MMR6:
5566 case Mips::SDC1_MM_D32:
5567 case Mips::SDC1_MM_D64:
5568 case Mips::SH_MM:
5569 case Mips::SH_MMR6:
5570 case Mips::SWC1_MM:
5571 case Mips::SWDSP_MM:
5572 case Mips::SW_MM: {
5573 // op: rt
5574 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5575 Value |= (op & 0x1f) << 21;
5576 // op: base
5577 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5578 Value |= (op & 0x1f) << 16;
5579 // op: offset
5580 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5581 Value |= (op & 0xffff);
5582 break;
5583 }
5584 case Mips::CFC1_MM:
5585 case Mips::MFC1_MM:
5586 case Mips::MFC1_MMR6:
5587 case Mips::MFHC1_D32_MM:
5588 case Mips::MFHC1_D64_MM: {
5589 // op: rt
5590 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5591 Value |= (op & 0x1f) << 21;
5592 // op: fs
5593 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5594 Value |= (op & 0x1f) << 16;
5595 break;
5596 }
5597 case Mips::REPL_QB_MM: {
5598 // op: rt
5599 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5600 Value |= (op & 0x1f) << 21;
5601 // op: imm
5602 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5603 Value |= (op & 0xff) << 13;
5604 break;
5605 }
5606 case Mips::ALUIPC_MMR6:
5607 case Mips::AUIPC_MMR6: {
5608 // op: rt
5609 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5610 Value |= (op & 0x1f) << 21;
5611 // op: imm
5612 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5613 Value |= (op & 0xffff);
5614 break;
5615 }
5616 case Mips::EXTPDP_MM:
5617 case Mips::EXTP_MM:
5618 case Mips::EXTR_RS_W_MM:
5619 case Mips::EXTR_R_W_MM:
5620 case Mips::EXTR_S_H_MM:
5621 case Mips::EXTR_W_MM: {
5622 // op: rt
5623 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5624 Value |= (op & 0x1f) << 21;
5625 // op: imm
5626 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5627 Value |= (op & 0x1f) << 16;
5628 // op: ac
5629 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5630 Value |= (op & 0x3) << 14;
5631 break;
5632 }
5633 case Mips::ADDIUPC_MMR6:
5634 case Mips::LWPC_MMR6: {
5635 // op: rt
5636 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5637 Value |= (op & 0x1f) << 21;
5638 // op: imm
5639 op = getSimm19Lsl2Encoding(MI, OpNo: 1, Fixups, STI);
5640 Value |= (op & 0x7ffff);
5641 break;
5642 }
5643 case Mips::LUI_MMR6: {
5644 // op: rt
5645 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5646 Value |= (op & 0x1f) << 21;
5647 // op: imm16
5648 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5649 Value |= (op & 0xffff);
5650 break;
5651 }
5652 case Mips::CFC2_MM:
5653 case Mips::MFC2_MMR6:
5654 case Mips::MFHC2_MMR6: {
5655 // op: rt
5656 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5657 Value |= (op & 0x1f) << 21;
5658 // op: impl
5659 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5660 Value |= (op & 0x1f) << 16;
5661 break;
5662 }
5663 case Mips::RDDSP_MM:
5664 case Mips::WRDSP_MM: {
5665 // op: rt
5666 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5667 Value |= (op & 0x1f) << 21;
5668 // op: mask
5669 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5670 Value |= (op & 0x7f) << 14;
5671 break;
5672 }
5673 case Mips::BGTZC_MMR6:
5674 case Mips::BLEZC_MMR6: {
5675 // op: rt
5676 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5677 Value |= (op & 0x1f) << 21;
5678 // op: offset
5679 op = getBranchTargetOpValueLsl2MMR6(MI, OpNo: 1, Fixups, STI);
5680 Value |= (op & 0xffff);
5681 break;
5682 }
5683 case Mips::BEQZALC_MMR6:
5684 case Mips::BGTZALC_MMR6:
5685 case Mips::BLEZALC_MMR6:
5686 case Mips::BNEZALC_MMR6: {
5687 // op: rt
5688 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5689 Value |= (op & 0x1f) << 21;
5690 // op: offset
5691 op = getBranchTargetOpValueMM(MI, OpNo: 1, Fixups, STI);
5692 Value |= (op & 0xffff);
5693 break;
5694 }
5695 case Mips::RDHWR_MM:
5696 case Mips::RDPGPR_MMR6: {
5697 // op: rt
5698 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5699 Value |= (op & 0x1f) << 21;
5700 // op: rd
5701 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5702 Value |= (op & 0x1f) << 16;
5703 break;
5704 }
5705 case Mips::MFC0_MM: {
5706 // op: rt
5707 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5708 Value |= (op & 0x1f) << 21;
5709 // op: rd
5710 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5711 Value |= (op & 0x1f) << 16;
5712 // op: sel
5713 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5714 Value |= (op & 0x7) << 11;
5715 break;
5716 }
5717 case Mips::ABSQ_S_PH_MM:
5718 case Mips::ABSQ_S_QB_MMR2:
5719 case Mips::ABSQ_S_W_MM:
5720 case Mips::BITREV_MM:
5721 case Mips::JALRC_HB_MMR6:
5722 case Mips::JALRC_MMR6:
5723 case Mips::PRECEQU_PH_QBLA_MM:
5724 case Mips::PRECEQU_PH_QBL_MM:
5725 case Mips::PRECEQU_PH_QBRA_MM:
5726 case Mips::PRECEQU_PH_QBR_MM:
5727 case Mips::PRECEQ_W_PHL_MM:
5728 case Mips::PRECEQ_W_PHR_MM:
5729 case Mips::PRECEU_PH_QBLA_MM:
5730 case Mips::PRECEU_PH_QBL_MM:
5731 case Mips::PRECEU_PH_QBRA_MM:
5732 case Mips::PRECEU_PH_QBR_MM:
5733 case Mips::RADDU_W_QB_MM:
5734 case Mips::REPLV_PH_MM:
5735 case Mips::REPLV_QB_MM:
5736 case Mips::WRPGPR_MMR6:
5737 case Mips::WSBH_MMR6: {
5738 // op: rt
5739 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5740 Value |= (op & 0x1f) << 21;
5741 // op: rs
5742 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5743 Value |= (op & 0x1f) << 16;
5744 break;
5745 }
5746 case Mips::BALIGN_MMR2: {
5747 // op: rt
5748 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5749 Value |= (op & 0x1f) << 21;
5750 // op: rs
5751 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5752 Value |= (op & 0x1f) << 16;
5753 // op: bp
5754 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5755 Value |= (op & 0x3) << 14;
5756 break;
5757 }
5758 case Mips::ADDIU_MMR6:
5759 case Mips::ANDI_MMR6:
5760 case Mips::ORI_MMR6:
5761 case Mips::SLTi_MM:
5762 case Mips::SLTiu_MM:
5763 case Mips::XORI_MMR6: {
5764 // op: rt
5765 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5766 Value |= (op & 0x1f) << 21;
5767 // op: rs
5768 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5769 Value |= (op & 0x1f) << 16;
5770 // op: imm16
5771 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5772 Value |= (op & 0xffff);
5773 break;
5774 }
5775 case Mips::BNVC_MMR6:
5776 case Mips::BOVC_MMR6: {
5777 // op: rt
5778 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5779 Value |= (op & 0x1f) << 21;
5780 // op: rs
5781 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5782 Value |= (op & 0x1f) << 16;
5783 // op: offset
5784 op = getBranchTargetOpValueMMR6(MI, OpNo: 2, Fixups, STI);
5785 Value |= (op & 0xffff);
5786 break;
5787 }
5788 case Mips::INS_MM: {
5789 // op: rt
5790 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5791 Value |= (op & 0x1f) << 21;
5792 // op: rs
5793 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5794 Value |= (op & 0x1f) << 16;
5795 // op: pos
5796 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5797 Value |= (op & 0x1f) << 6;
5798 // op: size
5799 op = getSizeInsEncoding(MI, OpNo: 3, Fixups, STI);
5800 Value |= (op & 0x1f) << 11;
5801 break;
5802 }
5803 case Mips::EXT_MM: {
5804 // op: rt
5805 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5806 Value |= (op & 0x1f) << 21;
5807 // op: rs
5808 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5809 Value |= (op & 0x1f) << 16;
5810 // op: pos
5811 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5812 Value |= (op & 0x1f) << 6;
5813 // op: size
5814 op = getUImmWithOffsetEncoding<5, 1>(MI, OpNo: 3, Fixups, STI);
5815 Value |= (op & 0x1f) << 11;
5816 break;
5817 }
5818 case Mips::APPEND_MMR2:
5819 case Mips::PRECR_SRA_PH_W_MMR2:
5820 case Mips::PRECR_SRA_R_PH_W_MMR2:
5821 case Mips::PREPEND_MMR2:
5822 case Mips::SHLL_S_W_MM:
5823 case Mips::SHRA_R_W_MM: {
5824 // op: rt
5825 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5826 Value |= (op & 0x1f) << 21;
5827 // op: rs
5828 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5829 Value |= (op & 0x1f) << 16;
5830 // op: sa
5831 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5832 Value |= (op & 0x1f) << 11;
5833 break;
5834 }
5835 case Mips::SHLL_QB_MM:
5836 case Mips::SHRA_QB_MMR2:
5837 case Mips::SHRA_R_QB_MMR2:
5838 case Mips::SHRL_QB_MM: {
5839 // op: rt
5840 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5841 Value |= (op & 0x1f) << 21;
5842 // op: rs
5843 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5844 Value |= (op & 0x1f) << 16;
5845 // op: sa
5846 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5847 Value |= (op & 0x7) << 13;
5848 break;
5849 }
5850 case Mips::SHLL_PH_MM:
5851 case Mips::SHLL_S_PH_MM:
5852 case Mips::SHRA_PH_MM:
5853 case Mips::SHRA_R_PH_MM:
5854 case Mips::SHRL_PH_MMR2: {
5855 // op: rt
5856 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5857 Value |= (op & 0x1f) << 21;
5858 // op: rs
5859 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5860 Value |= (op & 0x1f) << 16;
5861 // op: sa
5862 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5863 Value |= (op & 0xf) << 12;
5864 break;
5865 }
5866 case Mips::MFC0_MMR6:
5867 case Mips::MFGC0_MM:
5868 case Mips::MFHC0_MMR6:
5869 case Mips::MFHGC0_MM:
5870 case Mips::RDHWR_MMR6: {
5871 // op: rt
5872 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5873 Value |= (op & 0x1f) << 21;
5874 // op: rs
5875 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5876 Value |= (op & 0x1f) << 16;
5877 // op: sel
5878 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5879 Value |= (op & 0x7) << 11;
5880 break;
5881 }
5882 case Mips::INS_MMR6: {
5883 // op: rt
5884 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5885 Value |= (op & 0x1f) << 21;
5886 // op: rs
5887 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5888 Value |= (op & 0x1f) << 16;
5889 // op: size
5890 op = getSizeInsEncoding(MI, OpNo: 3, Fixups, STI);
5891 Value |= (op & 0x1f) << 11;
5892 // op: pos
5893 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5894 Value |= (op & 0x1f) << 6;
5895 break;
5896 }
5897 case Mips::EXT_MMR6: {
5898 // op: rt
5899 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5900 Value |= (op & 0x1f) << 21;
5901 // op: rs
5902 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5903 Value |= (op & 0x1f) << 16;
5904 // op: size
5905 op = getUImmWithOffsetEncoding<5, 1>(MI, OpNo: 3, Fixups, STI);
5906 Value |= (op & 0x1f) << 11;
5907 // op: pos
5908 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5909 Value |= (op & 0x1f) << 6;
5910 break;
5911 }
5912 case Mips::INSV_MM: {
5913 // op: rt
5914 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5915 Value |= (op & 0x1f) << 21;
5916 // op: rs
5917 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5918 Value |= (op & 0x1f) << 16;
5919 break;
5920 }
5921 case Mips::EXTPDPV_MM:
5922 case Mips::EXTPV_MM:
5923 case Mips::EXTRV_RS_W_MM:
5924 case Mips::EXTRV_R_W_MM:
5925 case Mips::EXTRV_S_H_MM:
5926 case Mips::EXTRV_W_MM: {
5927 // op: rt
5928 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5929 Value |= (op & 0x1f) << 21;
5930 // op: rs
5931 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
5932 Value |= (op & 0x1f) << 16;
5933 // op: ac
5934 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5935 Value |= (op & 0x3) << 14;
5936 break;
5937 }
5938 case Mips::BGEZALC:
5939 case Mips::BGEZC:
5940 case Mips::BGEZC64:
5941 case Mips::BLTZALC:
5942 case Mips::BLTZC:
5943 case Mips::BLTZC64: {
5944 // op: rt
5945 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5946 Value |= (op & 0x1f) << 21;
5947 Value |= (op & 0x1f) << 16;
5948 // op: offset
5949 op = getBranchTargetOpValue(MI, OpNo: 1, Fixups, STI);
5950 Value |= (op & 0xffff);
5951 break;
5952 }
5953 case Mips::BGEZC_MMR6:
5954 case Mips::BLTZC_MMR6: {
5955 // op: rt
5956 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5957 Value |= (op & 0x1f) << 21;
5958 Value |= (op & 0x1f) << 16;
5959 // op: offset
5960 op = getBranchTargetOpValueLsl2MMR6(MI, OpNo: 1, Fixups, STI);
5961 Value |= (op & 0xffff);
5962 break;
5963 }
5964 case Mips::BGEZALC_MMR6:
5965 case Mips::BLTZALC_MMR6: {
5966 // op: rt
5967 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5968 Value |= (op & 0x1f) << 21;
5969 Value |= (op & 0x1f) << 16;
5970 // op: offset
5971 op = getBranchTargetOpValueMM(MI, OpNo: 1, Fixups, STI);
5972 Value |= (op & 0xffff);
5973 break;
5974 }
5975 case Mips::LWSP_MM:
5976 case Mips::SWSP_MM:
5977 case Mips::SWSP_MMR6: {
5978 // op: rt
5979 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5980 Value |= (op & 0x1f) << 5;
5981 // op: offset
5982 op = getScaledImmOpValue<2>(MI, OpNo: 2, Fixups, STI);
5983 Value |= (op & 0x1f);
5984 break;
5985 }
5986 case Mips::NOT16_MM: {
5987 // op: rt
5988 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
5989 Value |= (op & 0x7) << 3;
5990 // op: rs
5991 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
5992 Value |= (op & 0x7);
5993 break;
5994 }
5995 case Mips::LBU16_MM:
5996 case Mips::SB16_MM:
5997 case Mips::SB16_MMR6: {
5998 // op: rt
5999 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6000 Value |= (op & 0x7) << 7;
6001 // op: base
6002 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6003 Value |= (op & 0x7) << 4;
6004 // op: offset
6005 op = getScaledImmOpValue<0>(MI, OpNo: 2, Fixups, STI);
6006 Value |= (op & 0xf);
6007 break;
6008 }
6009 case Mips::LHU16_MM:
6010 case Mips::SH16_MM:
6011 case Mips::SH16_MMR6: {
6012 // op: rt
6013 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6014 Value |= (op & 0x7) << 7;
6015 // op: base
6016 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6017 Value |= (op & 0x7) << 4;
6018 // op: offset
6019 op = getScaledImmOpValue<1>(MI, OpNo: 2, Fixups, STI);
6020 Value |= (op & 0xf);
6021 break;
6022 }
6023 case Mips::LW16_MM:
6024 case Mips::SW16_MM:
6025 case Mips::SW16_MMR6: {
6026 // op: rt
6027 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6028 Value |= (op & 0x7) << 7;
6029 // op: base
6030 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6031 Value |= (op & 0x7) << 4;
6032 // op: offset
6033 op = getScaledImmOpValue<2>(MI, OpNo: 2, Fixups, STI);
6034 Value |= (op & 0xf);
6035 break;
6036 }
6037 case Mips::LWGP_MM: {
6038 // op: rt
6039 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6040 Value |= (op & 0x7) << 7;
6041 // op: offset
6042 op = getScaledImmOpValue<2>(MI, OpNo: 2, Fixups, STI);
6043 Value |= (op & 0x7f);
6044 break;
6045 }
6046 case Mips::NOT16_MMR6: {
6047 // op: rt
6048 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6049 Value |= (op & 0x7) << 7;
6050 // op: rs
6051 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6052 Value |= (op & 0x7) << 4;
6053 break;
6054 }
6055 case Mips::SC64_R6:
6056 case Mips::SCD_R6:
6057 case Mips::SCE:
6058 case Mips::SC_R6: {
6059 // op: rt
6060 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6061 Value |= (op & 0x1f) << 16;
6062 // op: base
6063 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
6064 Value |= (op & 0x1f) << 21;
6065 // op: offset
6066 op = getMachineOpValue(MI, MO: MI.getOperand(i: 3), Fixups, STI);
6067 Value |= (op & 0x1ff) << 7;
6068 break;
6069 }
6070 case Mips::SC:
6071 case Mips::SC64:
6072 case Mips::SCD: {
6073 // op: rt
6074 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6075 Value |= (op & 0x1f) << 16;
6076 // op: base
6077 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
6078 Value |= (op & 0x1f) << 21;
6079 // op: offset
6080 op = getMachineOpValue(MI, MO: MI.getOperand(i: 3), Fixups, STI);
6081 Value |= (op & 0xffff);
6082 break;
6083 }
6084 case Mips::CTC1:
6085 case Mips::DMTC1:
6086 case Mips::MTC1:
6087 case Mips::MTC1_D64: {
6088 // op: rt
6089 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6090 Value |= (op & 0x1f) << 16;
6091 // op: fs
6092 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6093 Value |= (op & 0x1f) << 11;
6094 break;
6095 }
6096 case Mips::DMTC0:
6097 case Mips::DMTC2:
6098 case Mips::DMTGC0:
6099 case Mips::MTC0:
6100 case Mips::MTC2:
6101 case Mips::MTGC0:
6102 case Mips::MTHGC0: {
6103 // op: rt
6104 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6105 Value |= (op & 0x1f) << 16;
6106 // op: rd
6107 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6108 Value |= (op & 0x1f) << 11;
6109 // op: sel
6110 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
6111 Value |= (op & 0x7);
6112 break;
6113 }
6114 case Mips::MFTR:
6115 case Mips::MTTR: {
6116 // op: rt
6117 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6118 Value |= (op & 0x1f) << 16;
6119 // op: rd
6120 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6121 Value |= (op & 0x1f) << 11;
6122 // op: u
6123 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
6124 Value |= (op & 0x1) << 5;
6125 // op: h
6126 op = getMachineOpValue(MI, MO: MI.getOperand(i: 4), Fixups, STI);
6127 Value |= (op & 0x1) << 4;
6128 // op: sel
6129 op = getMachineOpValue(MI, MO: MI.getOperand(i: 3), Fixups, STI);
6130 Value |= (op & 0x7);
6131 break;
6132 }
6133 case Mips::SCE_MM:
6134 case Mips::SC_MMR6: {
6135 // op: rt
6136 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6137 Value |= (op & 0x1f) << 21;
6138 // op: base
6139 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
6140 Value |= (op & 0x1f) << 16;
6141 // op: offset
6142 op = getMachineOpValue(MI, MO: MI.getOperand(i: 3), Fixups, STI);
6143 Value |= (op & 0x1ff);
6144 break;
6145 }
6146 case Mips::CTC1_MM:
6147 case Mips::MTC1_D64_MM:
6148 case Mips::MTC1_MM:
6149 case Mips::MTC1_MMR6: {
6150 // op: rt
6151 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6152 Value |= (op & 0x1f) << 21;
6153 // op: fs
6154 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6155 Value |= (op & 0x1f) << 16;
6156 break;
6157 }
6158 case Mips::CTC2_MM:
6159 case Mips::MTC2_MMR6:
6160 case Mips::MTHC2_MMR6: {
6161 // op: rt
6162 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6163 Value |= (op & 0x1f) << 21;
6164 // op: impl
6165 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6166 Value |= (op & 0x1f) << 16;
6167 break;
6168 }
6169 case Mips::MTC0_MM: {
6170 // op: rt
6171 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6172 Value |= (op & 0x1f) << 21;
6173 // op: rd
6174 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6175 Value |= (op & 0x1f) << 16;
6176 // op: sel
6177 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
6178 Value |= (op & 0x7) << 11;
6179 break;
6180 }
6181 case Mips::CMPU_EQ_QB_MM:
6182 case Mips::CMPU_LE_QB_MM:
6183 case Mips::CMPU_LT_QB_MM:
6184 case Mips::CMP_EQ_PH_MM:
6185 case Mips::CMP_LE_PH_MM:
6186 case Mips::CMP_LT_PH_MM: {
6187 // op: rt
6188 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6189 Value |= (op & 0x1f) << 21;
6190 // op: rs
6191 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6192 Value |= (op & 0x1f) << 16;
6193 break;
6194 }
6195 case Mips::BEQC_MMR6:
6196 case Mips::BGEC_MMR6:
6197 case Mips::BGEUC_MMR6:
6198 case Mips::BLTC_MMR6:
6199 case Mips::BLTUC_MMR6:
6200 case Mips::BNEC_MMR6: {
6201 // op: rt
6202 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6203 Value |= (op & 0x1f) << 21;
6204 // op: rs
6205 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6206 Value |= (op & 0x1f) << 16;
6207 // op: offset
6208 op = getBranchTargetOpValueLsl2MMR6(MI, OpNo: 2, Fixups, STI);
6209 Value |= (op & 0xffff);
6210 break;
6211 }
6212 case Mips::MTC0_MMR6:
6213 case Mips::MTGC0_MM:
6214 case Mips::MTHC0_MMR6:
6215 case Mips::MTHGC0_MM: {
6216 // op: rt
6217 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6218 Value |= (op & 0x1f) << 21;
6219 // op: rs
6220 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6221 Value |= (op & 0x1f) << 16;
6222 // op: sel
6223 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
6224 Value |= (op & 0x7) << 11;
6225 break;
6226 }
6227 case Mips::MTHC1_D32:
6228 case Mips::MTHC1_D64: {
6229 // op: rt
6230 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
6231 Value |= (op & 0x1f) << 16;
6232 // op: fs
6233 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6234 Value |= (op & 0x1f) << 11;
6235 break;
6236 }
6237 case Mips::SPLAT_B:
6238 case Mips::SPLAT_D:
6239 case Mips::SPLAT_H:
6240 case Mips::SPLAT_W: {
6241 // op: rt
6242 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
6243 Value |= (op & 0x1f) << 16;
6244 // op: ws
6245 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6246 Value |= (op & 0x1f) << 11;
6247 // op: wd
6248 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6249 Value |= (op & 0x1f) << 6;
6250 break;
6251 }
6252 case Mips::MTHC1_D32_MM:
6253 case Mips::MTHC1_D64_MM: {
6254 // op: rt
6255 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
6256 Value |= (op & 0x1f) << 21;
6257 // op: fs
6258 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6259 Value |= (op & 0x1f) << 16;
6260 break;
6261 }
6262 case Mips::DPAQX_SA_W_PH_MMR2:
6263 case Mips::DPAQX_S_W_PH_MMR2:
6264 case Mips::DPAQ_SA_L_W_MM:
6265 case Mips::DPAQ_S_W_PH_MM:
6266 case Mips::DPAU_H_QBL_MM:
6267 case Mips::DPAU_H_QBR_MM:
6268 case Mips::DPAX_W_PH_MMR2:
6269 case Mips::DPA_W_PH_MMR2:
6270 case Mips::DPSQX_SA_W_PH_MMR2:
6271 case Mips::DPSQX_S_W_PH_MMR2:
6272 case Mips::DPSQ_SA_L_W_MM:
6273 case Mips::DPSQ_S_W_PH_MM:
6274 case Mips::DPSU_H_QBL_MM:
6275 case Mips::DPSU_H_QBR_MM:
6276 case Mips::DPSX_W_PH_MMR2:
6277 case Mips::DPS_W_PH_MMR2:
6278 case Mips::MADDU_DSP_MM:
6279 case Mips::MADD_DSP_MM:
6280 case Mips::MAQ_SA_W_PHL_MM:
6281 case Mips::MAQ_SA_W_PHR_MM:
6282 case Mips::MAQ_S_W_PHL_MM:
6283 case Mips::MAQ_S_W_PHR_MM:
6284 case Mips::MSUBU_DSP_MM:
6285 case Mips::MSUB_DSP_MM:
6286 case Mips::MULSAQ_S_W_PH_MM:
6287 case Mips::MULSA_W_PH_MMR2:
6288 case Mips::MULTU_DSP_MM:
6289 case Mips::MULT_DSP_MM: {
6290 // op: rt
6291 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
6292 Value |= (op & 0x1f) << 21;
6293 // op: rs
6294 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6295 Value |= (op & 0x1f) << 16;
6296 // op: ac
6297 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6298 Value |= (op & 0x3) << 14;
6299 break;
6300 }
6301 case Mips::ADD_MM:
6302 case Mips::ADDu_MM:
6303 case Mips::AND_MM:
6304 case Mips::CMPGU_EQ_QB_MM:
6305 case Mips::CMPGU_LE_QB_MM:
6306 case Mips::CMPGU_LT_QB_MM:
6307 case Mips::MOVN_I_MM:
6308 case Mips::MOVZ_I_MM:
6309 case Mips::MUL_MM:
6310 case Mips::NOR_MM:
6311 case Mips::OR_MM:
6312 case Mips::SLT_MM:
6313 case Mips::SLTu_MM:
6314 case Mips::SUB_MM:
6315 case Mips::SUBu_MM:
6316 case Mips::XOR_MM: {
6317 // op: rt
6318 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
6319 Value |= (op & 0x1f) << 21;
6320 // op: rs
6321 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6322 Value |= (op & 0x1f) << 16;
6323 // op: rd
6324 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6325 Value |= (op & 0x1f) << 11;
6326 break;
6327 }
6328 case Mips::AND16_MM:
6329 case Mips::OR16_MM:
6330 case Mips::XOR16_MM: {
6331 // op: rt
6332 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
6333 Value |= (op & 0x7) << 3;
6334 // op: rs
6335 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6336 Value |= (op & 0x7);
6337 break;
6338 }
6339 case Mips::AND16_MMR6:
6340 case Mips::OR16_MMR6:
6341 case Mips::XOR16_MMR6: {
6342 // op: rt
6343 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
6344 Value |= (op & 0x7) << 7;
6345 // op: rs
6346 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6347 Value |= (op & 0x7) << 4;
6348 break;
6349 }
6350 case Mips::SLD_B:
6351 case Mips::SLD_D:
6352 case Mips::SLD_H:
6353 case Mips::SLD_W: {
6354 // op: rt
6355 op = getMachineOpValue(MI, MO: MI.getOperand(i: 3), Fixups, STI);
6356 Value |= (op & 0x1f) << 16;
6357 // op: ws
6358 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
6359 Value |= (op & 0x1f) << 11;
6360 // op: wd
6361 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6362 Value |= (op & 0x1f) << 6;
6363 break;
6364 }
6365 case Mips::MOVEP_MMR6: {
6366 // op: rt
6367 op = getMovePRegSingleOpValue(MI, OpNo: 3, Fixups, STI);
6368 Value |= (op & 0x7) << 4;
6369 // op: rs
6370 op = getMovePRegSingleOpValue(MI, OpNo: 2, Fixups, STI);
6371 Value |= (op & 0x4) << 1;
6372 Value |= (op & 0x3);
6373 break;
6374 }
6375 case Mips::MOVEP_MM: {
6376 // op: rt
6377 op = getMovePRegSingleOpValue(MI, OpNo: 3, Fixups, STI);
6378 Value |= (op & 0x7) << 4;
6379 // op: rs
6380 op = getMovePRegSingleOpValue(MI, OpNo: 2, Fixups, STI);
6381 Value |= (op & 0x7) << 1;
6382 break;
6383 }
6384 case Mips::LWM16_MM:
6385 case Mips::SWM16_MM: {
6386 // op: rt
6387 op = getRegisterListOpValue16(MI, OpNo: 0, Fixups, STI);
6388 Value |= (op & 0x3) << 4;
6389 // op: offset
6390 op = getOperandFromEndValue<1, 2>(MI, OpNo: 2, Fixups, STI);
6391 Value |= (op & 0xf);
6392 break;
6393 }
6394 case Mips::LWM16_MMR6:
6395 case Mips::SWM16_MMR6: {
6396 // op: rt
6397 op = getRegisterListOpValue16(MI, OpNo: 0, Fixups, STI);
6398 Value |= (op & 0x3) << 8;
6399 // op: offset
6400 op = getOperandFromEndValue<1, 2>(MI, OpNo: 2, Fixups, STI);
6401 Value |= (op & 0xf) << 4;
6402 break;
6403 }
6404 case Mips::JrcRx16:
6405 case Mips::JumpLinkReg16:
6406 case Mips::Mfhi16:
6407 case Mips::Mflo16:
6408 case Mips::SebRx16:
6409 case Mips::SehRx16: {
6410 // op: rx
6411 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6412 Value |= (op & 0x7) << 8;
6413 break;
6414 }
6415 case Mips::BeqzRxImm16:
6416 case Mips::BnezRxImm16: {
6417 // op: rx
6418 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6419 Value |= (op & 0x7) << 8;
6420 // op: imm8
6421 op = getBranchTargetOpValue(MI, OpNo: 1, Fixups, STI);
6422 Value |= (op & 0xff);
6423 break;
6424 }
6425 case Mips::CmpiRxImm16:
6426 case Mips::LiRxImm16:
6427 case Mips::LwRxPcTcp16:
6428 case Mips::SltiRxImm16:
6429 case Mips::SltiuRxImm16: {
6430 // op: rx
6431 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6432 Value |= (op & 0x7) << 8;
6433 // op: imm8
6434 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6435 Value |= (op & 0xff);
6436 break;
6437 }
6438 case Mips::AddiuRxRxImm16: {
6439 // op: rx
6440 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6441 Value |= (op & 0x7) << 8;
6442 // op: imm8
6443 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
6444 Value |= (op & 0xff);
6445 break;
6446 }
6447 case Mips::CmpRxRy16:
6448 case Mips::DivRxRy16:
6449 case Mips::DivuRxRy16:
6450 case Mips::NegRxRy16:
6451 case Mips::NotRxRy16:
6452 case Mips::SltRxRy16:
6453 case Mips::SltuRxRy16: {
6454 // op: rx
6455 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6456 Value |= (op & 0x7) << 8;
6457 // op: ry
6458 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6459 Value |= (op & 0x7) << 5;
6460 break;
6461 }
6462 case Mips::AndRxRxRy16:
6463 case Mips::OrRxRxRy16:
6464 case Mips::SllvRxRy16:
6465 case Mips::SravRxRy16:
6466 case Mips::SrlvRxRy16:
6467 case Mips::XorRxRxRy16: {
6468 // op: rx
6469 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6470 Value |= (op & 0x7) << 8;
6471 // op: ry
6472 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
6473 Value |= (op & 0x7) << 5;
6474 break;
6475 }
6476 case Mips::AdduRxRyRz16:
6477 case Mips::SubuRxRyRz16: {
6478 // op: rx
6479 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6480 Value |= (op & 0x7) << 8;
6481 // op: ry
6482 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
6483 Value |= (op & 0x7) << 5;
6484 // op: rz
6485 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6486 Value |= (op & 0x7) << 2;
6487 break;
6488 }
6489 case Mips::MoveR3216: {
6490 // op: ry
6491 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6492 Value |= (op & 0xf) << 4;
6493 // op: r32
6494 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6495 Value |= (op & 0xf);
6496 break;
6497 }
6498 case Mips::LDI_B:
6499 case Mips::LDI_D:
6500 case Mips::LDI_H:
6501 case Mips::LDI_W: {
6502 // op: s10
6503 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6504 Value |= (op & 0x3ff) << 11;
6505 // op: wd
6506 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6507 Value |= (op & 0x1f) << 6;
6508 break;
6509 }
6510 case Mips::SllX16:
6511 case Mips::SraX16:
6512 case Mips::SrlX16: {
6513 // op: sa6
6514 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
6515 Value |= (op & 0x1f) << 22;
6516 Value |= (op & 0x20) << 16;
6517 // op: rx
6518 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6519 Value |= (op & 0x7) << 8;
6520 // op: ry
6521 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6522 Value |= (op & 0x7) << 5;
6523 break;
6524 }
6525 case Mips::SHILO_MM: {
6526 // op: shift
6527 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6528 Value |= (op & 0x3f) << 16;
6529 // op: ac
6530 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6531 Value |= (op & 0x3) << 14;
6532 break;
6533 }
6534 case Mips::SYNC_MM:
6535 case Mips::SYNC_MMR6: {
6536 // op: stype
6537 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6538 Value |= (op & 0x1f) << 16;
6539 break;
6540 }
6541 case Mips::SYNC: {
6542 // op: stype
6543 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6544 Value |= (op & 0x1f) << 6;
6545 break;
6546 }
6547 case Mips::J:
6548 case Mips::JAL:
6549 case Mips::JALX:
6550 case Mips::JALX_MM: {
6551 // op: target
6552 op = getJumpTargetOpValue(MI, OpNo: 0, Fixups, STI);
6553 Value |= (op & 0x3ffffff);
6554 break;
6555 }
6556 case Mips::JALS_MM:
6557 case Mips::JAL_MM:
6558 case Mips::J_MM: {
6559 // op: target
6560 op = getJumpTargetOpValueMM(MI, OpNo: 0, Fixups, STI);
6561 Value |= (op & 0x3ffffff);
6562 break;
6563 }
6564 case Mips::ANDI_B:
6565 case Mips::NORI_B:
6566 case Mips::ORI_B:
6567 case Mips::SHF_B:
6568 case Mips::SHF_H:
6569 case Mips::SHF_W:
6570 case Mips::XORI_B: {
6571 // op: u8
6572 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
6573 Value |= (op & 0xff) << 16;
6574 // op: ws
6575 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6576 Value |= (op & 0x1f) << 11;
6577 // op: wd
6578 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6579 Value |= (op & 0x1f) << 6;
6580 break;
6581 }
6582 case Mips::BMNZI_B:
6583 case Mips::BMZI_B:
6584 case Mips::BSELI_B: {
6585 // op: u8
6586 op = getMachineOpValue(MI, MO: MI.getOperand(i: 3), Fixups, STI);
6587 Value |= (op & 0xff) << 16;
6588 // op: ws
6589 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
6590 Value |= (op & 0x1f) << 11;
6591 // op: wd
6592 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6593 Value |= (op & 0x1f) << 6;
6594 break;
6595 }
6596 case Mips::FCLASS_D:
6597 case Mips::FCLASS_W:
6598 case Mips::FEXUPL_D:
6599 case Mips::FEXUPL_W:
6600 case Mips::FEXUPR_D:
6601 case Mips::FEXUPR_W:
6602 case Mips::FFINT_S_D:
6603 case Mips::FFINT_S_W:
6604 case Mips::FFINT_U_D:
6605 case Mips::FFINT_U_W:
6606 case Mips::FFQL_D:
6607 case Mips::FFQL_W:
6608 case Mips::FFQR_D:
6609 case Mips::FFQR_W:
6610 case Mips::FLOG2_D:
6611 case Mips::FLOG2_W:
6612 case Mips::FRCP_D:
6613 case Mips::FRCP_W:
6614 case Mips::FRINT_D:
6615 case Mips::FRINT_W:
6616 case Mips::FRSQRT_D:
6617 case Mips::FRSQRT_W:
6618 case Mips::FSQRT_D:
6619 case Mips::FSQRT_W:
6620 case Mips::FTINT_S_D:
6621 case Mips::FTINT_S_W:
6622 case Mips::FTINT_U_D:
6623 case Mips::FTINT_U_W:
6624 case Mips::FTRUNC_S_D:
6625 case Mips::FTRUNC_S_W:
6626 case Mips::FTRUNC_U_D:
6627 case Mips::FTRUNC_U_W:
6628 case Mips::MOVE_V:
6629 case Mips::NLOC_B:
6630 case Mips::NLOC_D:
6631 case Mips::NLOC_H:
6632 case Mips::NLOC_W:
6633 case Mips::NLZC_B:
6634 case Mips::NLZC_D:
6635 case Mips::NLZC_H:
6636 case Mips::NLZC_W:
6637 case Mips::PCNT_B:
6638 case Mips::PCNT_D:
6639 case Mips::PCNT_H:
6640 case Mips::PCNT_W: {
6641 // op: ws
6642 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6643 Value |= (op & 0x1f) << 11;
6644 // op: wd
6645 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6646 Value |= (op & 0x1f) << 6;
6647 break;
6648 }
6649 case Mips::BCLRI_W:
6650 case Mips::BNEGI_W:
6651 case Mips::BSETI_W:
6652 case Mips::SAT_S_W:
6653 case Mips::SAT_U_W:
6654 case Mips::SLLI_W:
6655 case Mips::SRAI_W:
6656 case Mips::SRARI_W:
6657 case Mips::SRLI_W:
6658 case Mips::SRLRI_W: {
6659 // op: ws
6660 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6661 Value |= (op & 0x1f) << 11;
6662 // op: wd
6663 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6664 Value |= (op & 0x1f) << 6;
6665 // op: m
6666 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
6667 Value |= (op & 0x1f) << 16;
6668 break;
6669 }
6670 case Mips::BCLRI_D:
6671 case Mips::BNEGI_D:
6672 case Mips::BSETI_D:
6673 case Mips::SAT_S_D:
6674 case Mips::SAT_U_D:
6675 case Mips::SLLI_D:
6676 case Mips::SRAI_D:
6677 case Mips::SRARI_D:
6678 case Mips::SRLI_D:
6679 case Mips::SRLRI_D: {
6680 // op: ws
6681 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6682 Value |= (op & 0x1f) << 11;
6683 // op: wd
6684 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6685 Value |= (op & 0x1f) << 6;
6686 // op: m
6687 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
6688 Value |= (op & 0x3f) << 16;
6689 break;
6690 }
6691 case Mips::BCLRI_B:
6692 case Mips::BNEGI_B:
6693 case Mips::BSETI_B:
6694 case Mips::SAT_S_B:
6695 case Mips::SAT_U_B:
6696 case Mips::SLLI_B:
6697 case Mips::SRAI_B:
6698 case Mips::SRARI_B:
6699 case Mips::SRLI_B:
6700 case Mips::SRLRI_B: {
6701 // op: ws
6702 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6703 Value |= (op & 0x1f) << 11;
6704 // op: wd
6705 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6706 Value |= (op & 0x1f) << 6;
6707 // op: m
6708 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
6709 Value |= (op & 0x7) << 16;
6710 break;
6711 }
6712 case Mips::BCLRI_H:
6713 case Mips::BNEGI_H:
6714 case Mips::BSETI_H:
6715 case Mips::SAT_S_H:
6716 case Mips::SAT_U_H:
6717 case Mips::SLLI_H:
6718 case Mips::SRAI_H:
6719 case Mips::SRARI_H:
6720 case Mips::SRLI_H:
6721 case Mips::SRLRI_H: {
6722 // op: ws
6723 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
6724 Value |= (op & 0x1f) << 11;
6725 // op: wd
6726 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6727 Value |= (op & 0x1f) << 6;
6728 // op: m
6729 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
6730 Value |= (op & 0xf) << 16;
6731 break;
6732 }
6733 case Mips::BINSLI_W:
6734 case Mips::BINSRI_W: {
6735 // op: ws
6736 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
6737 Value |= (op & 0x1f) << 11;
6738 // op: wd
6739 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6740 Value |= (op & 0x1f) << 6;
6741 // op: m
6742 op = getMachineOpValue(MI, MO: MI.getOperand(i: 3), Fixups, STI);
6743 Value |= (op & 0x1f) << 16;
6744 break;
6745 }
6746 case Mips::BINSLI_D:
6747 case Mips::BINSRI_D: {
6748 // op: ws
6749 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
6750 Value |= (op & 0x1f) << 11;
6751 // op: wd
6752 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6753 Value |= (op & 0x1f) << 6;
6754 // op: m
6755 op = getMachineOpValue(MI, MO: MI.getOperand(i: 3), Fixups, STI);
6756 Value |= (op & 0x3f) << 16;
6757 break;
6758 }
6759 case Mips::BINSLI_B:
6760 case Mips::BINSRI_B: {
6761 // op: ws
6762 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
6763 Value |= (op & 0x1f) << 11;
6764 // op: wd
6765 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6766 Value |= (op & 0x1f) << 6;
6767 // op: m
6768 op = getMachineOpValue(MI, MO: MI.getOperand(i: 3), Fixups, STI);
6769 Value |= (op & 0x7) << 16;
6770 break;
6771 }
6772 case Mips::BINSLI_H:
6773 case Mips::BINSRI_H: {
6774 // op: ws
6775 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
6776 Value |= (op & 0x1f) << 11;
6777 // op: wd
6778 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
6779 Value |= (op & 0x1f) << 6;
6780 // op: m
6781 op = getMachineOpValue(MI, MO: MI.getOperand(i: 3), Fixups, STI);
6782 Value |= (op & 0xf) << 16;
6783 break;
6784 }
6785 case Mips::ADDS_A_B:
6786 case Mips::ADDS_A_D:
6787 case Mips::ADDS_A_H:
6788 case Mips::ADDS_A_W:
6789 case Mips::ADDS_S_B:
6790 case Mips::ADDS_S_D:
6791 case Mips::ADDS_S_H:
6792 case Mips::ADDS_S_W:
6793 case Mips::ADDS_U_B:
6794 case Mips::ADDS_U_D:
6795 case Mips::ADDS_U_H:
6796 case Mips::ADDS_U_W:
6797 case Mips::ADDV_B:
6798 case Mips::ADDV_D:
6799 case Mips::ADDV_H:
6800 case Mips::ADDV_W:
6801 case Mips::ADD_A_B:
6802 case Mips::ADD_A_D:
6803 case Mips::ADD_A_H:
6804 case Mips::ADD_A_W:
6805 case Mips::AND_V:
6806 case Mips::ASUB_S_B:
6807 case Mips::ASUB_S_D:
6808 case Mips::ASUB_S_H:
6809 case Mips::ASUB_S_W:
6810 case Mips::ASUB_U_B:
6811 case Mips::ASUB_U_D:
6812 case Mips::ASUB_U_H:
6813 case Mips::ASUB_U_W:
6814 case Mips::AVER_S_B:
6815 case Mips::AVER_S_D:
6816 case Mips::AVER_S_H:
6817 case Mips::AVER_S_W:
6818 case Mips::AVER_U_B:
6819 case Mips::AVER_U_D:
6820 case Mips::AVER_U_H:
6821 case Mips::AVER_U_W:
6822 case Mips::AVE_S_B:
6823 case Mips::AVE_S_D:
6824 case Mips::AVE_S_H:
6825 case Mips::AVE_S_W:
6826 case Mips::AVE_U_B:
6827 case Mips::AVE_U_D:
6828 case Mips::AVE_U_H:
6829 case Mips::AVE_U_W:
6830 case Mips::BCLR_B:
6831 case Mips::BCLR_D:
6832 case Mips::BCLR_H:
6833 case Mips::BCLR_W:
6834 case Mips::BNEG_B:
6835 case Mips::BNEG_D:
6836 case Mips::BNEG_H:
6837 case Mips::BNEG_W:
6838 case Mips::BSET_B:
6839 case Mips::BSET_D:
6840 case Mips::BSET_H:
6841 case Mips::BSET_W:
6842 case Mips::CEQ_B:
6843 case Mips::CEQ_D:
6844 case Mips::CEQ_H:
6845 case Mips::CEQ_W:
6846 case Mips::CLE_S_B:
6847 case Mips::CLE_S_D:
6848 case Mips::CLE_S_H:
6849 case Mips::CLE_S_W:
6850 case Mips::CLE_U_B:
6851 case Mips::CLE_U_D:
6852 case Mips::CLE_U_H:
6853 case Mips::CLE_U_W:
6854 case Mips::CLT_S_B:
6855 case Mips::CLT_S_D:
6856 case Mips::CLT_S_H:
6857 case Mips::CLT_S_W:
6858 case Mips::CLT_U_B:
6859 case Mips::CLT_U_D:
6860 case Mips::CLT_U_H:
6861 case Mips::CLT_U_W:
6862 case Mips::DIV_S_B:
6863 case Mips::DIV_S_D:
6864 case Mips::DIV_S_H:
6865 case Mips::DIV_S_W:
6866 case Mips::DIV_U_B:
6867 case Mips::DIV_U_D:
6868 case Mips::DIV_U_H:
6869 case Mips::DIV_U_W:
6870 case Mips::DOTP_S_D:
6871 case Mips::DOTP_S_H:
6872 case Mips::DOTP_S_W:
6873 case Mips::DOTP_U_D:
6874 case Mips::DOTP_U_H:
6875 case Mips::DOTP_U_W:
6876 case Mips::FADD_D:
6877 case Mips::FADD_W:
6878 case Mips::FCAF_D:
6879 case Mips::FCAF_W:
6880 case Mips::FCEQ_D:
6881 case Mips::FCEQ_W:
6882 case Mips::FCLE_D:
6883 case Mips::FCLE_W:
6884 case Mips::FCLT_D:
6885 case Mips::FCLT_W:
6886 case Mips::FCNE_D:
6887 case Mips::FCNE_W:
6888 case Mips::FCOR_D:
6889 case Mips::FCOR_W:
6890 case Mips::FCUEQ_D:
6891 case Mips::FCUEQ_W:
6892 case Mips::FCULE_D:
6893 case Mips::FCULE_W:
6894 case Mips::FCULT_D:
6895 case Mips::FCULT_W:
6896 case Mips::FCUNE_D:
6897 case Mips::FCUNE_W:
6898 case Mips::FCUN_D:
6899 case Mips::FCUN_W:
6900 case Mips::FDIV_D:
6901 case Mips::FDIV_W:
6902 case Mips::FEXDO_H:
6903 case Mips::FEXDO_W:
6904 case Mips::FEXP2_D:
6905 case Mips::FEXP2_W:
6906 case Mips::FMAX_A_D:
6907 case Mips::FMAX_A_W:
6908 case Mips::FMAX_D:
6909 case Mips::FMAX_W:
6910 case Mips::FMIN_A_D:
6911 case Mips::FMIN_A_W:
6912 case Mips::FMIN_D:
6913 case Mips::FMIN_W:
6914 case Mips::FMUL_D:
6915 case Mips::FMUL_W:
6916 case Mips::FSAF_D:
6917 case Mips::FSAF_W:
6918 case Mips::FSEQ_D:
6919 case Mips::FSEQ_W:
6920 case Mips::FSLE_D:
6921 case Mips::FSLE_W:
6922 case Mips::FSLT_D:
6923 case Mips::FSLT_W:
6924 case Mips::FSNE_D:
6925 case Mips::FSNE_W:
6926 case Mips::FSOR_D:
6927 case Mips::FSOR_W:
6928 case Mips::FSUB_D:
6929 case Mips::FSUB_W:
6930 case Mips::FSUEQ_D:
6931 case Mips::FSUEQ_W:
6932 case Mips::FSULE_D:
6933 case Mips::FSULE_W:
6934 case Mips::FSULT_D:
6935 case Mips::FSULT_W:
6936 case Mips::FSUNE_D:
6937 case Mips::FSUNE_W:
6938 case Mips::FSUN_D:
6939 case Mips::FSUN_W:
6940 case Mips::FTQ_H:
6941 case Mips::FTQ_W:
6942 case Mips::HADD_S_D:
6943 case Mips::HADD_S_H:
6944 case Mips::HADD_S_W:
6945 case Mips::HADD_U_D:
6946 case Mips::HADD_U_H:
6947 case Mips::HADD_U_W:
6948 case Mips::HSUB_S_D:
6949 case Mips::HSUB_S_H:
6950 case Mips::HSUB_S_W:
6951 case Mips::HSUB_U_D:
6952 case Mips::HSUB_U_H:
6953 case Mips::HSUB_U_W:
6954 case Mips::ILVEV_B:
6955 case Mips::ILVEV_D:
6956 case Mips::ILVEV_H:
6957 case Mips::ILVEV_W:
6958 case Mips::ILVL_B:
6959 case Mips::ILVL_D:
6960 case Mips::ILVL_H:
6961 case Mips::ILVL_W:
6962 case Mips::ILVOD_B:
6963 case Mips::ILVOD_D:
6964 case Mips::ILVOD_H:
6965 case Mips::ILVOD_W:
6966 case Mips::ILVR_B:
6967 case Mips::ILVR_D:
6968 case Mips::ILVR_H:
6969 case Mips::ILVR_W:
6970 case Mips::MAX_A_B:
6971 case Mips::MAX_A_D:
6972 case Mips::MAX_A_H:
6973 case Mips::MAX_A_W:
6974 case Mips::MAX_S_B:
6975 case Mips::MAX_S_D:
6976 case Mips::MAX_S_H:
6977 case Mips::MAX_S_W:
6978 case Mips::MAX_U_B:
6979 case Mips::MAX_U_D:
6980 case Mips::MAX_U_H:
6981 case Mips::MAX_U_W:
6982 case Mips::MIN_A_B:
6983 case Mips::MIN_A_D:
6984 case Mips::MIN_A_H:
6985 case Mips::MIN_A_W:
6986 case Mips::MIN_S_B:
6987 case Mips::MIN_S_D:
6988 case Mips::MIN_S_H:
6989 case Mips::MIN_S_W:
6990 case Mips::MIN_U_B:
6991 case Mips::MIN_U_D:
6992 case Mips::MIN_U_H:
6993 case Mips::MIN_U_W:
6994 case Mips::MOD_S_B:
6995 case Mips::MOD_S_D:
6996 case Mips::MOD_S_H:
6997 case Mips::MOD_S_W:
6998 case Mips::MOD_U_B:
6999 case Mips::MOD_U_D:
7000 case Mips::MOD_U_H:
7001 case Mips::MOD_U_W:
7002 case Mips::MULR_Q_H:
7003 case Mips::MULR_Q_W:
7004 case Mips::MULV_B:
7005 case Mips::MULV_D:
7006 case Mips::MULV_H:
7007 case Mips::MULV_W:
7008 case Mips::MUL_Q_H:
7009 case Mips::MUL_Q_W:
7010 case Mips::NOR_V:
7011 case Mips::OR_V:
7012 case Mips::PCKEV_B:
7013 case Mips::PCKEV_D:
7014 case Mips::PCKEV_H:
7015 case Mips::PCKEV_W:
7016 case Mips::PCKOD_B:
7017 case Mips::PCKOD_D:
7018 case Mips::PCKOD_H:
7019 case Mips::PCKOD_W:
7020 case Mips::SLL_B:
7021 case Mips::SLL_D:
7022 case Mips::SLL_H:
7023 case Mips::SLL_W:
7024 case Mips::SRAR_B:
7025 case Mips::SRAR_D:
7026 case Mips::SRAR_H:
7027 case Mips::SRAR_W:
7028 case Mips::SRA_B:
7029 case Mips::SRA_D:
7030 case Mips::SRA_H:
7031 case Mips::SRA_W:
7032 case Mips::SRLR_B:
7033 case Mips::SRLR_D:
7034 case Mips::SRLR_H:
7035 case Mips::SRLR_W:
7036 case Mips::SRL_B:
7037 case Mips::SRL_D:
7038 case Mips::SRL_H:
7039 case Mips::SRL_W:
7040 case Mips::SUBSUS_U_B:
7041 case Mips::SUBSUS_U_D:
7042 case Mips::SUBSUS_U_H:
7043 case Mips::SUBSUS_U_W:
7044 case Mips::SUBSUU_S_B:
7045 case Mips::SUBSUU_S_D:
7046 case Mips::SUBSUU_S_H:
7047 case Mips::SUBSUU_S_W:
7048 case Mips::SUBS_S_B:
7049 case Mips::SUBS_S_D:
7050 case Mips::SUBS_S_H:
7051 case Mips::SUBS_S_W:
7052 case Mips::SUBS_U_B:
7053 case Mips::SUBS_U_D:
7054 case Mips::SUBS_U_H:
7055 case Mips::SUBS_U_W:
7056 case Mips::SUBV_B:
7057 case Mips::SUBV_D:
7058 case Mips::SUBV_H:
7059 case Mips::SUBV_W:
7060 case Mips::XOR_V: {
7061 // op: wt
7062 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
7063 Value |= (op & 0x1f) << 16;
7064 // op: ws
7065 op = getMachineOpValue(MI, MO: MI.getOperand(i: 1), Fixups, STI);
7066 Value |= (op & 0x1f) << 11;
7067 // op: wd
7068 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
7069 Value |= (op & 0x1f) << 6;
7070 break;
7071 }
7072 case Mips::BINSL_B:
7073 case Mips::BINSL_D:
7074 case Mips::BINSL_H:
7075 case Mips::BINSL_W:
7076 case Mips::BINSR_B:
7077 case Mips::BINSR_D:
7078 case Mips::BINSR_H:
7079 case Mips::BINSR_W:
7080 case Mips::BMNZ_V:
7081 case Mips::BMZ_V:
7082 case Mips::BSEL_V:
7083 case Mips::DPADD_S_D:
7084 case Mips::DPADD_S_H:
7085 case Mips::DPADD_S_W:
7086 case Mips::DPADD_U_D:
7087 case Mips::DPADD_U_H:
7088 case Mips::DPADD_U_W:
7089 case Mips::DPSUB_S_D:
7090 case Mips::DPSUB_S_H:
7091 case Mips::DPSUB_S_W:
7092 case Mips::DPSUB_U_D:
7093 case Mips::DPSUB_U_H:
7094 case Mips::DPSUB_U_W:
7095 case Mips::FMADD_D:
7096 case Mips::FMADD_W:
7097 case Mips::FMSUB_D:
7098 case Mips::FMSUB_W:
7099 case Mips::MADDR_Q_H:
7100 case Mips::MADDR_Q_W:
7101 case Mips::MADDV_B:
7102 case Mips::MADDV_D:
7103 case Mips::MADDV_H:
7104 case Mips::MADDV_W:
7105 case Mips::MADD_Q_H:
7106 case Mips::MADD_Q_W:
7107 case Mips::MSUBR_Q_H:
7108 case Mips::MSUBR_Q_W:
7109 case Mips::MSUBV_B:
7110 case Mips::MSUBV_D:
7111 case Mips::MSUBV_H:
7112 case Mips::MSUBV_W:
7113 case Mips::MSUB_Q_H:
7114 case Mips::MSUB_Q_W:
7115 case Mips::VSHF_B:
7116 case Mips::VSHF_D:
7117 case Mips::VSHF_H:
7118 case Mips::VSHF_W: {
7119 // op: wt
7120 op = getMachineOpValue(MI, MO: MI.getOperand(i: 3), Fixups, STI);
7121 Value |= (op & 0x1f) << 16;
7122 // op: ws
7123 op = getMachineOpValue(MI, MO: MI.getOperand(i: 2), Fixups, STI);
7124 Value |= (op & 0x1f) << 11;
7125 // op: wd
7126 op = getMachineOpValue(MI, MO: MI.getOperand(i: 0), Fixups, STI);
7127 Value |= (op & 0x1f) << 6;
7128 break;
7129 }
7130 default:
7131 reportUnsupportedInst(Inst: MI);
7132 }
7133 return Value;
7134}
7135
7136#ifdef GET_OPERAND_BIT_OFFSET
7137#undef GET_OPERAND_BIT_OFFSET
7138
7139uint32_t MipsMCCodeEmitter::getOperandBitOffset(const MCInst &MI,
7140 unsigned OpNum,
7141 const MCSubtargetInfo &STI) const {
7142 switch (MI.getOpcode()) {
7143 case Mips::Break16:
7144 case Mips::DERET:
7145 case Mips::DERET_MM:
7146 case Mips::DERET_MMR6:
7147 case Mips::EHB:
7148 case Mips::EHB_MM:
7149 case Mips::EHB_MMR6:
7150 case Mips::ERET:
7151 case Mips::ERETNC:
7152 case Mips::ERETNC_MMR6:
7153 case Mips::ERET_MM:
7154 case Mips::ERET_MMR6:
7155 case Mips::JrRa16:
7156 case Mips::JrcRa16:
7157 case Mips::NAL:
7158 case Mips::PAUSE:
7159 case Mips::PAUSE_MM:
7160 case Mips::PAUSE_MMR6:
7161 case Mips::Restore16:
7162 case Mips::RestoreX16:
7163 case Mips::SSNOP:
7164 case Mips::SSNOP_MM:
7165 case Mips::SSNOP_MMR6:
7166 case Mips::Save16:
7167 case Mips::SaveX16:
7168 case Mips::TLBGINV:
7169 case Mips::TLBGINVF:
7170 case Mips::TLBGINVF_MM:
7171 case Mips::TLBGINV_MM:
7172 case Mips::TLBGP:
7173 case Mips::TLBGP_MM:
7174 case Mips::TLBGR:
7175 case Mips::TLBGR_MM:
7176 case Mips::TLBGWI:
7177 case Mips::TLBGWI_MM:
7178 case Mips::TLBGWR:
7179 case Mips::TLBGWR_MM:
7180 case Mips::TLBINV:
7181 case Mips::TLBINVF:
7182 case Mips::TLBINVF_MMR6:
7183 case Mips::TLBINV_MMR6:
7184 case Mips::TLBP:
7185 case Mips::TLBP_MM:
7186 case Mips::TLBR:
7187 case Mips::TLBR_MM:
7188 case Mips::TLBWI:
7189 case Mips::TLBWI_MM:
7190 case Mips::TLBWR:
7191 case Mips::TLBWR_MM:
7192 case Mips::WAIT: {
7193 break;
7194 }
7195 case Mips::DPAQX_SA_W_PH:
7196 case Mips::DPAQX_S_W_PH:
7197 case Mips::DPAQ_SA_L_W:
7198 case Mips::DPAQ_S_W_PH:
7199 case Mips::DPAU_H_QBL:
7200 case Mips::DPAU_H_QBR:
7201 case Mips::DPAX_W_PH:
7202 case Mips::DPA_W_PH:
7203 case Mips::DPSQX_SA_W_PH:
7204 case Mips::DPSQX_S_W_PH:
7205 case Mips::DPSQ_SA_L_W:
7206 case Mips::DPSQ_S_W_PH:
7207 case Mips::DPSU_H_QBL:
7208 case Mips::DPSU_H_QBR:
7209 case Mips::DPSX_W_PH:
7210 case Mips::DPS_W_PH:
7211 case Mips::MADDU_DSP:
7212 case Mips::MADD_DSP:
7213 case Mips::MAQ_SA_W_PHL:
7214 case Mips::MAQ_SA_W_PHR:
7215 case Mips::MAQ_S_W_PHL:
7216 case Mips::MAQ_S_W_PHR:
7217 case Mips::MSUBU_DSP:
7218 case Mips::MSUB_DSP:
7219 case Mips::MULSAQ_S_W_PH:
7220 case Mips::MULSA_W_PH:
7221 case Mips::MULTU_DSP:
7222 case Mips::MULT_DSP: {
7223 switch (OpNum) {
7224 case 0:
7225 // op: ac
7226 return 11;
7227 case 1:
7228 // op: rs
7229 return 21;
7230 case 2:
7231 // op: rt
7232 return 16;
7233 }
7234 break;
7235 }
7236 case Mips::MTHLIP:
7237 case Mips::SHILOV: {
7238 switch (OpNum) {
7239 case 0:
7240 // op: ac
7241 return 11;
7242 case 1:
7243 // op: rs
7244 return 21;
7245 }
7246 break;
7247 }
7248 case Mips::SHILO: {
7249 switch (OpNum) {
7250 case 0:
7251 // op: ac
7252 return 11;
7253 case 1:
7254 // op: shift
7255 return 20;
7256 }
7257 break;
7258 }
7259 case Mips::SYNCI_MM:
7260 case Mips::SYNCI_MMR6: {
7261 switch (OpNum) {
7262 case 0:
7263 // op: base
7264 return 16;
7265 case 1:
7266 // op: offset
7267 return 0;
7268 }
7269 break;
7270 }
7271 case Mips::SYNCI: {
7272 switch (OpNum) {
7273 case 0:
7274 // op: base
7275 return 21;
7276 case 1:
7277 // op: offset
7278 return 0;
7279 }
7280 break;
7281 }
7282 case Mips::CACHEE:
7283 case Mips::PREFE: {
7284 switch (OpNum) {
7285 case 0:
7286 // op: base
7287 return 21;
7288 case 1:
7289 // op: offset
7290 return 7;
7291 case 2:
7292 // op: hint
7293 return 16;
7294 }
7295 break;
7296 }
7297 case Mips::BREAK16_MM:
7298 case Mips::SDBBP16_MM:
7299 case Mips::SIGRIE: {
7300 switch (OpNum) {
7301 case 0:
7302 // op: code_
7303 return 0;
7304 }
7305 break;
7306 }
7307 case Mips::HYPCALL: {
7308 switch (OpNum) {
7309 case 0:
7310 // op: code_
7311 return 11;
7312 }
7313 break;
7314 }
7315 case Mips::HYPCALL_MM:
7316 case Mips::SDBBP_MM:
7317 case Mips::SDBBP_MMR6:
7318 case Mips::SYSCALL_MM:
7319 case Mips::WAIT_MM:
7320 case Mips::WAIT_MMR6: {
7321 switch (OpNum) {
7322 case 0:
7323 // op: code_
7324 return 16;
7325 }
7326 break;
7327 }
7328 case Mips::BREAK16_MMR6:
7329 case Mips::SDBBP:
7330 case Mips::SDBBP16_MMR6:
7331 case Mips::SDBBP_R6:
7332 case Mips::SIGRIE_MMR6:
7333 case Mips::SYSCALL: {
7334 switch (OpNum) {
7335 case 0:
7336 // op: code_
7337 return 6;
7338 }
7339 break;
7340 }
7341 case Mips::BREAK:
7342 case Mips::BREAK_MM:
7343 case Mips::BREAK_MMR6: {
7344 switch (OpNum) {
7345 case 0:
7346 // op: code_1
7347 return 16;
7348 case 1:
7349 // op: code_2
7350 return 6;
7351 }
7352 break;
7353 }
7354 case Mips::BC2EQZ:
7355 case Mips::BC2NEZ: {
7356 switch (OpNum) {
7357 case 0:
7358 // op: ct
7359 return 16;
7360 case 1:
7361 // op: offset
7362 return 0;
7363 }
7364 break;
7365 }
7366 case Mips::BC1F:
7367 case Mips::BC1FL:
7368 case Mips::BC1F_MM:
7369 case Mips::BC1T:
7370 case Mips::BC1TL:
7371 case Mips::BC1T_MM: {
7372 switch (OpNum) {
7373 case 0:
7374 // op: fcc
7375 return 18;
7376 case 1:
7377 // op: offset
7378 return 0;
7379 }
7380 break;
7381 }
7382 case Mips::LUXC1_MM:
7383 case Mips::LWXC1_MM: {
7384 switch (OpNum) {
7385 case 0:
7386 // op: fd
7387 return 11;
7388 case 1:
7389 // op: base
7390 return 16;
7391 case 2:
7392 // op: index
7393 return 21;
7394 }
7395 break;
7396 }
7397 case Mips::MOVN_I_D32_MM:
7398 case Mips::MOVN_I_S_MM:
7399 case Mips::MOVZ_I_D32_MM:
7400 case Mips::MOVZ_I_S_MM: {
7401 switch (OpNum) {
7402 case 0:
7403 // op: fd
7404 return 11;
7405 case 1:
7406 // op: fs
7407 return 16;
7408 case 2:
7409 // op: rt
7410 return 21;
7411 }
7412 break;
7413 }
7414 case Mips::MOVF_D32_MM:
7415 case Mips::MOVF_S_MM:
7416 case Mips::MOVT_D32_MM:
7417 case Mips::MOVT_S_MM: {
7418 switch (OpNum) {
7419 case 0:
7420 // op: fd
7421 return 21;
7422 case 1:
7423 // op: fs
7424 return 16;
7425 case 2:
7426 // op: fcc
7427 return 13;
7428 }
7429 break;
7430 }
7431 case Mips::CEIL_W_MM:
7432 case Mips::CEIL_W_S_MM:
7433 case Mips::CVT_D32_S_MM:
7434 case Mips::CVT_D32_W_MM:
7435 case Mips::CVT_D64_S_MM:
7436 case Mips::CVT_D64_W_MM:
7437 case Mips::CVT_L_D64_MM:
7438 case Mips::CVT_L_S_MM:
7439 case Mips::CVT_S_D32_MM:
7440 case Mips::CVT_S_D64_MM:
7441 case Mips::CVT_S_W_MM:
7442 case Mips::CVT_W_D32_MM:
7443 case Mips::CVT_W_D64_MM:
7444 case Mips::CVT_W_S_MM:
7445 case Mips::FABS_D32_MM:
7446 case Mips::FABS_D64_MM:
7447 case Mips::FABS_S_MM:
7448 case Mips::FLOOR_W_MM:
7449 case Mips::FLOOR_W_S_MM:
7450 case Mips::FMOV_D32_MM:
7451 case Mips::FMOV_D64_MM:
7452 case Mips::FMOV_S_MM:
7453 case Mips::FNEG_D32_MM:
7454 case Mips::FNEG_D64_MM:
7455 case Mips::FNEG_S_MM:
7456 case Mips::FSQRT_D32_MM:
7457 case Mips::FSQRT_D64_MM:
7458 case Mips::FSQRT_S_MM:
7459 case Mips::RECIP_D32_MM:
7460 case Mips::RECIP_D64_MM:
7461 case Mips::RECIP_S_MM:
7462 case Mips::ROUND_W_MM:
7463 case Mips::ROUND_W_S_MM:
7464 case Mips::RSQRT_D32_MM:
7465 case Mips::RSQRT_D64_MM:
7466 case Mips::RSQRT_S_MM:
7467 case Mips::TRUNC_W_MM:
7468 case Mips::TRUNC_W_S_MM: {
7469 switch (OpNum) {
7470 case 0:
7471 // op: fd
7472 return 21;
7473 case 1:
7474 // op: fs
7475 return 16;
7476 }
7477 break;
7478 }
7479 case Mips::LDXC1:
7480 case Mips::LDXC164:
7481 case Mips::LUXC1:
7482 case Mips::LUXC164:
7483 case Mips::LWXC1: {
7484 switch (OpNum) {
7485 case 0:
7486 // op: fd
7487 return 6;
7488 case 1:
7489 // op: base
7490 return 21;
7491 case 2:
7492 // op: index
7493 return 16;
7494 }
7495 break;
7496 }
7497 case Mips::MADD_D32:
7498 case Mips::MADD_D64:
7499 case Mips::MADD_S:
7500 case Mips::MSUB_D32:
7501 case Mips::MSUB_D64:
7502 case Mips::MSUB_S:
7503 case Mips::NMADD_D32:
7504 case Mips::NMADD_D64:
7505 case Mips::NMADD_S:
7506 case Mips::NMSUB_D32:
7507 case Mips::NMSUB_D64:
7508 case Mips::NMSUB_S: {
7509 switch (OpNum) {
7510 case 0:
7511 // op: fd
7512 return 6;
7513 case 1:
7514 // op: fr
7515 return 21;
7516 case 2:
7517 // op: fs
7518 return 11;
7519 case 3:
7520 // op: ft
7521 return 16;
7522 }
7523 break;
7524 }
7525 case Mips::MOVF_D32:
7526 case Mips::MOVF_D64:
7527 case Mips::MOVF_S:
7528 case Mips::MOVT_D32:
7529 case Mips::MOVT_D64:
7530 case Mips::MOVT_S: {
7531 switch (OpNum) {
7532 case 0:
7533 // op: fd
7534 return 6;
7535 case 1:
7536 // op: fs
7537 return 11;
7538 case 2:
7539 // op: fcc
7540 return 18;
7541 }
7542 break;
7543 }
7544 case Mips::ADDR_PS64:
7545 case Mips::CMP_EQ_D:
7546 case Mips::CMP_EQ_S:
7547 case Mips::CMP_F_D:
7548 case Mips::CMP_F_S:
7549 case Mips::CMP_LE_D:
7550 case Mips::CMP_LE_S:
7551 case Mips::CMP_LT_D:
7552 case Mips::CMP_LT_S:
7553 case Mips::CMP_SAF_D:
7554 case Mips::CMP_SAF_S:
7555 case Mips::CMP_SEQ_D:
7556 case Mips::CMP_SEQ_S:
7557 case Mips::CMP_SLE_D:
7558 case Mips::CMP_SLE_S:
7559 case Mips::CMP_SLT_D:
7560 case Mips::CMP_SLT_S:
7561 case Mips::CMP_SUEQ_D:
7562 case Mips::CMP_SUEQ_S:
7563 case Mips::CMP_SULE_D:
7564 case Mips::CMP_SULE_S:
7565 case Mips::CMP_SULT_D:
7566 case Mips::CMP_SULT_S:
7567 case Mips::CMP_SUN_D:
7568 case Mips::CMP_SUN_S:
7569 case Mips::CMP_UEQ_D:
7570 case Mips::CMP_UEQ_S:
7571 case Mips::CMP_ULE_D:
7572 case Mips::CMP_ULE_S:
7573 case Mips::CMP_ULT_D:
7574 case Mips::CMP_ULT_S:
7575 case Mips::CMP_UN_D:
7576 case Mips::CMP_UN_S:
7577 case Mips::CVT_PS_S64:
7578 case Mips::FADD_D32:
7579 case Mips::FADD_D64:
7580 case Mips::FADD_PS64:
7581 case Mips::FADD_S:
7582 case Mips::FDIV_D32:
7583 case Mips::FDIV_D64:
7584 case Mips::FDIV_S:
7585 case Mips::FMUL_D32:
7586 case Mips::FMUL_D64:
7587 case Mips::FMUL_PS64:
7588 case Mips::FMUL_S:
7589 case Mips::FSUB_D32:
7590 case Mips::FSUB_D64:
7591 case Mips::FSUB_PS64:
7592 case Mips::FSUB_S:
7593 case Mips::MULR_PS64:
7594 case Mips::PLL_PS64:
7595 case Mips::PLU_PS64:
7596 case Mips::PUL_PS64:
7597 case Mips::PUU_PS64: {
7598 switch (OpNum) {
7599 case 0:
7600 // op: fd
7601 return 6;
7602 case 1:
7603 // op: fs
7604 return 11;
7605 case 2:
7606 // op: ft
7607 return 16;
7608 }
7609 break;
7610 }
7611 case Mips::MOVN_I64_D64:
7612 case Mips::MOVN_I64_S:
7613 case Mips::MOVN_I_D32:
7614 case Mips::MOVN_I_D64:
7615 case Mips::MOVN_I_S:
7616 case Mips::MOVZ_I64_D64:
7617 case Mips::MOVZ_I64_S:
7618 case Mips::MOVZ_I_D32:
7619 case Mips::MOVZ_I_D64:
7620 case Mips::MOVZ_I_S: {
7621 switch (OpNum) {
7622 case 0:
7623 // op: fd
7624 return 6;
7625 case 1:
7626 // op: fs
7627 return 11;
7628 case 2:
7629 // op: rt
7630 return 16;
7631 }
7632 break;
7633 }
7634 case Mips::CEIL_L_D64:
7635 case Mips::CEIL_L_S:
7636 case Mips::CEIL_W_D32:
7637 case Mips::CEIL_W_D64:
7638 case Mips::CEIL_W_S:
7639 case Mips::CVT_D32_S:
7640 case Mips::CVT_D32_W:
7641 case Mips::CVT_D64_L:
7642 case Mips::CVT_D64_S:
7643 case Mips::CVT_D64_W:
7644 case Mips::CVT_L_D64:
7645 case Mips::CVT_L_S:
7646 case Mips::CVT_PS_PW64:
7647 case Mips::CVT_PW_PS64:
7648 case Mips::CVT_S_D32:
7649 case Mips::CVT_S_D64:
7650 case Mips::CVT_S_L:
7651 case Mips::CVT_S_PL64:
7652 case Mips::CVT_S_PU64:
7653 case Mips::CVT_S_W:
7654 case Mips::CVT_W_D32:
7655 case Mips::CVT_W_D64:
7656 case Mips::CVT_W_S:
7657 case Mips::FABS_D32:
7658 case Mips::FABS_D64:
7659 case Mips::FABS_S:
7660 case Mips::FLOOR_L_D64:
7661 case Mips::FLOOR_L_S:
7662 case Mips::FLOOR_W_D32:
7663 case Mips::FLOOR_W_D64:
7664 case Mips::FLOOR_W_S:
7665 case Mips::FMOV_D32:
7666 case Mips::FMOV_D64:
7667 case Mips::FMOV_S:
7668 case Mips::FNEG_D32:
7669 case Mips::FNEG_D64:
7670 case Mips::FNEG_S:
7671 case Mips::FSQRT_D32:
7672 case Mips::FSQRT_D64:
7673 case Mips::FSQRT_S:
7674 case Mips::RECIP_D32:
7675 case Mips::RECIP_D64:
7676 case Mips::RECIP_S:
7677 case Mips::ROUND_L_D64:
7678 case Mips::ROUND_L_S:
7679 case Mips::ROUND_W_D32:
7680 case Mips::ROUND_W_D64:
7681 case Mips::ROUND_W_S:
7682 case Mips::RSQRT_D32:
7683 case Mips::RSQRT_D64:
7684 case Mips::RSQRT_S:
7685 case Mips::TRUNC_L_D64:
7686 case Mips::TRUNC_L_S:
7687 case Mips::TRUNC_W_D32:
7688 case Mips::TRUNC_W_D64:
7689 case Mips::TRUNC_W_S: {
7690 switch (OpNum) {
7691 case 0:
7692 // op: fd
7693 return 6;
7694 case 1:
7695 // op: fs
7696 return 11;
7697 }
7698 break;
7699 }
7700 case Mips::SUXC1_MM:
7701 case Mips::SWXC1_MM: {
7702 switch (OpNum) {
7703 case 0:
7704 // op: fs
7705 return 11;
7706 case 1:
7707 // op: base
7708 return 16;
7709 case 2:
7710 // op: index
7711 return 21;
7712 }
7713 break;
7714 }
7715 case Mips::SDXC1:
7716 case Mips::SDXC164:
7717 case Mips::SUXC1:
7718 case Mips::SUXC164:
7719 case Mips::SWXC1: {
7720 switch (OpNum) {
7721 case 0:
7722 // op: fs
7723 return 11;
7724 case 1:
7725 // op: base
7726 return 21;
7727 case 2:
7728 // op: index
7729 return 16;
7730 }
7731 break;
7732 }
7733 case Mips::FCMP_D32:
7734 case Mips::FCMP_D64:
7735 case Mips::FCMP_S32: {
7736 switch (OpNum) {
7737 case 0:
7738 // op: fs
7739 return 11;
7740 case 1:
7741 // op: ft
7742 return 16;
7743 case 2:
7744 // op: cond
7745 return 0;
7746 }
7747 break;
7748 }
7749 case Mips::FCMP_D32_MM:
7750 case Mips::FCMP_S32_MM: {
7751 switch (OpNum) {
7752 case 0:
7753 // op: fs
7754 return 16;
7755 case 1:
7756 // op: ft
7757 return 21;
7758 case 2:
7759 // op: cond
7760 return 6;
7761 }
7762 break;
7763 }
7764 case Mips::BC1EQZ:
7765 case Mips::BC1NEZ: {
7766 switch (OpNum) {
7767 case 0:
7768 // op: ft
7769 return 16;
7770 case 1:
7771 // op: offset
7772 return 0;
7773 }
7774 break;
7775 }
7776 case Mips::LDC1_D64_MMR6:
7777 case Mips::SDC1_D64_MMR6: {
7778 switch (OpNum) {
7779 case 0:
7780 // op: ft
7781 return 21;
7782 case 1:
7783 // op: base
7784 return 16;
7785 case 2:
7786 // op: offset
7787 return 0;
7788 }
7789 break;
7790 }
7791 case Mips::CEIL_L_D_MMR6:
7792 case Mips::CEIL_L_S_MMR6:
7793 case Mips::CEIL_W_D_MMR6:
7794 case Mips::CEIL_W_S_MMR6:
7795 case Mips::CVT_D_L_MMR6:
7796 case Mips::CVT_L_D_MMR6:
7797 case Mips::CVT_L_S_MMR6:
7798 case Mips::CVT_S_L_MMR6:
7799 case Mips::CVT_S_W_MMR6:
7800 case Mips::CVT_W_S_MMR6:
7801 case Mips::FLOOR_L_D_MMR6:
7802 case Mips::FLOOR_L_S_MMR6:
7803 case Mips::FLOOR_W_D_MMR6:
7804 case Mips::FLOOR_W_S_MMR6:
7805 case Mips::FMOV_D_MMR6:
7806 case Mips::FMOV_S_MMR6:
7807 case Mips::FNEG_S_MMR6:
7808 case Mips::ROUND_L_D_MMR6:
7809 case Mips::ROUND_L_S_MMR6:
7810 case Mips::ROUND_W_D_MMR6:
7811 case Mips::ROUND_W_S_MMR6:
7812 case Mips::TRUNC_L_D_MMR6:
7813 case Mips::TRUNC_L_S_MMR6:
7814 case Mips::TRUNC_W_D_MMR6:
7815 case Mips::TRUNC_W_S_MMR6: {
7816 switch (OpNum) {
7817 case 0:
7818 // op: ft
7819 return 21;
7820 case 1:
7821 // op: fs
7822 return 16;
7823 }
7824 break;
7825 }
7826 case Mips::JRADDIUSP: {
7827 switch (OpNum) {
7828 case 0:
7829 // op: imm
7830 return 0;
7831 }
7832 break;
7833 }
7834 case Mips::ADDIUSP_MM: {
7835 switch (OpNum) {
7836 case 0:
7837 // op: imm
7838 return 1;
7839 }
7840 break;
7841 }
7842 case Mips::JRCADDIUSP_MMR6: {
7843 switch (OpNum) {
7844 case 0:
7845 // op: imm
7846 return 5;
7847 }
7848 break;
7849 }
7850 case Mips::Bimm16: {
7851 switch (OpNum) {
7852 case 0:
7853 // op: imm11
7854 return 0;
7855 }
7856 break;
7857 }
7858 case Mips::AddiuSpImmX16:
7859 case Mips::BimmX16:
7860 case Mips::BteqzX16:
7861 case Mips::BtnezX16: {
7862 switch (OpNum) {
7863 case 0:
7864 // op: imm16
7865 return 0;
7866 }
7867 break;
7868 }
7869 case Mips::Jal16:
7870 case Mips::JalB16: {
7871 switch (OpNum) {
7872 case 0:
7873 // op: imm26
7874 return 0;
7875 }
7876 break;
7877 }
7878 case Mips::AddiuSpImm16:
7879 case Mips::Bteqz16:
7880 case Mips::Btnez16: {
7881 switch (OpNum) {
7882 case 0:
7883 // op: imm8
7884 return 0;
7885 }
7886 break;
7887 }
7888 case Mips::B16_MM:
7889 case Mips::BAL:
7890 case Mips::BALC:
7891 case Mips::BALC_MMR6:
7892 case Mips::BC:
7893 case Mips::BC16_MMR6:
7894 case Mips::BC_MMR6:
7895 case Mips::BPOSGE32:
7896 case Mips::BPOSGE32C_MMR3:
7897 case Mips::BPOSGE32_MM: {
7898 switch (OpNum) {
7899 case 0:
7900 // op: offset
7901 return 0;
7902 }
7903 break;
7904 }
7905 case Mips::Move32R16: {
7906 switch (OpNum) {
7907 case 0:
7908 // op: r32
7909 return 3;
7910 case 1:
7911 // op: rz
7912 return 0;
7913 }
7914 break;
7915 }
7916 case Mips::MFHI16_MM:
7917 case Mips::MFLO16_MM: {
7918 switch (OpNum) {
7919 case 0:
7920 // op: rd
7921 return 0;
7922 }
7923 break;
7924 }
7925 case Mips::MFHI_DSP:
7926 case Mips::MFLO_DSP: {
7927 switch (OpNum) {
7928 case 0:
7929 // op: rd
7930 return 11;
7931 case 1:
7932 // op: ac
7933 return 21;
7934 }
7935 break;
7936 }
7937 case Mips::LWXS_MM: {
7938 switch (OpNum) {
7939 case 0:
7940 // op: rd
7941 return 11;
7942 case 1:
7943 // op: base
7944 return 16;
7945 case 2:
7946 // op: index
7947 return 21;
7948 }
7949 break;
7950 }
7951 case Mips::LBUX:
7952 case Mips::LHX:
7953 case Mips::LWX: {
7954 switch (OpNum) {
7955 case 0:
7956 // op: rd
7957 return 11;
7958 case 1:
7959 // op: base
7960 return 21;
7961 case 2:
7962 // op: index
7963 return 16;
7964 }
7965 break;
7966 }
7967 case Mips::REPL_PH:
7968 case Mips::REPL_PH_MM:
7969 case Mips::REPL_QB: {
7970 switch (OpNum) {
7971 case 0:
7972 // op: rd
7973 return 11;
7974 case 1:
7975 // op: imm
7976 return 16;
7977 }
7978 break;
7979 }
7980 case Mips::RDDSP: {
7981 switch (OpNum) {
7982 case 0:
7983 // op: rd
7984 return 11;
7985 case 1:
7986 // op: mask
7987 return 16;
7988 }
7989 break;
7990 }
7991 case Mips::LSA_MMR6: {
7992 switch (OpNum) {
7993 case 0:
7994 // op: rd
7995 return 11;
7996 case 1:
7997 // op: rs
7998 return 16;
7999 case 2:
8000 // op: rt
8001 return 21;
8002 case 3:
8003 // op: imm2
8004 return 9;
8005 }
8006 break;
8007 }
8008 case Mips::ADDQH_PH_MMR2:
8009 case Mips::ADDQH_R_PH_MMR2:
8010 case Mips::ADDQH_R_W_MMR2:
8011 case Mips::ADDQH_W_MMR2:
8012 case Mips::ADDQ_PH_MM:
8013 case Mips::ADDQ_S_PH_MM:
8014 case Mips::ADDQ_S_W_MM:
8015 case Mips::ADDSC_MM:
8016 case Mips::ADDUH_QB_MMR2:
8017 case Mips::ADDUH_R_QB_MMR2:
8018 case Mips::ADDU_PH_MMR2:
8019 case Mips::ADDU_QB_MM:
8020 case Mips::ADDU_S_PH_MMR2:
8021 case Mips::ADDU_S_QB_MM:
8022 case Mips::ADDWC_MM:
8023 case Mips::CMPGDU_EQ_QB_MMR2:
8024 case Mips::CMPGDU_LE_QB_MMR2:
8025 case Mips::CMPGDU_LT_QB_MMR2:
8026 case Mips::MODSUB_MM:
8027 case Mips::MULEQ_S_W_PHL_MM:
8028 case Mips::MULEQ_S_W_PHR_MM:
8029 case Mips::MULEU_S_PH_QBL_MM:
8030 case Mips::MULEU_S_PH_QBR_MM:
8031 case Mips::MULQ_RS_PH_MM:
8032 case Mips::MULQ_RS_W_MMR2:
8033 case Mips::MULQ_S_PH_MMR2:
8034 case Mips::MULQ_S_W_MMR2:
8035 case Mips::MUL_PH_MMR2:
8036 case Mips::MUL_S_PH_MMR2:
8037 case Mips::PACKRL_PH_MM:
8038 case Mips::PICK_PH_MM:
8039 case Mips::PICK_QB_MM:
8040 case Mips::PRECRQU_S_QB_PH_MM:
8041 case Mips::PRECRQ_PH_W_MM:
8042 case Mips::PRECRQ_QB_PH_MM:
8043 case Mips::PRECRQ_RS_PH_W_MM:
8044 case Mips::PRECR_QB_PH_MMR2:
8045 case Mips::SELEQZ_MMR6:
8046 case Mips::SELNEZ_MMR6:
8047 case Mips::SUBQH_PH_MMR2:
8048 case Mips::SUBQH_R_PH_MMR2:
8049 case Mips::SUBQH_R_W_MMR2:
8050 case Mips::SUBQH_W_MMR2:
8051 case Mips::SUBQ_PH_MM:
8052 case Mips::SUBQ_S_PH_MM:
8053 case Mips::SUBQ_S_W_MM:
8054 case Mips::SUBUH_QB_MMR2:
8055 case Mips::SUBUH_R_QB_MMR2:
8056 case Mips::SUBU_PH_MMR2:
8057 case Mips::SUBU_QB_MM:
8058 case Mips::SUBU_S_PH_MMR2:
8059 case Mips::SUBU_S_QB_MM: {
8060 switch (OpNum) {
8061 case 0:
8062 // op: rd
8063 return 11;
8064 case 1:
8065 // op: rs
8066 return 16;
8067 case 2:
8068 // op: rt
8069 return 21;
8070 }
8071 break;
8072 }
8073 case Mips::MOVF_I:
8074 case Mips::MOVF_I64:
8075 case Mips::MOVT_I:
8076 case Mips::MOVT_I64: {
8077 switch (OpNum) {
8078 case 0:
8079 // op: rd
8080 return 11;
8081 case 1:
8082 // op: rs
8083 return 21;
8084 case 2:
8085 // op: fcc
8086 return 18;
8087 }
8088 break;
8089 }
8090 case Mips::ALIGN:
8091 case Mips::DALIGN: {
8092 switch (OpNum) {
8093 case 0:
8094 // op: rd
8095 return 11;
8096 case 1:
8097 // op: rs
8098 return 21;
8099 case 2:
8100 // op: rt
8101 return 16;
8102 case 3:
8103 // op: bp
8104 return 6;
8105 }
8106 break;
8107 }
8108 case Mips::ALIGN_MMR6: {
8109 switch (OpNum) {
8110 case 0:
8111 // op: rd
8112 return 11;
8113 case 1:
8114 // op: rs
8115 return 21;
8116 case 2:
8117 // op: rt
8118 return 16;
8119 case 3:
8120 // op: bp
8121 return 9;
8122 }
8123 break;
8124 }
8125 case Mips::DLSA_R6:
8126 case Mips::LSA_R6: {
8127 switch (OpNum) {
8128 case 0:
8129 // op: rd
8130 return 11;
8131 case 1:
8132 // op: rs
8133 return 21;
8134 case 2:
8135 // op: rt
8136 return 16;
8137 case 3:
8138 // op: imm2
8139 return 6;
8140 }
8141 break;
8142 }
8143 case Mips::ADD:
8144 case Mips::ADDQH_PH:
8145 case Mips::ADDQH_R_PH:
8146 case Mips::ADDQH_R_W:
8147 case Mips::ADDQH_W:
8148 case Mips::ADDQ_PH:
8149 case Mips::ADDQ_S_PH:
8150 case Mips::ADDQ_S_W:
8151 case Mips::ADDSC:
8152 case Mips::ADDUH_QB:
8153 case Mips::ADDUH_R_QB:
8154 case Mips::ADDU_PH:
8155 case Mips::ADDU_QB:
8156 case Mips::ADDU_S_PH:
8157 case Mips::ADDU_S_QB:
8158 case Mips::ADDWC:
8159 case Mips::ADDu:
8160 case Mips::AND:
8161 case Mips::AND64:
8162 case Mips::BADDu:
8163 case Mips::DADD:
8164 case Mips::DADDu:
8165 case Mips::DDIV:
8166 case Mips::DDIVU:
8167 case Mips::DIV:
8168 case Mips::DIVU:
8169 case Mips::DMOD:
8170 case Mips::DMODU:
8171 case Mips::DMUH:
8172 case Mips::DMUHU:
8173 case Mips::DMUL:
8174 case Mips::DMULU:
8175 case Mips::DMUL_R6:
8176 case Mips::DSUB:
8177 case Mips::DSUBu:
8178 case Mips::MOD:
8179 case Mips::MODSUB:
8180 case Mips::MODU:
8181 case Mips::MOVN_I64_I:
8182 case Mips::MOVN_I64_I64:
8183 case Mips::MOVN_I_I:
8184 case Mips::MOVN_I_I64:
8185 case Mips::MOVZ_I64_I:
8186 case Mips::MOVZ_I64_I64:
8187 case Mips::MOVZ_I_I:
8188 case Mips::MOVZ_I_I64:
8189 case Mips::MUH:
8190 case Mips::MUHU:
8191 case Mips::MUL:
8192 case Mips::MULEQ_S_W_PHL:
8193 case Mips::MULEQ_S_W_PHR:
8194 case Mips::MULEU_S_PH_QBL:
8195 case Mips::MULEU_S_PH_QBR:
8196 case Mips::MULQ_RS_PH:
8197 case Mips::MULQ_RS_W:
8198 case Mips::MULQ_S_PH:
8199 case Mips::MULQ_S_W:
8200 case Mips::MULU:
8201 case Mips::MUL_PH:
8202 case Mips::MUL_R6:
8203 case Mips::MUL_S_PH:
8204 case Mips::NOR:
8205 case Mips::NOR64:
8206 case Mips::OR:
8207 case Mips::OR64:
8208 case Mips::SELEQZ:
8209 case Mips::SELEQZ64:
8210 case Mips::SELNEZ:
8211 case Mips::SELNEZ64:
8212 case Mips::SEQ:
8213 case Mips::SLT:
8214 case Mips::SLT64:
8215 case Mips::SLTu:
8216 case Mips::SLTu64:
8217 case Mips::SNE:
8218 case Mips::SUB:
8219 case Mips::SUBQH_PH:
8220 case Mips::SUBQH_R_PH:
8221 case Mips::SUBQH_R_W:
8222 case Mips::SUBQH_W:
8223 case Mips::SUBQ_PH:
8224 case Mips::SUBQ_S_PH:
8225 case Mips::SUBQ_S_W:
8226 case Mips::SUBUH_QB:
8227 case Mips::SUBUH_R_QB:
8228 case Mips::SUBU_PH:
8229 case Mips::SUBU_QB:
8230 case Mips::SUBU_S_PH:
8231 case Mips::SUBU_S_QB:
8232 case Mips::SUBu:
8233 case Mips::V3MULU:
8234 case Mips::VMM0:
8235 case Mips::VMULU:
8236 case Mips::XOR:
8237 case Mips::XOR64: {
8238 switch (OpNum) {
8239 case 0:
8240 // op: rd
8241 return 11;
8242 case 1:
8243 // op: rs
8244 return 21;
8245 case 2:
8246 // op: rt
8247 return 16;
8248 }
8249 break;
8250 }
8251 case Mips::CLO:
8252 case Mips::CLO_R6:
8253 case Mips::CLZ:
8254 case Mips::CLZ_R6:
8255 case Mips::DCLO:
8256 case Mips::DCLO_R6:
8257 case Mips::DCLZ:
8258 case Mips::DCLZ_R6:
8259 case Mips::DPOP:
8260 case Mips::JALR:
8261 case Mips::JALR64:
8262 case Mips::JALR_HB:
8263 case Mips::JALR_HB64:
8264 case Mips::POP:
8265 case Mips::RADDU_W_QB: {
8266 switch (OpNum) {
8267 case 0:
8268 // op: rd
8269 return 11;
8270 case 1:
8271 // op: rs
8272 return 21;
8273 }
8274 break;
8275 }
8276 case Mips::DROTRV:
8277 case Mips::DSLLV:
8278 case Mips::DSRAV:
8279 case Mips::DSRLV:
8280 case Mips::ROTRV:
8281 case Mips::SLLV:
8282 case Mips::SRAV:
8283 case Mips::SRLV: {
8284 switch (OpNum) {
8285 case 0:
8286 // op: rd
8287 return 11;
8288 case 1:
8289 // op: rt
8290 return 16;
8291 case 2:
8292 // op: rs
8293 return 21;
8294 }
8295 break;
8296 }
8297 case Mips::SHLLV_PH:
8298 case Mips::SHLLV_QB:
8299 case Mips::SHLLV_S_PH:
8300 case Mips::SHLLV_S_W:
8301 case Mips::SHLL_PH:
8302 case Mips::SHLL_QB:
8303 case Mips::SHLL_S_PH:
8304 case Mips::SHLL_S_W:
8305 case Mips::SHRAV_PH:
8306 case Mips::SHRAV_QB:
8307 case Mips::SHRAV_R_PH:
8308 case Mips::SHRAV_R_QB:
8309 case Mips::SHRAV_R_W:
8310 case Mips::SHRA_PH:
8311 case Mips::SHRA_QB:
8312 case Mips::SHRA_R_PH:
8313 case Mips::SHRA_R_QB:
8314 case Mips::SHRA_R_W:
8315 case Mips::SHRLV_PH:
8316 case Mips::SHRLV_QB:
8317 case Mips::SHRL_PH:
8318 case Mips::SHRL_QB: {
8319 switch (OpNum) {
8320 case 0:
8321 // op: rd
8322 return 11;
8323 case 1:
8324 // op: rt
8325 return 16;
8326 case 2:
8327 // op: rs_sa
8328 return 21;
8329 }
8330 break;
8331 }
8332 case Mips::DROTR:
8333 case Mips::DROTR32:
8334 case Mips::DSLL:
8335 case Mips::DSLL32:
8336 case Mips::DSRA:
8337 case Mips::DSRA32:
8338 case Mips::DSRL:
8339 case Mips::DSRL32:
8340 case Mips::ROTR:
8341 case Mips::SLL:
8342 case Mips::SRA:
8343 case Mips::SRL: {
8344 switch (OpNum) {
8345 case 0:
8346 // op: rd
8347 return 11;
8348 case 1:
8349 // op: rt
8350 return 16;
8351 case 2:
8352 // op: shamt
8353 return 6;
8354 }
8355 break;
8356 }
8357 case Mips::ABSQ_S_PH:
8358 case Mips::ABSQ_S_QB:
8359 case Mips::ABSQ_S_W:
8360 case Mips::BITREV:
8361 case Mips::BITSWAP:
8362 case Mips::DBITSWAP:
8363 case Mips::DSBH:
8364 case Mips::DSHD:
8365 case Mips::DSLL64_32:
8366 case Mips::PRECEQU_PH_QBL:
8367 case Mips::PRECEQU_PH_QBLA:
8368 case Mips::PRECEQU_PH_QBR:
8369 case Mips::PRECEQU_PH_QBRA:
8370 case Mips::PRECEQ_W_PHL:
8371 case Mips::PRECEQ_W_PHR:
8372 case Mips::PRECEU_PH_QBL:
8373 case Mips::PRECEU_PH_QBLA:
8374 case Mips::PRECEU_PH_QBR:
8375 case Mips::PRECEU_PH_QBRA:
8376 case Mips::REPLV_PH:
8377 case Mips::REPLV_QB:
8378 case Mips::SEB:
8379 case Mips::SEB64:
8380 case Mips::SEH:
8381 case Mips::SEH64:
8382 case Mips::SLL64_32:
8383 case Mips::SLL64_64:
8384 case Mips::WSBH: {
8385 switch (OpNum) {
8386 case 0:
8387 // op: rd
8388 return 11;
8389 case 1:
8390 // op: rt
8391 return 16;
8392 }
8393 break;
8394 }
8395 case Mips::ROTRV_MM:
8396 case Mips::SLLV_MM:
8397 case Mips::SRAV_MM:
8398 case Mips::SRLV_MM: {
8399 switch (OpNum) {
8400 case 0:
8401 // op: rd
8402 return 11;
8403 case 1:
8404 // op: rt
8405 return 21;
8406 case 2:
8407 // op: rs
8408 return 16;
8409 }
8410 break;
8411 }
8412 case Mips::SHLLV_PH_MM:
8413 case Mips::SHLLV_QB_MM:
8414 case Mips::SHLLV_S_PH_MM:
8415 case Mips::SHLLV_S_W_MM:
8416 case Mips::SHRAV_PH_MM:
8417 case Mips::SHRAV_QB_MMR2:
8418 case Mips::SHRAV_R_PH_MM:
8419 case Mips::SHRAV_R_QB_MMR2:
8420 case Mips::SHRAV_R_W_MM:
8421 case Mips::SHRLV_PH_MMR2:
8422 case Mips::SHRLV_QB_MM: {
8423 switch (OpNum) {
8424 case 0:
8425 // op: rd
8426 return 11;
8427 case 2:
8428 // op: rs
8429 return 16;
8430 case 1:
8431 // op: rt
8432 return 21;
8433 }
8434 break;
8435 }
8436 case Mips::ADDU_MMR6:
8437 case Mips::ADD_MMR6:
8438 case Mips::AND_MMR6:
8439 case Mips::DIVU_MMR6:
8440 case Mips::DIV_MMR6:
8441 case Mips::MODU_MMR6:
8442 case Mips::MOD_MMR6:
8443 case Mips::MUHU_MMR6:
8444 case Mips::MUH_MMR6:
8445 case Mips::MULU_MMR6:
8446 case Mips::MUL_MMR6:
8447 case Mips::NOR_MMR6:
8448 case Mips::OR_MMR6:
8449 case Mips::SUBU_MMR6:
8450 case Mips::SUB_MMR6:
8451 case Mips::XOR_MMR6: {
8452 switch (OpNum) {
8453 case 0:
8454 // op: rd
8455 return 11;
8456 case 2:
8457 // op: rt
8458 return 21;
8459 case 1:
8460 // op: rs
8461 return 16;
8462 }
8463 break;
8464 }
8465 case Mips::MFHI:
8466 case Mips::MFHI64:
8467 case Mips::MFLO:
8468 case Mips::MFLO64: {
8469 switch (OpNum) {
8470 case 0:
8471 // op: rd
8472 return 11;
8473 }
8474 break;
8475 }
8476 case Mips::BITSWAP_MMR6: {
8477 switch (OpNum) {
8478 case 0:
8479 // op: rd
8480 return 16;
8481 case 1:
8482 // op: rt
8483 return 21;
8484 }
8485 break;
8486 }
8487 case Mips::MFHI_MM:
8488 case Mips::MFLO_MM: {
8489 switch (OpNum) {
8490 case 0:
8491 // op: rd
8492 return 16;
8493 }
8494 break;
8495 }
8496 case Mips::MOVF_I_MM:
8497 case Mips::MOVT_I_MM: {
8498 switch (OpNum) {
8499 case 0:
8500 // op: rd
8501 return 21;
8502 case 1:
8503 // op: rs
8504 return 16;
8505 case 2:
8506 // op: fcc
8507 return 13;
8508 }
8509 break;
8510 }
8511 case Mips::CLO_MM:
8512 case Mips::CLZ_MM: {
8513 switch (OpNum) {
8514 case 0:
8515 // op: rd
8516 return 21;
8517 case 1:
8518 // op: rs
8519 return 16;
8520 }
8521 break;
8522 }
8523 case Mips::ROTR_MM:
8524 case Mips::SLL_MM:
8525 case Mips::SLL_MMR6:
8526 case Mips::SRA_MM:
8527 case Mips::SRL_MM: {
8528 switch (OpNum) {
8529 case 0:
8530 // op: rd
8531 return 21;
8532 case 1:
8533 // op: rt
8534 return 16;
8535 case 2:
8536 // op: shamt
8537 return 11;
8538 }
8539 break;
8540 }
8541 case Mips::SEB_MM:
8542 case Mips::SEH_MM:
8543 case Mips::WSBH_MM: {
8544 switch (OpNum) {
8545 case 0:
8546 // op: rd
8547 return 21;
8548 case 1:
8549 // op: rt
8550 return 16;
8551 }
8552 break;
8553 }
8554 case Mips::CFCMSA: {
8555 switch (OpNum) {
8556 case 0:
8557 // op: rd
8558 return 6;
8559 case 1:
8560 // op: cs
8561 return 11;
8562 }
8563 break;
8564 }
8565 case Mips::LI16_MM:
8566 case Mips::LI16_MMR6: {
8567 switch (OpNum) {
8568 case 0:
8569 // op: rd
8570 return 7;
8571 case 1:
8572 // op: imm
8573 return 0;
8574 }
8575 break;
8576 }
8577 case Mips::ADDIUR1SP_MM: {
8578 switch (OpNum) {
8579 case 0:
8580 // op: rd
8581 return 7;
8582 case 1:
8583 // op: imm
8584 return 1;
8585 }
8586 break;
8587 }
8588 case Mips::ANDI16_MM:
8589 case Mips::ANDI16_MMR6: {
8590 switch (OpNum) {
8591 case 0:
8592 // op: rd
8593 return 7;
8594 case 1:
8595 // op: rs
8596 return 4;
8597 case 2:
8598 // op: imm
8599 return 0;
8600 }
8601 break;
8602 }
8603 case Mips::ADDIUR2_MM: {
8604 switch (OpNum) {
8605 case 0:
8606 // op: rd
8607 return 7;
8608 case 1:
8609 // op: rs
8610 return 4;
8611 case 2:
8612 // op: imm
8613 return 1;
8614 }
8615 break;
8616 }
8617 case Mips::SLL16_MM:
8618 case Mips::SLL16_MMR6:
8619 case Mips::SRL16_MM:
8620 case Mips::SRL16_MMR6: {
8621 switch (OpNum) {
8622 case 0:
8623 // op: rd
8624 return 7;
8625 case 1:
8626 // op: rt
8627 return 4;
8628 case 2:
8629 // op: shamt
8630 return 1;
8631 }
8632 break;
8633 }
8634 case Mips::ADDU16_MM:
8635 case Mips::SUBU16_MM: {
8636 switch (OpNum) {
8637 case 0:
8638 // op: rd
8639 return 7;
8640 case 2:
8641 // op: rt
8642 return 4;
8643 case 1:
8644 // op: rs
8645 return 1;
8646 }
8647 break;
8648 }
8649 case Mips::JALR16_MM:
8650 case Mips::JALRS16_MM:
8651 case Mips::JR16_MM:
8652 case Mips::JRC16_MM: {
8653 switch (OpNum) {
8654 case 0:
8655 // op: rs
8656 return 0;
8657 }
8658 break;
8659 }
8660 case Mips::MFHI_DSP_MM:
8661 case Mips::MFLO_DSP_MM: {
8662 switch (OpNum) {
8663 case 0:
8664 // op: rs
8665 return 16;
8666 case 1:
8667 // op: ac
8668 return 14;
8669 }
8670 break;
8671 }
8672 case Mips::TEQI_MM:
8673 case Mips::TGEIU_MM:
8674 case Mips::TGEI_MM:
8675 case Mips::TLTIU_MM:
8676 case Mips::TLTI_MM:
8677 case Mips::TNEI_MM: {
8678 switch (OpNum) {
8679 case 0:
8680 // op: rs
8681 return 16;
8682 case 1:
8683 // op: imm16
8684 return 0;
8685 }
8686 break;
8687 }
8688 case Mips::BEQZC_MM:
8689 case Mips::BGEZALS_MM:
8690 case Mips::BGEZAL_MM:
8691 case Mips::BGEZ_MM:
8692 case Mips::BGTZ_MM:
8693 case Mips::BLEZ_MM:
8694 case Mips::BLTZALS_MM:
8695 case Mips::BLTZAL_MM:
8696 case Mips::BLTZ_MM:
8697 case Mips::BNEZC_MM: {
8698 switch (OpNum) {
8699 case 0:
8700 // op: rs
8701 return 16;
8702 case 1:
8703 // op: offset
8704 return 0;
8705 }
8706 break;
8707 }
8708 case Mips::TEQ_MM:
8709 case Mips::TGEU_MM:
8710 case Mips::TGE_MM:
8711 case Mips::TLTU_MM:
8712 case Mips::TLT_MM:
8713 case Mips::TNE_MM: {
8714 switch (OpNum) {
8715 case 0:
8716 // op: rs
8717 return 16;
8718 case 1:
8719 // op: rt
8720 return 21;
8721 case 2:
8722 // op: code_
8723 return 12;
8724 }
8725 break;
8726 }
8727 case Mips::BEQ_MM:
8728 case Mips::BNE_MM: {
8729 switch (OpNum) {
8730 case 0:
8731 // op: rs
8732 return 16;
8733 case 1:
8734 // op: rt
8735 return 21;
8736 case 2:
8737 // op: offset
8738 return 0;
8739 }
8740 break;
8741 }
8742 case Mips::MADDU_MM:
8743 case Mips::MADD_MM:
8744 case Mips::MSUBU_MM:
8745 case Mips::MSUB_MM:
8746 case Mips::MULT_MM:
8747 case Mips::MULTu_MM:
8748 case Mips::SDIV_MM:
8749 case Mips::UDIV_MM: {
8750 switch (OpNum) {
8751 case 0:
8752 // op: rs
8753 return 16;
8754 case 1:
8755 // op: rt
8756 return 21;
8757 }
8758 break;
8759 }
8760 case Mips::GINVT_MMR6: {
8761 switch (OpNum) {
8762 case 0:
8763 // op: rs
8764 return 16;
8765 case 1:
8766 // op: type
8767 return 9;
8768 }
8769 break;
8770 }
8771 case Mips::DVP_MMR6:
8772 case Mips::EVP_MMR6:
8773 case Mips::GINVI_MMR6:
8774 case Mips::JR_HB_MM:
8775 case Mips::JR_MM:
8776 case Mips::MTHI_MM:
8777 case Mips::MTLO_MM: {
8778 switch (OpNum) {
8779 case 0:
8780 // op: rs
8781 return 16;
8782 }
8783 break;
8784 }
8785 case Mips::ADDIUPC:
8786 case Mips::ALUIPC:
8787 case Mips::AUIPC:
8788 case Mips::LDPC:
8789 case Mips::LWPC:
8790 case Mips::LWUPC: {
8791 switch (OpNum) {
8792 case 0:
8793 // op: rs
8794 return 21;
8795 case 1:
8796 // op: imm
8797 return 0;
8798 }
8799 break;
8800 }
8801 case Mips::TEQI:
8802 case Mips::TGEI:
8803 case Mips::TGEIU:
8804 case Mips::TLTI:
8805 case Mips::TNEI:
8806 case Mips::TTLTIU: {
8807 switch (OpNum) {
8808 case 0:
8809 // op: rs
8810 return 21;
8811 case 1:
8812 // op: imm16
8813 return 0;
8814 }
8815 break;
8816 }
8817 case Mips::WRDSP: {
8818 switch (OpNum) {
8819 case 0:
8820 // op: rs
8821 return 21;
8822 case 1:
8823 // op: mask
8824 return 11;
8825 }
8826 break;
8827 }
8828 case Mips::BEQZC:
8829 case Mips::BEQZC64:
8830 case Mips::BEQZC_MMR6:
8831 case Mips::BGEZ:
8832 case Mips::BGEZ64:
8833 case Mips::BGEZAL:
8834 case Mips::BGEZALL:
8835 case Mips::BGEZL:
8836 case Mips::BGTZ:
8837 case Mips::BGTZ64:
8838 case Mips::BGTZL:
8839 case Mips::BLEZ:
8840 case Mips::BLEZ64:
8841 case Mips::BLEZL:
8842 case Mips::BLTZ:
8843 case Mips::BLTZ64:
8844 case Mips::BLTZAL:
8845 case Mips::BLTZALL:
8846 case Mips::BLTZL:
8847 case Mips::BNEZC:
8848 case Mips::BNEZC64:
8849 case Mips::BNEZC_MMR6: {
8850 switch (OpNum) {
8851 case 0:
8852 // op: rs
8853 return 21;
8854 case 1:
8855 // op: offset
8856 return 0;
8857 }
8858 break;
8859 }
8860 case Mips::BBIT0:
8861 case Mips::BBIT032:
8862 case Mips::BBIT1:
8863 case Mips::BBIT132: {
8864 switch (OpNum) {
8865 case 0:
8866 // op: rs
8867 return 21;
8868 case 1:
8869 // op: p
8870 return 16;
8871 case 2:
8872 // op: offset
8873 return 0;
8874 }
8875 break;
8876 }
8877 case Mips::TEQ:
8878 case Mips::TGE:
8879 case Mips::TGEU:
8880 case Mips::TLT:
8881 case Mips::TLTU:
8882 case Mips::TNE: {
8883 switch (OpNum) {
8884 case 0:
8885 // op: rs
8886 return 21;
8887 case 1:
8888 // op: rt
8889 return 16;
8890 case 2:
8891 // op: code_
8892 return 6;
8893 }
8894 break;
8895 }
8896 case Mips::BEQ:
8897 case Mips::BEQ64:
8898 case Mips::BEQC:
8899 case Mips::BEQC64:
8900 case Mips::BEQL:
8901 case Mips::BGEC:
8902 case Mips::BGEC64:
8903 case Mips::BGEUC:
8904 case Mips::BGEUC64:
8905 case Mips::BLTC:
8906 case Mips::BLTC64:
8907 case Mips::BLTUC:
8908 case Mips::BLTUC64:
8909 case Mips::BNE:
8910 case Mips::BNE64:
8911 case Mips::BNEC:
8912 case Mips::BNEC64:
8913 case Mips::BNEL:
8914 case Mips::BNVC:
8915 case Mips::BOVC: {
8916 switch (OpNum) {
8917 case 0:
8918 // op: rs
8919 return 21;
8920 case 1:
8921 // op: rt
8922 return 16;
8923 case 2:
8924 // op: offset
8925 return 0;
8926 }
8927 break;
8928 }
8929 case Mips::CMPU_EQ_QB:
8930 case Mips::CMPU_LE_QB:
8931 case Mips::CMPU_LT_QB:
8932 case Mips::CMP_EQ_PH:
8933 case Mips::CMP_LE_PH:
8934 case Mips::CMP_LT_PH:
8935 case Mips::DMULT:
8936 case Mips::DMULTu:
8937 case Mips::DSDIV:
8938 case Mips::DUDIV:
8939 case Mips::MADD:
8940 case Mips::MADDU:
8941 case Mips::MSUB:
8942 case Mips::MSUBU:
8943 case Mips::MULT:
8944 case Mips::MULTu:
8945 case Mips::SDIV:
8946 case Mips::UDIV: {
8947 switch (OpNum) {
8948 case 0:
8949 // op: rs
8950 return 21;
8951 case 1:
8952 // op: rt
8953 return 16;
8954 }
8955 break;
8956 }
8957 case Mips::GINVT: {
8958 switch (OpNum) {
8959 case 0:
8960 // op: rs
8961 return 21;
8962 case 1:
8963 // op: type_
8964 return 8;
8965 }
8966 break;
8967 }
8968 case Mips::DAHI:
8969 case Mips::DATI: {
8970 switch (OpNum) {
8971 case 0:
8972 // op: rs
8973 return 21;
8974 case 2:
8975 // op: imm
8976 return 0;
8977 }
8978 break;
8979 }
8980 case Mips::FORK: {
8981 switch (OpNum) {
8982 case 0:
8983 // op: rs
8984 return 21;
8985 case 2:
8986 // op: rt
8987 return 16;
8988 case 1:
8989 // op: rd
8990 return 11;
8991 }
8992 break;
8993 }
8994 case Mips::GINVI:
8995 case Mips::JR:
8996 case Mips::JR64:
8997 case Mips::JR_HB:
8998 case Mips::JR_HB64:
8999 case Mips::JR_HB64_R6:
9000 case Mips::JR_HB_R6:
9001 case Mips::MTHI:
9002 case Mips::MTHI64:
9003 case Mips::MTLO:
9004 case Mips::MTLO64:
9005 case Mips::MTM0:
9006 case Mips::MTM1:
9007 case Mips::MTM2:
9008 case Mips::MTP0:
9009 case Mips::MTP1:
9010 case Mips::MTP2: {
9011 switch (OpNum) {
9012 case 0:
9013 // op: rs
9014 return 21;
9015 }
9016 break;
9017 }
9018 case Mips::ADDIUPC_MM: {
9019 switch (OpNum) {
9020 case 0:
9021 // op: rs
9022 return 23;
9023 case 1:
9024 // op: imm
9025 return 0;
9026 }
9027 break;
9028 }
9029 case Mips::JALRC16_MMR6:
9030 case Mips::JRC16_MMR6: {
9031 switch (OpNum) {
9032 case 0:
9033 // op: rs
9034 return 5;
9035 }
9036 break;
9037 }
9038 case Mips::BEQZ16_MM:
9039 case Mips::BEQZC16_MMR6:
9040 case Mips::BNEZ16_MM:
9041 case Mips::BNEZC16_MMR6: {
9042 switch (OpNum) {
9043 case 0:
9044 // op: rs
9045 return 7;
9046 case 1:
9047 // op: offset
9048 return 0;
9049 }
9050 break;
9051 }
9052 case Mips::EXTP:
9053 case Mips::EXTPDP:
9054 case Mips::EXTPDPV:
9055 case Mips::EXTPV:
9056 case Mips::EXTRV_RS_W:
9057 case Mips::EXTRV_R_W:
9058 case Mips::EXTRV_S_H:
9059 case Mips::EXTRV_W:
9060 case Mips::EXTR_RS_W:
9061 case Mips::EXTR_R_W:
9062 case Mips::EXTR_S_H:
9063 case Mips::EXTR_W: {
9064 switch (OpNum) {
9065 case 0:
9066 // op: rt
9067 return 16;
9068 case 1:
9069 // op: ac
9070 return 11;
9071 case 2:
9072 // op: shift_rs
9073 return 21;
9074 }
9075 break;
9076 }
9077 case Mips::LDC2_R6:
9078 case Mips::LWC2_R6:
9079 case Mips::SDC2_R6:
9080 case Mips::SWC2_R6: {
9081 switch (OpNum) {
9082 case 0:
9083 // op: rt
9084 return 16;
9085 case 1:
9086 // op: base
9087 return 11;
9088 case 2:
9089 // op: offset
9090 return 0;
9091 }
9092 break;
9093 }
9094 case Mips::LB:
9095 case Mips::LB64:
9096 case Mips::LBu:
9097 case Mips::LBu64:
9098 case Mips::LD:
9099 case Mips::LDC1:
9100 case Mips::LDC164:
9101 case Mips::LDC2:
9102 case Mips::LDC3:
9103 case Mips::LDL:
9104 case Mips::LDR:
9105 case Mips::LEA_ADDiu:
9106 case Mips::LEA_ADDiu64:
9107 case Mips::LH:
9108 case Mips::LH64:
9109 case Mips::LHu:
9110 case Mips::LHu64:
9111 case Mips::LL:
9112 case Mips::LL64:
9113 case Mips::LLD:
9114 case Mips::LW:
9115 case Mips::LW64:
9116 case Mips::LWC1:
9117 case Mips::LWC2:
9118 case Mips::LWC3:
9119 case Mips::LWDSP:
9120 case Mips::LWL:
9121 case Mips::LWL64:
9122 case Mips::LWR:
9123 case Mips::LWR64:
9124 case Mips::LWu:
9125 case Mips::SB:
9126 case Mips::SB64:
9127 case Mips::SD:
9128 case Mips::SDC1:
9129 case Mips::SDC164:
9130 case Mips::SDC2:
9131 case Mips::SDC3:
9132 case Mips::SDL:
9133 case Mips::SDR:
9134 case Mips::SH:
9135 case Mips::SH64:
9136 case Mips::SW:
9137 case Mips::SW64:
9138 case Mips::SWC1:
9139 case Mips::SWC2:
9140 case Mips::SWC3:
9141 case Mips::SWDSP:
9142 case Mips::SWL:
9143 case Mips::SWL64:
9144 case Mips::SWR:
9145 case Mips::SWR64: {
9146 switch (OpNum) {
9147 case 0:
9148 // op: rt
9149 return 16;
9150 case 1:
9151 // op: base
9152 return 21;
9153 case 2:
9154 // op: offset
9155 return 0;
9156 }
9157 break;
9158 }
9159 case Mips::LBE:
9160 case Mips::LBuE:
9161 case Mips::LHE:
9162 case Mips::LHuE:
9163 case Mips::LL64_R6:
9164 case Mips::LLD_R6:
9165 case Mips::LLE:
9166 case Mips::LL_R6:
9167 case Mips::LWE:
9168 case Mips::LWLE:
9169 case Mips::LWRE:
9170 case Mips::SBE:
9171 case Mips::SHE:
9172 case Mips::SWE:
9173 case Mips::SWLE:
9174 case Mips::SWRE: {
9175 switch (OpNum) {
9176 case 0:
9177 // op: rt
9178 return 16;
9179 case 1:
9180 // op: base
9181 return 21;
9182 case 2:
9183 // op: offset
9184 return 7;
9185 }
9186 break;
9187 }
9188 case Mips::CFC1:
9189 case Mips::DMFC1:
9190 case Mips::MFC1:
9191 case Mips::MFC1_D64:
9192 case Mips::MFHC1_D32:
9193 case Mips::MFHC1_D64: {
9194 switch (OpNum) {
9195 case 0:
9196 // op: rt
9197 return 16;
9198 case 1:
9199 // op: fs
9200 return 11;
9201 }
9202 break;
9203 }
9204 case Mips::DMFC2_OCTEON:
9205 case Mips::DMTC2_OCTEON:
9206 case Mips::LUi:
9207 case Mips::LUi64:
9208 case Mips::LUi_MM: {
9209 switch (OpNum) {
9210 case 0:
9211 // op: rt
9212 return 16;
9213 case 1:
9214 // op: imm16
9215 return 0;
9216 }
9217 break;
9218 }
9219 case Mips::BC1EQZC_MMR6:
9220 case Mips::BC1NEZC_MMR6:
9221 case Mips::BC2EQZC_MMR6:
9222 case Mips::BC2NEZC_MMR6:
9223 case Mips::BEQZALC:
9224 case Mips::BGEZALC:
9225 case Mips::BGEZALC_MMR6:
9226 case Mips::BGEZC:
9227 case Mips::BGEZC64:
9228 case Mips::BGEZC_MMR6:
9229 case Mips::BGTZALC:
9230 case Mips::BGTZC:
9231 case Mips::BGTZC64:
9232 case Mips::BLEZALC:
9233 case Mips::BLEZC:
9234 case Mips::BLEZC64:
9235 case Mips::BLTZALC:
9236 case Mips::BLTZALC_MMR6:
9237 case Mips::BLTZC:
9238 case Mips::BLTZC64:
9239 case Mips::BLTZC_MMR6:
9240 case Mips::BNEZALC:
9241 case Mips::JIALC:
9242 case Mips::JIALC64:
9243 case Mips::JIALC_MMR6:
9244 case Mips::JIC:
9245 case Mips::JIC64:
9246 case Mips::JIC_MMR6: {
9247 switch (OpNum) {
9248 case 0:
9249 // op: rt
9250 return 16;
9251 case 1:
9252 // op: offset
9253 return 0;
9254 }
9255 break;
9256 }
9257 case Mips::DMFC0:
9258 case Mips::DMFC2:
9259 case Mips::DMFGC0:
9260 case Mips::MFC0:
9261 case Mips::MFC2:
9262 case Mips::MFGC0:
9263 case Mips::MFHGC0: {
9264 switch (OpNum) {
9265 case 0:
9266 // op: rt
9267 return 16;
9268 case 1:
9269 // op: rd
9270 return 11;
9271 case 2:
9272 // op: sel
9273 return 0;
9274 }
9275 break;
9276 }
9277 case Mips::RDHWR:
9278 case Mips::RDHWR64: {
9279 switch (OpNum) {
9280 case 0:
9281 // op: rt
9282 return 16;
9283 case 1:
9284 // op: rd
9285 return 11;
9286 case 2:
9287 // op: sel
9288 return 6;
9289 }
9290 break;
9291 }
9292 case Mips::SLTi:
9293 case Mips::SLTi64:
9294 case Mips::SLTiu:
9295 case Mips::SLTiu64: {
9296 switch (OpNum) {
9297 case 0:
9298 // op: rt
9299 return 16;
9300 case 1:
9301 // op: rs
9302 return 21;
9303 case 2:
9304 // op: imm16
9305 return 0;
9306 }
9307 break;
9308 }
9309 case Mips::CINS:
9310 case Mips::CINS32:
9311 case Mips::CINS64_32:
9312 case Mips::CINS_i32:
9313 case Mips::EXTS:
9314 case Mips::EXTS32: {
9315 switch (OpNum) {
9316 case 0:
9317 // op: rt
9318 return 16;
9319 case 1:
9320 // op: rs
9321 return 21;
9322 case 2:
9323 // op: pos
9324 return 6;
9325 case 3:
9326 // op: lenm1
9327 return 11;
9328 }
9329 break;
9330 }
9331 case Mips::DEXT:
9332 case Mips::DEXT64_32:
9333 case Mips::DEXTM:
9334 case Mips::DEXTU:
9335 case Mips::DINS:
9336 case Mips::DINSM:
9337 case Mips::DINSU:
9338 case Mips::EXT:
9339 case Mips::INS: {
9340 switch (OpNum) {
9341 case 0:
9342 // op: rt
9343 return 16;
9344 case 1:
9345 // op: rs
9346 return 21;
9347 case 2:
9348 // op: pos
9349 return 6;
9350 case 3:
9351 // op: size
9352 return 11;
9353 }
9354 break;
9355 }
9356 case Mips::APPEND:
9357 case Mips::BALIGN:
9358 case Mips::PREPEND: {
9359 switch (OpNum) {
9360 case 0:
9361 // op: rt
9362 return 16;
9363 case 1:
9364 // op: rs
9365 return 21;
9366 case 2:
9367 // op: sa
9368 return 11;
9369 }
9370 break;
9371 }
9372 case Mips::SAA:
9373 case Mips::SAAD: {
9374 switch (OpNum) {
9375 case 0:
9376 // op: rt
9377 return 16;
9378 case 1:
9379 // op: rs
9380 return 21;
9381 }
9382 break;
9383 }
9384 case Mips::INSV: {
9385 switch (OpNum) {
9386 case 0:
9387 // op: rt
9388 return 16;
9389 case 2:
9390 // op: rs
9391 return 21;
9392 }
9393 break;
9394 }
9395 case Mips::DI:
9396 case Mips::DI_MM:
9397 case Mips::DI_MMR6:
9398 case Mips::DMT:
9399 case Mips::DVP:
9400 case Mips::DVPE:
9401 case Mips::EI:
9402 case Mips::EI_MM:
9403 case Mips::EI_MMR6:
9404 case Mips::EMT:
9405 case Mips::EVP:
9406 case Mips::EVPE: {
9407 switch (OpNum) {
9408 case 0:
9409 // op: rt
9410 return 16;
9411 }
9412 break;
9413 }
9414 case Mips::LBE_MM:
9415 case Mips::LBU_MMR6:
9416 case Mips::LB_MM:
9417 case Mips::LB_MMR6:
9418 case Mips::LBuE_MM:
9419 case Mips::LBu_MM:
9420 case Mips::LDC1_MM_D32:
9421 case Mips::LDC1_MM_D64:
9422 case Mips::LDC2_MMR6:
9423 case Mips::LEA_ADDiu_MM:
9424 case Mips::LHE_MM:
9425 case Mips::LH_MM:
9426 case Mips::LHuE_MM:
9427 case Mips::LHu_MM:
9428 case Mips::LLE_MM:
9429 case Mips::LL_MMR6:
9430 case Mips::LWC1_MM:
9431 case Mips::LWC2_MMR6:
9432 case Mips::LWDSP_MM:
9433 case Mips::LWE_MM:
9434 case Mips::LWLE_MM:
9435 case Mips::LWRE_MM:
9436 case Mips::LW_MM:
9437 case Mips::LW_MMR6:
9438 case Mips::SBE_MM:
9439 case Mips::SB_MM:
9440 case Mips::SB_MMR6:
9441 case Mips::SDC1_MM_D32:
9442 case Mips::SDC1_MM_D64:
9443 case Mips::SDC2_MMR6:
9444 case Mips::SHE_MM:
9445 case Mips::SH_MM:
9446 case Mips::SH_MMR6:
9447 case Mips::SWC1_MM:
9448 case Mips::SWC2_MMR6:
9449 case Mips::SWDSP_MM:
9450 case Mips::SWE_MM:
9451 case Mips::SWLE_MM:
9452 case Mips::SWRE_MM:
9453 case Mips::SW_MM: {
9454 switch (OpNum) {
9455 case 0:
9456 // op: rt
9457 return 21;
9458 case 1:
9459 // op: base
9460 return 16;
9461 case 2:
9462 // op: offset
9463 return 0;
9464 }
9465 break;
9466 }
9467 case Mips::CFC1_MM:
9468 case Mips::MFC1_MM:
9469 case Mips::MFC1_MMR6:
9470 case Mips::MFHC1_D32_MM:
9471 case Mips::MFHC1_D64_MM: {
9472 switch (OpNum) {
9473 case 0:
9474 // op: rt
9475 return 21;
9476 case 1:
9477 // op: fs
9478 return 16;
9479 }
9480 break;
9481 }
9482 case Mips::ADDIUPC_MMR6:
9483 case Mips::ALUIPC_MMR6:
9484 case Mips::AUIPC_MMR6:
9485 case Mips::LWPC_MMR6: {
9486 switch (OpNum) {
9487 case 0:
9488 // op: rt
9489 return 21;
9490 case 1:
9491 // op: imm
9492 return 0;
9493 }
9494 break;
9495 }
9496 case Mips::REPL_QB_MM: {
9497 switch (OpNum) {
9498 case 0:
9499 // op: rt
9500 return 21;
9501 case 1:
9502 // op: imm
9503 return 13;
9504 }
9505 break;
9506 }
9507 case Mips::LUI_MMR6: {
9508 switch (OpNum) {
9509 case 0:
9510 // op: rt
9511 return 21;
9512 case 1:
9513 // op: imm16
9514 return 0;
9515 }
9516 break;
9517 }
9518 case Mips::CFC2_MM:
9519 case Mips::MFC2_MMR6:
9520 case Mips::MFHC2_MMR6: {
9521 switch (OpNum) {
9522 case 0:
9523 // op: rt
9524 return 21;
9525 case 1:
9526 // op: impl
9527 return 16;
9528 }
9529 break;
9530 }
9531 case Mips::RDDSP_MM:
9532 case Mips::WRDSP_MM: {
9533 switch (OpNum) {
9534 case 0:
9535 // op: rt
9536 return 21;
9537 case 1:
9538 // op: mask
9539 return 14;
9540 }
9541 break;
9542 }
9543 case Mips::BEQZALC_MMR6:
9544 case Mips::BGTZALC_MMR6:
9545 case Mips::BGTZC_MMR6:
9546 case Mips::BLEZALC_MMR6:
9547 case Mips::BLEZC_MMR6:
9548 case Mips::BNEZALC_MMR6: {
9549 switch (OpNum) {
9550 case 0:
9551 // op: rt
9552 return 21;
9553 case 1:
9554 // op: offset
9555 return 0;
9556 }
9557 break;
9558 }
9559 case Mips::MFC0_MM: {
9560 switch (OpNum) {
9561 case 0:
9562 // op: rt
9563 return 21;
9564 case 1:
9565 // op: rd
9566 return 16;
9567 case 2:
9568 // op: sel
9569 return 11;
9570 }
9571 break;
9572 }
9573 case Mips::RDHWR_MM:
9574 case Mips::RDPGPR_MMR6: {
9575 switch (OpNum) {
9576 case 0:
9577 // op: rt
9578 return 21;
9579 case 1:
9580 // op: rd
9581 return 16;
9582 }
9583 break;
9584 }
9585 case Mips::BALIGN_MMR2: {
9586 switch (OpNum) {
9587 case 0:
9588 // op: rt
9589 return 21;
9590 case 1:
9591 // op: rs
9592 return 16;
9593 case 2:
9594 // op: bp
9595 return 14;
9596 }
9597 break;
9598 }
9599 case Mips::ADDIU_MMR6:
9600 case Mips::ANDI_MMR6:
9601 case Mips::ORI_MMR6:
9602 case Mips::SLTi_MM:
9603 case Mips::SLTiu_MM:
9604 case Mips::XORI_MMR6: {
9605 switch (OpNum) {
9606 case 0:
9607 // op: rt
9608 return 21;
9609 case 1:
9610 // op: rs
9611 return 16;
9612 case 2:
9613 // op: imm16
9614 return 0;
9615 }
9616 break;
9617 }
9618 case Mips::BNVC_MMR6:
9619 case Mips::BOVC_MMR6: {
9620 switch (OpNum) {
9621 case 0:
9622 // op: rt
9623 return 21;
9624 case 1:
9625 // op: rs
9626 return 16;
9627 case 2:
9628 // op: offset
9629 return 0;
9630 }
9631 break;
9632 }
9633 case Mips::EXT_MM:
9634 case Mips::INS_MM: {
9635 switch (OpNum) {
9636 case 0:
9637 // op: rt
9638 return 21;
9639 case 1:
9640 // op: rs
9641 return 16;
9642 case 2:
9643 // op: pos
9644 return 6;
9645 case 3:
9646 // op: size
9647 return 11;
9648 }
9649 break;
9650 }
9651 case Mips::APPEND_MMR2:
9652 case Mips::PRECR_SRA_PH_W_MMR2:
9653 case Mips::PRECR_SRA_R_PH_W_MMR2:
9654 case Mips::PREPEND_MMR2:
9655 case Mips::SHLL_S_W_MM:
9656 case Mips::SHRA_R_W_MM: {
9657 switch (OpNum) {
9658 case 0:
9659 // op: rt
9660 return 21;
9661 case 1:
9662 // op: rs
9663 return 16;
9664 case 2:
9665 // op: sa
9666 return 11;
9667 }
9668 break;
9669 }
9670 case Mips::SHLL_PH_MM:
9671 case Mips::SHLL_S_PH_MM:
9672 case Mips::SHRA_PH_MM:
9673 case Mips::SHRA_R_PH_MM:
9674 case Mips::SHRL_PH_MMR2: {
9675 switch (OpNum) {
9676 case 0:
9677 // op: rt
9678 return 21;
9679 case 1:
9680 // op: rs
9681 return 16;
9682 case 2:
9683 // op: sa
9684 return 12;
9685 }
9686 break;
9687 }
9688 case Mips::SHLL_QB_MM:
9689 case Mips::SHRA_QB_MMR2:
9690 case Mips::SHRA_R_QB_MMR2:
9691 case Mips::SHRL_QB_MM: {
9692 switch (OpNum) {
9693 case 0:
9694 // op: rt
9695 return 21;
9696 case 1:
9697 // op: rs
9698 return 16;
9699 case 2:
9700 // op: sa
9701 return 13;
9702 }
9703 break;
9704 }
9705 case Mips::MFC0_MMR6:
9706 case Mips::MFGC0_MM:
9707 case Mips::MFHC0_MMR6:
9708 case Mips::MFHGC0_MM:
9709 case Mips::RDHWR_MMR6: {
9710 switch (OpNum) {
9711 case 0:
9712 // op: rt
9713 return 21;
9714 case 1:
9715 // op: rs
9716 return 16;
9717 case 2:
9718 // op: sel
9719 return 11;
9720 }
9721 break;
9722 }
9723 case Mips::EXT_MMR6:
9724 case Mips::INS_MMR6: {
9725 switch (OpNum) {
9726 case 0:
9727 // op: rt
9728 return 21;
9729 case 1:
9730 // op: rs
9731 return 16;
9732 case 3:
9733 // op: size
9734 return 11;
9735 case 2:
9736 // op: pos
9737 return 6;
9738 }
9739 break;
9740 }
9741 case Mips::ABSQ_S_PH_MM:
9742 case Mips::ABSQ_S_QB_MMR2:
9743 case Mips::ABSQ_S_W_MM:
9744 case Mips::BITREV_MM:
9745 case Mips::JALRC_HB_MMR6:
9746 case Mips::JALRC_MMR6:
9747 case Mips::PRECEQU_PH_QBLA_MM:
9748 case Mips::PRECEQU_PH_QBL_MM:
9749 case Mips::PRECEQU_PH_QBRA_MM:
9750 case Mips::PRECEQU_PH_QBR_MM:
9751 case Mips::PRECEQ_W_PHL_MM:
9752 case Mips::PRECEQ_W_PHR_MM:
9753 case Mips::PRECEU_PH_QBLA_MM:
9754 case Mips::PRECEU_PH_QBL_MM:
9755 case Mips::PRECEU_PH_QBRA_MM:
9756 case Mips::PRECEU_PH_QBR_MM:
9757 case Mips::RADDU_W_QB_MM:
9758 case Mips::REPLV_PH_MM:
9759 case Mips::REPLV_QB_MM:
9760 case Mips::WRPGPR_MMR6:
9761 case Mips::WSBH_MMR6: {
9762 switch (OpNum) {
9763 case 0:
9764 // op: rt
9765 return 21;
9766 case 1:
9767 // op: rs
9768 return 16;
9769 }
9770 break;
9771 }
9772 case Mips::EXTPDP_MM:
9773 case Mips::EXTP_MM:
9774 case Mips::EXTR_RS_W_MM:
9775 case Mips::EXTR_R_W_MM:
9776 case Mips::EXTR_S_H_MM:
9777 case Mips::EXTR_W_MM: {
9778 switch (OpNum) {
9779 case 0:
9780 // op: rt
9781 return 21;
9782 case 2:
9783 // op: imm
9784 return 16;
9785 case 1:
9786 // op: ac
9787 return 14;
9788 }
9789 break;
9790 }
9791 case Mips::EXTPDPV_MM:
9792 case Mips::EXTPV_MM:
9793 case Mips::EXTRV_RS_W_MM:
9794 case Mips::EXTRV_R_W_MM:
9795 case Mips::EXTRV_S_H_MM:
9796 case Mips::EXTRV_W_MM: {
9797 switch (OpNum) {
9798 case 0:
9799 // op: rt
9800 return 21;
9801 case 2:
9802 // op: rs
9803 return 16;
9804 case 1:
9805 // op: ac
9806 return 14;
9807 }
9808 break;
9809 }
9810 case Mips::INSV_MM: {
9811 switch (OpNum) {
9812 case 0:
9813 // op: rt
9814 return 21;
9815 case 2:
9816 // op: rs
9817 return 16;
9818 }
9819 break;
9820 }
9821 case Mips::NOT16_MM: {
9822 switch (OpNum) {
9823 case 0:
9824 // op: rt
9825 return 3;
9826 case 1:
9827 // op: rs
9828 return 0;
9829 }
9830 break;
9831 }
9832 case Mips::LWM16_MM:
9833 case Mips::SWM16_MM: {
9834 switch (OpNum) {
9835 case 0:
9836 // op: rt
9837 return 4;
9838 case 2:
9839 // op: offset
9840 return 0;
9841 }
9842 break;
9843 }
9844 case Mips::LWSP_MM:
9845 case Mips::SWSP_MM:
9846 case Mips::SWSP_MMR6: {
9847 switch (OpNum) {
9848 case 0:
9849 // op: rt
9850 return 5;
9851 case 2:
9852 // op: offset
9853 return 0;
9854 }
9855 break;
9856 }
9857 case Mips::LBU16_MM:
9858 case Mips::LHU16_MM:
9859 case Mips::LW16_MM:
9860 case Mips::SB16_MM:
9861 case Mips::SB16_MMR6:
9862 case Mips::SH16_MM:
9863 case Mips::SH16_MMR6:
9864 case Mips::SW16_MM:
9865 case Mips::SW16_MMR6: {
9866 switch (OpNum) {
9867 case 0:
9868 // op: rt
9869 return 7;
9870 case 1:
9871 // op: base
9872 return 4;
9873 case 2:
9874 // op: offset
9875 return 0;
9876 }
9877 break;
9878 }
9879 case Mips::NOT16_MMR6: {
9880 switch (OpNum) {
9881 case 0:
9882 // op: rt
9883 return 7;
9884 case 1:
9885 // op: rs
9886 return 4;
9887 }
9888 break;
9889 }
9890 case Mips::LWGP_MM: {
9891 switch (OpNum) {
9892 case 0:
9893 // op: rt
9894 return 7;
9895 case 2:
9896 // op: offset
9897 return 0;
9898 }
9899 break;
9900 }
9901 case Mips::LWM16_MMR6:
9902 case Mips::SWM16_MMR6: {
9903 switch (OpNum) {
9904 case 0:
9905 // op: rt
9906 return 8;
9907 case 2:
9908 // op: offset
9909 return 4;
9910 }
9911 break;
9912 }
9913 case Mips::BeqzRxImm16:
9914 case Mips::BnezRxImm16:
9915 case Mips::CmpiRxImm16:
9916 case Mips::LiRxImm16:
9917 case Mips::LwRxPcTcp16:
9918 case Mips::SltiRxImm16:
9919 case Mips::SltiuRxImm16: {
9920 switch (OpNum) {
9921 case 0:
9922 // op: rx
9923 return 8;
9924 case 1:
9925 // op: imm8
9926 return 0;
9927 }
9928 break;
9929 }
9930 case Mips::CmpRxRy16:
9931 case Mips::DivRxRy16:
9932 case Mips::DivuRxRy16:
9933 case Mips::NegRxRy16:
9934 case Mips::NotRxRy16:
9935 case Mips::SltRxRy16:
9936 case Mips::SltuRxRy16: {
9937 switch (OpNum) {
9938 case 0:
9939 // op: rx
9940 return 8;
9941 case 1:
9942 // op: ry
9943 return 5;
9944 }
9945 break;
9946 }
9947 case Mips::AddiuRxRxImm16: {
9948 switch (OpNum) {
9949 case 0:
9950 // op: rx
9951 return 8;
9952 case 2:
9953 // op: imm8
9954 return 0;
9955 }
9956 break;
9957 }
9958 case Mips::JrcRx16:
9959 case Mips::JumpLinkReg16:
9960 case Mips::Mfhi16:
9961 case Mips::Mflo16:
9962 case Mips::SebRx16:
9963 case Mips::SehRx16: {
9964 switch (OpNum) {
9965 case 0:
9966 // op: rx
9967 return 8;
9968 }
9969 break;
9970 }
9971 case Mips::MoveR3216: {
9972 switch (OpNum) {
9973 case 0:
9974 // op: ry
9975 return 4;
9976 case 1:
9977 // op: r32
9978 return 0;
9979 }
9980 break;
9981 }
9982 case Mips::SYNC_MM:
9983 case Mips::SYNC_MMR6: {
9984 switch (OpNum) {
9985 case 0:
9986 // op: stype
9987 return 16;
9988 }
9989 break;
9990 }
9991 case Mips::SYNC: {
9992 switch (OpNum) {
9993 case 0:
9994 // op: stype
9995 return 6;
9996 }
9997 break;
9998 }
9999 case Mips::J:
10000 case Mips::JAL:
10001 case Mips::JALS_MM:
10002 case Mips::JALX:
10003 case Mips::JALX_MM:
10004 case Mips::JAL_MM:
10005 case Mips::J_MM: {
10006 switch (OpNum) {
10007 case 0:
10008 // op: target
10009 return 0;
10010 }
10011 break;
10012 }
10013 case Mips::CLASS_D:
10014 case Mips::CLASS_S:
10015 case Mips::RINT_D:
10016 case Mips::RINT_S: {
10017 switch (OpNum) {
10018 case 1:
10019 // op: fs
10020 return 11;
10021 case 0:
10022 // op: fd
10023 return 6;
10024 }
10025 break;
10026 }
10027 case Mips::C_EQ_D32:
10028 case Mips::C_EQ_D64:
10029 case Mips::C_EQ_S:
10030 case Mips::C_F_D32:
10031 case Mips::C_F_D64:
10032 case Mips::C_F_S:
10033 case Mips::C_LE_D32:
10034 case Mips::C_LE_D64:
10035 case Mips::C_LE_S:
10036 case Mips::C_LT_D32:
10037 case Mips::C_LT_D64:
10038 case Mips::C_LT_S:
10039 case Mips::C_NGE_D32:
10040 case Mips::C_NGE_D64:
10041 case Mips::C_NGE_S:
10042 case Mips::C_NGLE_D32:
10043 case Mips::C_NGLE_D64:
10044 case Mips::C_NGLE_S:
10045 case Mips::C_NGL_D32:
10046 case Mips::C_NGL_D64:
10047 case Mips::C_NGL_S:
10048 case Mips::C_NGT_D32:
10049 case Mips::C_NGT_D64:
10050 case Mips::C_NGT_S:
10051 case Mips::C_OLE_D32:
10052 case Mips::C_OLE_D64:
10053 case Mips::C_OLE_S:
10054 case Mips::C_OLT_D32:
10055 case Mips::C_OLT_D64:
10056 case Mips::C_OLT_S:
10057 case Mips::C_SEQ_D32:
10058 case Mips::C_SEQ_D64:
10059 case Mips::C_SEQ_S:
10060 case Mips::C_SF_D32:
10061 case Mips::C_SF_D64:
10062 case Mips::C_SF_S:
10063 case Mips::C_UEQ_D32:
10064 case Mips::C_UEQ_D64:
10065 case Mips::C_UEQ_S:
10066 case Mips::C_ULE_D32:
10067 case Mips::C_ULE_D64:
10068 case Mips::C_ULE_S:
10069 case Mips::C_ULT_D32:
10070 case Mips::C_ULT_D64:
10071 case Mips::C_ULT_S:
10072 case Mips::C_UN_D32:
10073 case Mips::C_UN_D64:
10074 case Mips::C_UN_S: {
10075 switch (OpNum) {
10076 case 1:
10077 // op: fs
10078 return 11;
10079 case 2:
10080 // op: ft
10081 return 16;
10082 case 0:
10083 // op: fcc
10084 return 8;
10085 }
10086 break;
10087 }
10088 case Mips::C_EQ_D32_MM:
10089 case Mips::C_EQ_D64_MM:
10090 case Mips::C_EQ_S_MM:
10091 case Mips::C_F_D32_MM:
10092 case Mips::C_F_D64_MM:
10093 case Mips::C_F_S_MM:
10094 case Mips::C_LE_D32_MM:
10095 case Mips::C_LE_D64_MM:
10096 case Mips::C_LE_S_MM:
10097 case Mips::C_LT_D32_MM:
10098 case Mips::C_LT_D64_MM:
10099 case Mips::C_LT_S_MM:
10100 case Mips::C_NGE_D32_MM:
10101 case Mips::C_NGE_D64_MM:
10102 case Mips::C_NGE_S_MM:
10103 case Mips::C_NGLE_D32_MM:
10104 case Mips::C_NGLE_D64_MM:
10105 case Mips::C_NGLE_S_MM:
10106 case Mips::C_NGL_D32_MM:
10107 case Mips::C_NGL_D64_MM:
10108 case Mips::C_NGL_S_MM:
10109 case Mips::C_NGT_D32_MM:
10110 case Mips::C_NGT_D64_MM:
10111 case Mips::C_NGT_S_MM:
10112 case Mips::C_OLE_D32_MM:
10113 case Mips::C_OLE_D64_MM:
10114 case Mips::C_OLE_S_MM:
10115 case Mips::C_OLT_D32_MM:
10116 case Mips::C_OLT_D64_MM:
10117 case Mips::C_OLT_S_MM:
10118 case Mips::C_SEQ_D32_MM:
10119 case Mips::C_SEQ_D64_MM:
10120 case Mips::C_SEQ_S_MM:
10121 case Mips::C_SF_D32_MM:
10122 case Mips::C_SF_D64_MM:
10123 case Mips::C_SF_S_MM:
10124 case Mips::C_UEQ_D32_MM:
10125 case Mips::C_UEQ_D64_MM:
10126 case Mips::C_UEQ_S_MM:
10127 case Mips::C_ULE_D32_MM:
10128 case Mips::C_ULE_D64_MM:
10129 case Mips::C_ULE_S_MM:
10130 case Mips::C_ULT_D32_MM:
10131 case Mips::C_ULT_D64_MM:
10132 case Mips::C_ULT_S_MM:
10133 case Mips::C_UN_D32_MM:
10134 case Mips::C_UN_D64_MM:
10135 case Mips::C_UN_S_MM: {
10136 switch (OpNum) {
10137 case 1:
10138 // op: fs
10139 return 16;
10140 case 2:
10141 // op: ft
10142 return 21;
10143 case 0:
10144 // op: fcc
10145 return 13;
10146 }
10147 break;
10148 }
10149 case Mips::CLASS_D_MMR6:
10150 case Mips::CLASS_S_MMR6:
10151 case Mips::RINT_D_MMR6:
10152 case Mips::RINT_S_MMR6: {
10153 switch (OpNum) {
10154 case 1:
10155 // op: fs
10156 return 21;
10157 case 0:
10158 // op: fd
10159 return 16;
10160 }
10161 break;
10162 }
10163 case Mips::FADD_S_MMR6:
10164 case Mips::FDIV_S_MMR6:
10165 case Mips::FMUL_S_MMR6:
10166 case Mips::FSUB_S_MMR6: {
10167 switch (OpNum) {
10168 case 1:
10169 // op: ft
10170 return 21;
10171 case 2:
10172 // op: fs
10173 return 16;
10174 case 0:
10175 // op: fd
10176 return 11;
10177 }
10178 break;
10179 }
10180 case Mips::AddiuRxImmX16:
10181 case Mips::AddiuRxPcImmX16:
10182 case Mips::BeqzRxImmX16:
10183 case Mips::BnezRxImmX16:
10184 case Mips::CmpiRxImmX16:
10185 case Mips::LiRxImmAlignX16:
10186 case Mips::LiRxImmX16:
10187 case Mips::LwRxPcTcpX16:
10188 case Mips::SltiRxImmX16:
10189 case Mips::SltiuRxImmX16: {
10190 switch (OpNum) {
10191 case 1:
10192 // op: imm16
10193 return 0;
10194 case 0:
10195 // op: rx
10196 return 8;
10197 }
10198 break;
10199 }
10200 case Mips::PREFX_MM: {
10201 switch (OpNum) {
10202 case 1:
10203 // op: index
10204 return 21;
10205 case 0:
10206 // op: base
10207 return 16;
10208 case 2:
10209 // op: hint
10210 return 11;
10211 }
10212 break;
10213 }
10214 case Mips::CACHE_MMR6:
10215 case Mips::PREF_MMR6: {
10216 switch (OpNum) {
10217 case 1:
10218 // op: offset
10219 return 0;
10220 case 0:
10221 // op: base
10222 return 16;
10223 case 2:
10224 // op: hint
10225 return 21;
10226 }
10227 break;
10228 }
10229 case Mips::BNZ_B:
10230 case Mips::BNZ_D:
10231 case Mips::BNZ_H:
10232 case Mips::BNZ_V:
10233 case Mips::BNZ_W:
10234 case Mips::BZ_B:
10235 case Mips::BZ_D:
10236 case Mips::BZ_H:
10237 case Mips::BZ_V:
10238 case Mips::BZ_W: {
10239 switch (OpNum) {
10240 case 1:
10241 // op: offset
10242 return 0;
10243 case 0:
10244 // op: wt
10245 return 16;
10246 }
10247 break;
10248 }
10249 case Mips::ADDIUS5_MM: {
10250 switch (OpNum) {
10251 case 1:
10252 // op: rd
10253 return 5;
10254 case 2:
10255 // op: imm
10256 return 1;
10257 }
10258 break;
10259 }
10260 case Mips::MOVE16_MM:
10261 case Mips::MOVE16_MMR6: {
10262 switch (OpNum) {
10263 case 1:
10264 // op: rs
10265 return 0;
10266 case 0:
10267 // op: rd
10268 return 5;
10269 }
10270 break;
10271 }
10272 case Mips::CTCMSA: {
10273 switch (OpNum) {
10274 case 1:
10275 // op: rs
10276 return 11;
10277 case 0:
10278 // op: cd
10279 return 6;
10280 }
10281 break;
10282 }
10283 case Mips::FILL_B:
10284 case Mips::FILL_D:
10285 case Mips::FILL_H:
10286 case Mips::FILL_W: {
10287 switch (OpNum) {
10288 case 1:
10289 // op: rs
10290 return 11;
10291 case 0:
10292 // op: wd
10293 return 6;
10294 }
10295 break;
10296 }
10297 case Mips::MTHI_DSP_MM:
10298 case Mips::MTHLIP_MM:
10299 case Mips::MTLO_DSP_MM:
10300 case Mips::SHILOV_MM: {
10301 switch (OpNum) {
10302 case 1:
10303 // op: rs
10304 return 16;
10305 case 0:
10306 // op: ac
10307 return 14;
10308 }
10309 break;
10310 }
10311 case Mips::JALRS_MM:
10312 case Mips::JALR_HB_MM:
10313 case Mips::JALR_MM: {
10314 switch (OpNum) {
10315 case 1:
10316 // op: rs
10317 return 16;
10318 case 0:
10319 // op: rd
10320 return 21;
10321 }
10322 break;
10323 }
10324 case Mips::AUI_MMR6: {
10325 switch (OpNum) {
10326 case 1:
10327 // op: rs
10328 return 16;
10329 case 0:
10330 // op: rt
10331 return 21;
10332 case 2:
10333 // op: imm
10334 return 0;
10335 }
10336 break;
10337 }
10338 case Mips::ADDi_MM:
10339 case Mips::ADDiu_MM:
10340 case Mips::ANDi_MM:
10341 case Mips::ORi_MM:
10342 case Mips::XORi_MM: {
10343 switch (OpNum) {
10344 case 1:
10345 // op: rs
10346 return 16;
10347 case 0:
10348 // op: rt
10349 return 21;
10350 case 2:
10351 // op: imm16
10352 return 0;
10353 }
10354 break;
10355 }
10356 case Mips::CLO_MMR6: {
10357 switch (OpNum) {
10358 case 1:
10359 // op: rs
10360 return 16;
10361 case 0:
10362 // op: rt
10363 return 21;
10364 }
10365 break;
10366 }
10367 case Mips::MTHI_DSP:
10368 case Mips::MTLO_DSP: {
10369 switch (OpNum) {
10370 case 1:
10371 // op: rs
10372 return 21;
10373 case 0:
10374 // op: ac
10375 return 11;
10376 }
10377 break;
10378 }
10379 case Mips::YIELD: {
10380 switch (OpNum) {
10381 case 1:
10382 // op: rs
10383 return 21;
10384 case 0:
10385 // op: rd
10386 return 11;
10387 }
10388 break;
10389 }
10390 case Mips::CLZ_MMR6: {
10391 switch (OpNum) {
10392 case 1:
10393 // op: rs
10394 return 21;
10395 case 0:
10396 // op: rt
10397 return 11;
10398 }
10399 break;
10400 }
10401 case Mips::AUI:
10402 case Mips::DAUI: {
10403 switch (OpNum) {
10404 case 1:
10405 // op: rs
10406 return 21;
10407 case 0:
10408 // op: rt
10409 return 16;
10410 case 2:
10411 // op: imm
10412 return 0;
10413 }
10414 break;
10415 }
10416 case Mips::SEQi:
10417 case Mips::SNEi: {
10418 switch (OpNum) {
10419 case 1:
10420 // op: rs
10421 return 21;
10422 case 0:
10423 // op: rt
10424 return 16;
10425 case 2:
10426 // op: imm10
10427 return 6;
10428 }
10429 break;
10430 }
10431 case Mips::ADDi:
10432 case Mips::ADDiu:
10433 case Mips::ANDi:
10434 case Mips::ANDi64:
10435 case Mips::DADDi:
10436 case Mips::DADDiu:
10437 case Mips::ORi:
10438 case Mips::ORi64:
10439 case Mips::XORi:
10440 case Mips::XORi64: {
10441 switch (OpNum) {
10442 case 1:
10443 // op: rs
10444 return 21;
10445 case 0:
10446 // op: rt
10447 return 16;
10448 case 2:
10449 // op: imm16
10450 return 0;
10451 }
10452 break;
10453 }
10454 case Mips::PRECR_SRA_PH_W:
10455 case Mips::PRECR_SRA_R_PH_W: {
10456 switch (OpNum) {
10457 case 1:
10458 // op: rs
10459 return 21;
10460 case 0:
10461 // op: rt
10462 return 16;
10463 case 2:
10464 // op: sa
10465 return 11;
10466 }
10467 break;
10468 }
10469 case Mips::DLSA:
10470 case Mips::LSA: {
10471 switch (OpNum) {
10472 case 1:
10473 // op: rs
10474 return 21;
10475 case 2:
10476 // op: rt
10477 return 16;
10478 case 0:
10479 // op: rd
10480 return 11;
10481 case 3:
10482 // op: sa
10483 return 6;
10484 }
10485 break;
10486 }
10487 case Mips::CMPGDU_EQ_QB:
10488 case Mips::CMPGDU_LE_QB:
10489 case Mips::CMPGDU_LT_QB:
10490 case Mips::CMPGU_EQ_QB:
10491 case Mips::CMPGU_LE_QB:
10492 case Mips::CMPGU_LT_QB:
10493 case Mips::PACKRL_PH:
10494 case Mips::PICK_PH:
10495 case Mips::PICK_QB:
10496 case Mips::PRECRQU_S_QB_PH:
10497 case Mips::PRECRQ_PH_W:
10498 case Mips::PRECRQ_QB_PH:
10499 case Mips::PRECRQ_RS_PH_W:
10500 case Mips::PRECR_QB_PH: {
10501 switch (OpNum) {
10502 case 1:
10503 // op: rs
10504 return 21;
10505 case 2:
10506 // op: rt
10507 return 16;
10508 case 0:
10509 // op: rd
10510 return 11;
10511 }
10512 break;
10513 }
10514 case Mips::CRC32B:
10515 case Mips::CRC32CB:
10516 case Mips::CRC32CD:
10517 case Mips::CRC32CH:
10518 case Mips::CRC32CW:
10519 case Mips::CRC32D:
10520 case Mips::CRC32H:
10521 case Mips::CRC32W: {
10522 switch (OpNum) {
10523 case 1:
10524 // op: rs
10525 return 21;
10526 case 2:
10527 // op: rt
10528 return 16;
10529 }
10530 break;
10531 }
10532 case Mips::ADDU16_MMR6:
10533 case Mips::SUBU16_MMR6: {
10534 switch (OpNum) {
10535 case 1:
10536 // op: rs
10537 return 7;
10538 case 2:
10539 // op: rt
10540 return 4;
10541 case 0:
10542 // op: rd
10543 return 1;
10544 }
10545 break;
10546 }
10547 case Mips::CTC1:
10548 case Mips::DMTC1:
10549 case Mips::MTC1:
10550 case Mips::MTC1_D64: {
10551 switch (OpNum) {
10552 case 1:
10553 // op: rt
10554 return 16;
10555 case 0:
10556 // op: fs
10557 return 11;
10558 }
10559 break;
10560 }
10561 case Mips::DMTC0:
10562 case Mips::DMTC2:
10563 case Mips::DMTGC0:
10564 case Mips::MTC0:
10565 case Mips::MTC2:
10566 case Mips::MTGC0:
10567 case Mips::MTHGC0: {
10568 switch (OpNum) {
10569 case 1:
10570 // op: rt
10571 return 16;
10572 case 0:
10573 // op: rd
10574 return 11;
10575 case 2:
10576 // op: sel
10577 return 0;
10578 }
10579 break;
10580 }
10581 case Mips::MFTR:
10582 case Mips::MTTR: {
10583 switch (OpNum) {
10584 case 1:
10585 // op: rt
10586 return 16;
10587 case 0:
10588 // op: rd
10589 return 11;
10590 case 2:
10591 // op: u
10592 return 5;
10593 case 4:
10594 // op: h
10595 return 4;
10596 case 3:
10597 // op: sel
10598 return 0;
10599 }
10600 break;
10601 }
10602 case Mips::SC:
10603 case Mips::SC64:
10604 case Mips::SCD: {
10605 switch (OpNum) {
10606 case 1:
10607 // op: rt
10608 return 16;
10609 case 2:
10610 // op: base
10611 return 21;
10612 case 3:
10613 // op: offset
10614 return 0;
10615 }
10616 break;
10617 }
10618 case Mips::SC64_R6:
10619 case Mips::SCD_R6:
10620 case Mips::SCE:
10621 case Mips::SC_R6: {
10622 switch (OpNum) {
10623 case 1:
10624 // op: rt
10625 return 16;
10626 case 2:
10627 // op: base
10628 return 21;
10629 case 3:
10630 // op: offset
10631 return 7;
10632 }
10633 break;
10634 }
10635 case Mips::CTC1_MM:
10636 case Mips::MTC1_D64_MM:
10637 case Mips::MTC1_MM:
10638 case Mips::MTC1_MMR6: {
10639 switch (OpNum) {
10640 case 1:
10641 // op: rt
10642 return 21;
10643 case 0:
10644 // op: fs
10645 return 16;
10646 }
10647 break;
10648 }
10649 case Mips::CTC2_MM:
10650 case Mips::MTC2_MMR6:
10651 case Mips::MTHC2_MMR6: {
10652 switch (OpNum) {
10653 case 1:
10654 // op: rt
10655 return 21;
10656 case 0:
10657 // op: impl
10658 return 16;
10659 }
10660 break;
10661 }
10662 case Mips::MTC0_MM: {
10663 switch (OpNum) {
10664 case 1:
10665 // op: rt
10666 return 21;
10667 case 0:
10668 // op: rd
10669 return 16;
10670 case 2:
10671 // op: sel
10672 return 11;
10673 }
10674 break;
10675 }
10676 case Mips::BEQC_MMR6:
10677 case Mips::BGEC_MMR6:
10678 case Mips::BGEUC_MMR6:
10679 case Mips::BLTC_MMR6:
10680 case Mips::BLTUC_MMR6:
10681 case Mips::BNEC_MMR6: {
10682 switch (OpNum) {
10683 case 1:
10684 // op: rt
10685 return 21;
10686 case 0:
10687 // op: rs
10688 return 16;
10689 case 2:
10690 // op: offset
10691 return 0;
10692 }
10693 break;
10694 }
10695 case Mips::MTC0_MMR6:
10696 case Mips::MTGC0_MM:
10697 case Mips::MTHC0_MMR6:
10698 case Mips::MTHGC0_MM: {
10699 switch (OpNum) {
10700 case 1:
10701 // op: rt
10702 return 21;
10703 case 0:
10704 // op: rs
10705 return 16;
10706 case 2:
10707 // op: sel
10708 return 11;
10709 }
10710 break;
10711 }
10712 case Mips::CMPU_EQ_QB_MM:
10713 case Mips::CMPU_LE_QB_MM:
10714 case Mips::CMPU_LT_QB_MM:
10715 case Mips::CMP_EQ_PH_MM:
10716 case Mips::CMP_LE_PH_MM:
10717 case Mips::CMP_LT_PH_MM: {
10718 switch (OpNum) {
10719 case 1:
10720 // op: rt
10721 return 21;
10722 case 0:
10723 // op: rs
10724 return 16;
10725 }
10726 break;
10727 }
10728 case Mips::SCE_MM:
10729 case Mips::SC_MMR6: {
10730 switch (OpNum) {
10731 case 1:
10732 // op: rt
10733 return 21;
10734 case 2:
10735 // op: base
10736 return 16;
10737 case 3:
10738 // op: offset
10739 return 0;
10740 }
10741 break;
10742 }
10743 case Mips::AdduRxRyRz16:
10744 case Mips::SubuRxRyRz16: {
10745 switch (OpNum) {
10746 case 1:
10747 // op: rx
10748 return 8;
10749 case 2:
10750 // op: ry
10751 return 5;
10752 case 0:
10753 // op: rz
10754 return 2;
10755 }
10756 break;
10757 }
10758 case Mips::AndRxRxRy16:
10759 case Mips::OrRxRxRy16:
10760 case Mips::SllvRxRy16:
10761 case Mips::SravRxRy16:
10762 case Mips::SrlvRxRy16:
10763 case Mips::XorRxRxRy16: {
10764 switch (OpNum) {
10765 case 1:
10766 // op: rx
10767 return 8;
10768 case 2:
10769 // op: ry
10770 return 5;
10771 }
10772 break;
10773 }
10774 case Mips::LDI_B:
10775 case Mips::LDI_D:
10776 case Mips::LDI_H:
10777 case Mips::LDI_W: {
10778 switch (OpNum) {
10779 case 1:
10780 // op: s10
10781 return 11;
10782 case 0:
10783 // op: wd
10784 return 6;
10785 }
10786 break;
10787 }
10788 case Mips::SHILO_MM: {
10789 switch (OpNum) {
10790 case 1:
10791 // op: shift
10792 return 16;
10793 case 0:
10794 // op: ac
10795 return 14;
10796 }
10797 break;
10798 }
10799 case Mips::BCLRI_B:
10800 case Mips::BCLRI_D:
10801 case Mips::BCLRI_H:
10802 case Mips::BCLRI_W:
10803 case Mips::BNEGI_B:
10804 case Mips::BNEGI_D:
10805 case Mips::BNEGI_H:
10806 case Mips::BNEGI_W:
10807 case Mips::BSETI_B:
10808 case Mips::BSETI_D:
10809 case Mips::BSETI_H:
10810 case Mips::BSETI_W:
10811 case Mips::SAT_S_B:
10812 case Mips::SAT_S_D:
10813 case Mips::SAT_S_H:
10814 case Mips::SAT_S_W:
10815 case Mips::SAT_U_B:
10816 case Mips::SAT_U_D:
10817 case Mips::SAT_U_H:
10818 case Mips::SAT_U_W:
10819 case Mips::SLLI_B:
10820 case Mips::SLLI_D:
10821 case Mips::SLLI_H:
10822 case Mips::SLLI_W:
10823 case Mips::SRAI_B:
10824 case Mips::SRAI_D:
10825 case Mips::SRAI_H:
10826 case Mips::SRAI_W:
10827 case Mips::SRARI_B:
10828 case Mips::SRARI_D:
10829 case Mips::SRARI_H:
10830 case Mips::SRARI_W:
10831 case Mips::SRLI_B:
10832 case Mips::SRLI_D:
10833 case Mips::SRLI_H:
10834 case Mips::SRLI_W:
10835 case Mips::SRLRI_B:
10836 case Mips::SRLRI_D:
10837 case Mips::SRLRI_H:
10838 case Mips::SRLRI_W: {
10839 switch (OpNum) {
10840 case 1:
10841 // op: ws
10842 return 11;
10843 case 0:
10844 // op: wd
10845 return 6;
10846 case 2:
10847 // op: m
10848 return 16;
10849 }
10850 break;
10851 }
10852 case Mips::FCLASS_D:
10853 case Mips::FCLASS_W:
10854 case Mips::FEXUPL_D:
10855 case Mips::FEXUPL_W:
10856 case Mips::FEXUPR_D:
10857 case Mips::FEXUPR_W:
10858 case Mips::FFINT_S_D:
10859 case Mips::FFINT_S_W:
10860 case Mips::FFINT_U_D:
10861 case Mips::FFINT_U_W:
10862 case Mips::FFQL_D:
10863 case Mips::FFQL_W:
10864 case Mips::FFQR_D:
10865 case Mips::FFQR_W:
10866 case Mips::FLOG2_D:
10867 case Mips::FLOG2_W:
10868 case Mips::FRCP_D:
10869 case Mips::FRCP_W:
10870 case Mips::FRINT_D:
10871 case Mips::FRINT_W:
10872 case Mips::FRSQRT_D:
10873 case Mips::FRSQRT_W:
10874 case Mips::FSQRT_D:
10875 case Mips::FSQRT_W:
10876 case Mips::FTINT_S_D:
10877 case Mips::FTINT_S_W:
10878 case Mips::FTINT_U_D:
10879 case Mips::FTINT_U_W:
10880 case Mips::FTRUNC_S_D:
10881 case Mips::FTRUNC_S_W:
10882 case Mips::FTRUNC_U_D:
10883 case Mips::FTRUNC_U_W:
10884 case Mips::MOVE_V:
10885 case Mips::NLOC_B:
10886 case Mips::NLOC_D:
10887 case Mips::NLOC_H:
10888 case Mips::NLOC_W:
10889 case Mips::NLZC_B:
10890 case Mips::NLZC_D:
10891 case Mips::NLZC_H:
10892 case Mips::NLZC_W:
10893 case Mips::PCNT_B:
10894 case Mips::PCNT_D:
10895 case Mips::PCNT_H:
10896 case Mips::PCNT_W: {
10897 switch (OpNum) {
10898 case 1:
10899 // op: ws
10900 return 11;
10901 case 0:
10902 // op: wd
10903 return 6;
10904 }
10905 break;
10906 }
10907 case Mips::MAXA_D:
10908 case Mips::MAXA_S:
10909 case Mips::MAX_D:
10910 case Mips::MAX_S:
10911 case Mips::MINA_D:
10912 case Mips::MINA_S:
10913 case Mips::MIN_D:
10914 case Mips::MIN_S:
10915 case Mips::SELEQZ_D:
10916 case Mips::SELEQZ_S:
10917 case Mips::SELNEZ_D:
10918 case Mips::SELNEZ_S: {
10919 switch (OpNum) {
10920 case 2:
10921 // op: ft
10922 return 16;
10923 case 1:
10924 // op: fs
10925 return 11;
10926 case 0:
10927 // op: fd
10928 return 6;
10929 }
10930 break;
10931 }
10932 case Mips::CMP_AF_D_MMR6:
10933 case Mips::CMP_AF_S_MMR6:
10934 case Mips::CMP_EQ_D_MMR6:
10935 case Mips::CMP_EQ_S_MMR6:
10936 case Mips::CMP_LE_D_MMR6:
10937 case Mips::CMP_LE_S_MMR6:
10938 case Mips::CMP_LT_D_MMR6:
10939 case Mips::CMP_LT_S_MMR6:
10940 case Mips::CMP_SAF_D_MMR6:
10941 case Mips::CMP_SAF_S_MMR6:
10942 case Mips::CMP_SEQ_D_MMR6:
10943 case Mips::CMP_SEQ_S_MMR6:
10944 case Mips::CMP_SLE_D_MMR6:
10945 case Mips::CMP_SLE_S_MMR6:
10946 case Mips::CMP_SLT_D_MMR6:
10947 case Mips::CMP_SLT_S_MMR6:
10948 case Mips::CMP_SUEQ_D_MMR6:
10949 case Mips::CMP_SUEQ_S_MMR6:
10950 case Mips::CMP_SULE_D_MMR6:
10951 case Mips::CMP_SULE_S_MMR6:
10952 case Mips::CMP_SULT_D_MMR6:
10953 case Mips::CMP_SULT_S_MMR6:
10954 case Mips::CMP_SUN_D_MMR6:
10955 case Mips::CMP_SUN_S_MMR6:
10956 case Mips::CMP_UEQ_D_MMR6:
10957 case Mips::CMP_UEQ_S_MMR6:
10958 case Mips::CMP_ULE_D_MMR6:
10959 case Mips::CMP_ULE_S_MMR6:
10960 case Mips::CMP_ULT_D_MMR6:
10961 case Mips::CMP_ULT_S_MMR6:
10962 case Mips::CMP_UN_D_MMR6:
10963 case Mips::CMP_UN_S_MMR6:
10964 case Mips::FADD_D32_MM:
10965 case Mips::FADD_D64_MM:
10966 case Mips::FADD_S_MM:
10967 case Mips::FDIV_D32_MM:
10968 case Mips::FDIV_D64_MM:
10969 case Mips::FDIV_S_MM:
10970 case Mips::FMUL_D32_MM:
10971 case Mips::FMUL_D64_MM:
10972 case Mips::FMUL_S_MM:
10973 case Mips::FSUB_D32_MM:
10974 case Mips::FSUB_D64_MM:
10975 case Mips::FSUB_S_MM:
10976 case Mips::MAXA_D_MMR6:
10977 case Mips::MAXA_S_MMR6:
10978 case Mips::MAX_D_MMR6:
10979 case Mips::MAX_S_MMR6:
10980 case Mips::MINA_D_MMR6:
10981 case Mips::MINA_S_MMR6:
10982 case Mips::MIN_D_MMR6:
10983 case Mips::MIN_S_MMR6:
10984 case Mips::SELEQZ_D_MMR6:
10985 case Mips::SELEQZ_S_MMR6:
10986 case Mips::SELNEZ_D_MMR6:
10987 case Mips::SELNEZ_S_MMR6: {
10988 switch (OpNum) {
10989 case 2:
10990 // op: ft
10991 return 21;
10992 case 1:
10993 // op: fs
10994 return 16;
10995 case 0:
10996 // op: fd
10997 return 11;
10998 }
10999 break;
11000 }
11001 case Mips::CACHE:
11002 case Mips::PREF: {
11003 switch (OpNum) {
11004 case 2:
11005 // op: hint
11006 return 16;
11007 case 0:
11008 // op: base
11009 return 21;
11010 case 1:
11011 // op: offset
11012 return 0;
11013 }
11014 break;
11015 }
11016 case Mips::CACHE_R6:
11017 case Mips::PREF_R6: {
11018 switch (OpNum) {
11019 case 2:
11020 // op: hint
11021 return 16;
11022 case 0:
11023 // op: base
11024 return 21;
11025 case 1:
11026 // op: offset
11027 return 7;
11028 }
11029 break;
11030 }
11031 case Mips::CACHEE_MM:
11032 case Mips::CACHE_MM:
11033 case Mips::PREFE_MM:
11034 case Mips::PREF_MM: {
11035 switch (OpNum) {
11036 case 2:
11037 // op: hint
11038 return 21;
11039 case 0:
11040 // op: base
11041 return 16;
11042 case 1:
11043 // op: offset
11044 return 0;
11045 }
11046 break;
11047 }
11048 case Mips::ADDVI_B:
11049 case Mips::ADDVI_D:
11050 case Mips::ADDVI_H:
11051 case Mips::ADDVI_W:
11052 case Mips::CEQI_B:
11053 case Mips::CEQI_D:
11054 case Mips::CEQI_H:
11055 case Mips::CEQI_W:
11056 case Mips::CLEI_S_B:
11057 case Mips::CLEI_S_D:
11058 case Mips::CLEI_S_H:
11059 case Mips::CLEI_S_W:
11060 case Mips::CLEI_U_B:
11061 case Mips::CLEI_U_D:
11062 case Mips::CLEI_U_H:
11063 case Mips::CLEI_U_W:
11064 case Mips::CLTI_S_B:
11065 case Mips::CLTI_S_D:
11066 case Mips::CLTI_S_H:
11067 case Mips::CLTI_S_W:
11068 case Mips::CLTI_U_B:
11069 case Mips::CLTI_U_D:
11070 case Mips::CLTI_U_H:
11071 case Mips::CLTI_U_W:
11072 case Mips::MAXI_S_B:
11073 case Mips::MAXI_S_D:
11074 case Mips::MAXI_S_H:
11075 case Mips::MAXI_S_W:
11076 case Mips::MAXI_U_B:
11077 case Mips::MAXI_U_D:
11078 case Mips::MAXI_U_H:
11079 case Mips::MAXI_U_W:
11080 case Mips::MINI_S_B:
11081 case Mips::MINI_S_D:
11082 case Mips::MINI_S_H:
11083 case Mips::MINI_S_W:
11084 case Mips::MINI_U_B:
11085 case Mips::MINI_U_D:
11086 case Mips::MINI_U_H:
11087 case Mips::MINI_U_W:
11088 case Mips::SUBVI_B:
11089 case Mips::SUBVI_D:
11090 case Mips::SUBVI_H:
11091 case Mips::SUBVI_W: {
11092 switch (OpNum) {
11093 case 2:
11094 // op: imm
11095 return 16;
11096 case 1:
11097 // op: ws
11098 return 11;
11099 case 0:
11100 // op: wd
11101 return 6;
11102 }
11103 break;
11104 }
11105 case Mips::AddiuRxRyOffMemX16: {
11106 switch (OpNum) {
11107 case 2:
11108 // op: imm15
11109 return 0;
11110 case 1:
11111 // op: rx
11112 return 8;
11113 case 0:
11114 // op: ry
11115 return 5;
11116 }
11117 break;
11118 }
11119 case Mips::AddiuRxRxImmX16: {
11120 switch (OpNum) {
11121 case 2:
11122 // op: imm16
11123 return 0;
11124 case 0:
11125 // op: rx
11126 return 8;
11127 }
11128 break;
11129 }
11130 case Mips::LbRxRyOffMemX16:
11131 case Mips::LbuRxRyOffMemX16:
11132 case Mips::LhRxRyOffMemX16:
11133 case Mips::LhuRxRyOffMemX16:
11134 case Mips::LwRxRyOffMemX16:
11135 case Mips::LwRxSpImmX16:
11136 case Mips::SbRxRyOffMemX16:
11137 case Mips::ShRxRyOffMemX16:
11138 case Mips::SwRxRyOffMemX16:
11139 case Mips::SwRxSpImmX16: {
11140 switch (OpNum) {
11141 case 2:
11142 // op: imm16
11143 return 0;
11144 case 1:
11145 // op: rx
11146 return 8;
11147 case 0:
11148 // op: ry
11149 return 5;
11150 }
11151 break;
11152 }
11153 case Mips::LBUX_MM:
11154 case Mips::LHX_MM:
11155 case Mips::LWX_MM: {
11156 switch (OpNum) {
11157 case 2:
11158 // op: index
11159 return 21;
11160 case 1:
11161 // op: base
11162 return 16;
11163 case 0:
11164 // op: rd
11165 return 11;
11166 }
11167 break;
11168 }
11169 case Mips::COPY_S_B:
11170 case Mips::COPY_S_D:
11171 case Mips::COPY_S_H:
11172 case Mips::COPY_S_W:
11173 case Mips::COPY_U_B:
11174 case Mips::COPY_U_H:
11175 case Mips::COPY_U_W: {
11176 switch (OpNum) {
11177 case 2:
11178 // op: n
11179 return 16;
11180 case 1:
11181 // op: ws
11182 return 11;
11183 case 0:
11184 // op: rd
11185 return 6;
11186 }
11187 break;
11188 }
11189 case Mips::SPLATI_B:
11190 case Mips::SPLATI_D:
11191 case Mips::SPLATI_H:
11192 case Mips::SPLATI_W: {
11193 switch (OpNum) {
11194 case 2:
11195 // op: n
11196 return 16;
11197 case 1:
11198 // op: ws
11199 return 11;
11200 case 0:
11201 // op: wd
11202 return 6;
11203 }
11204 break;
11205 }
11206 case Mips::INSVE_B:
11207 case Mips::INSVE_D:
11208 case Mips::INSVE_H:
11209 case Mips::INSVE_W: {
11210 switch (OpNum) {
11211 case 2:
11212 // op: n
11213 return 16;
11214 case 3:
11215 // op: ws
11216 return 11;
11217 case 0:
11218 // op: wd
11219 return 6;
11220 }
11221 break;
11222 }
11223 case Mips::LL_MM:
11224 case Mips::LWL_MM:
11225 case Mips::LWM32_MM:
11226 case Mips::LWR_MM:
11227 case Mips::LWU_MM:
11228 case Mips::SWL_MM:
11229 case Mips::SWM32_MM:
11230 case Mips::SWR_MM:
11231 case Mips::SW_MMR6: {
11232 switch (OpNum) {
11233 case 2:
11234 // op: offset
11235 return 0;
11236 case 1:
11237 // op: base
11238 return 16;
11239 case 0:
11240 // op: rt
11241 return 21;
11242 }
11243 break;
11244 }
11245 case Mips::LD_B:
11246 case Mips::LD_D:
11247 case Mips::LD_H:
11248 case Mips::LD_W:
11249 case Mips::ST_B:
11250 case Mips::ST_D:
11251 case Mips::ST_H:
11252 case Mips::ST_W: {
11253 switch (OpNum) {
11254 case 2:
11255 // op: offset
11256 return 16;
11257 case 1:
11258 // op: base
11259 return 11;
11260 case 0:
11261 // op: wd
11262 return 6;
11263 }
11264 break;
11265 }
11266 case Mips::MTHC1_D32:
11267 case Mips::MTHC1_D64: {
11268 switch (OpNum) {
11269 case 2:
11270 // op: rt
11271 return 16;
11272 case 0:
11273 // op: fs
11274 return 11;
11275 }
11276 break;
11277 }
11278 case Mips::SPLAT_B:
11279 case Mips::SPLAT_D:
11280 case Mips::SPLAT_H:
11281 case Mips::SPLAT_W: {
11282 switch (OpNum) {
11283 case 2:
11284 // op: rt
11285 return 16;
11286 case 1:
11287 // op: ws
11288 return 11;
11289 case 0:
11290 // op: wd
11291 return 6;
11292 }
11293 break;
11294 }
11295 case Mips::MTHC1_D32_MM:
11296 case Mips::MTHC1_D64_MM: {
11297 switch (OpNum) {
11298 case 2:
11299 // op: rt
11300 return 21;
11301 case 0:
11302 // op: fs
11303 return 16;
11304 }
11305 break;
11306 }
11307 case Mips::DPAQX_SA_W_PH_MMR2:
11308 case Mips::DPAQX_S_W_PH_MMR2:
11309 case Mips::DPAQ_SA_L_W_MM:
11310 case Mips::DPAQ_S_W_PH_MM:
11311 case Mips::DPAU_H_QBL_MM:
11312 case Mips::DPAU_H_QBR_MM:
11313 case Mips::DPAX_W_PH_MMR2:
11314 case Mips::DPA_W_PH_MMR2:
11315 case Mips::DPSQX_SA_W_PH_MMR2:
11316 case Mips::DPSQX_S_W_PH_MMR2:
11317 case Mips::DPSQ_SA_L_W_MM:
11318 case Mips::DPSQ_S_W_PH_MM:
11319 case Mips::DPSU_H_QBL_MM:
11320 case Mips::DPSU_H_QBR_MM:
11321 case Mips::DPSX_W_PH_MMR2:
11322 case Mips::DPS_W_PH_MMR2:
11323 case Mips::MADDU_DSP_MM:
11324 case Mips::MADD_DSP_MM:
11325 case Mips::MAQ_SA_W_PHL_MM:
11326 case Mips::MAQ_SA_W_PHR_MM:
11327 case Mips::MAQ_S_W_PHL_MM:
11328 case Mips::MAQ_S_W_PHR_MM:
11329 case Mips::MSUBU_DSP_MM:
11330 case Mips::MSUB_DSP_MM:
11331 case Mips::MULSAQ_S_W_PH_MM:
11332 case Mips::MULSA_W_PH_MMR2:
11333 case Mips::MULTU_DSP_MM:
11334 case Mips::MULT_DSP_MM: {
11335 switch (OpNum) {
11336 case 2:
11337 // op: rt
11338 return 21;
11339 case 1:
11340 // op: rs
11341 return 16;
11342 case 0:
11343 // op: ac
11344 return 14;
11345 }
11346 break;
11347 }
11348 case Mips::ADD_MM:
11349 case Mips::ADDu_MM:
11350 case Mips::AND_MM:
11351 case Mips::CMPGU_EQ_QB_MM:
11352 case Mips::CMPGU_LE_QB_MM:
11353 case Mips::CMPGU_LT_QB_MM:
11354 case Mips::MOVN_I_MM:
11355 case Mips::MOVZ_I_MM:
11356 case Mips::MUL_MM:
11357 case Mips::NOR_MM:
11358 case Mips::OR_MM:
11359 case Mips::SLT_MM:
11360 case Mips::SLTu_MM:
11361 case Mips::SUB_MM:
11362 case Mips::SUBu_MM:
11363 case Mips::XOR_MM: {
11364 switch (OpNum) {
11365 case 2:
11366 // op: rt
11367 return 21;
11368 case 1:
11369 // op: rs
11370 return 16;
11371 case 0:
11372 // op: rd
11373 return 11;
11374 }
11375 break;
11376 }
11377 case Mips::AND16_MM:
11378 case Mips::OR16_MM:
11379 case Mips::XOR16_MM: {
11380 switch (OpNum) {
11381 case 2:
11382 // op: rt
11383 return 3;
11384 case 1:
11385 // op: rs
11386 return 0;
11387 }
11388 break;
11389 }
11390 case Mips::AND16_MMR6:
11391 case Mips::OR16_MMR6:
11392 case Mips::XOR16_MMR6: {
11393 switch (OpNum) {
11394 case 2:
11395 // op: rt
11396 return 7;
11397 case 1:
11398 // op: rs
11399 return 4;
11400 }
11401 break;
11402 }
11403 case Mips::SllX16:
11404 case Mips::SraX16:
11405 case Mips::SrlX16: {
11406 switch (OpNum) {
11407 case 2:
11408 // op: sa6
11409 return 21;
11410 case 0:
11411 // op: rx
11412 return 8;
11413 case 1:
11414 // op: ry
11415 return 5;
11416 }
11417 break;
11418 }
11419 case Mips::ANDI_B:
11420 case Mips::NORI_B:
11421 case Mips::ORI_B:
11422 case Mips::SHF_B:
11423 case Mips::SHF_H:
11424 case Mips::SHF_W:
11425 case Mips::XORI_B: {
11426 switch (OpNum) {
11427 case 2:
11428 // op: u8
11429 return 16;
11430 case 1:
11431 // op: ws
11432 return 11;
11433 case 0:
11434 // op: wd
11435 return 6;
11436 }
11437 break;
11438 }
11439 case Mips::BINSLI_B:
11440 case Mips::BINSLI_D:
11441 case Mips::BINSLI_H:
11442 case Mips::BINSLI_W:
11443 case Mips::BINSRI_B:
11444 case Mips::BINSRI_D:
11445 case Mips::BINSRI_H:
11446 case Mips::BINSRI_W: {
11447 switch (OpNum) {
11448 case 2:
11449 // op: ws
11450 return 11;
11451 case 0:
11452 // op: wd
11453 return 6;
11454 case 3:
11455 // op: m
11456 return 16;
11457 }
11458 break;
11459 }
11460 case Mips::ADDS_A_B:
11461 case Mips::ADDS_A_D:
11462 case Mips::ADDS_A_H:
11463 case Mips::ADDS_A_W:
11464 case Mips::ADDS_S_B:
11465 case Mips::ADDS_S_D:
11466 case Mips::ADDS_S_H:
11467 case Mips::ADDS_S_W:
11468 case Mips::ADDS_U_B:
11469 case Mips::ADDS_U_D:
11470 case Mips::ADDS_U_H:
11471 case Mips::ADDS_U_W:
11472 case Mips::ADDV_B:
11473 case Mips::ADDV_D:
11474 case Mips::ADDV_H:
11475 case Mips::ADDV_W:
11476 case Mips::ADD_A_B:
11477 case Mips::ADD_A_D:
11478 case Mips::ADD_A_H:
11479 case Mips::ADD_A_W:
11480 case Mips::AND_V:
11481 case Mips::ASUB_S_B:
11482 case Mips::ASUB_S_D:
11483 case Mips::ASUB_S_H:
11484 case Mips::ASUB_S_W:
11485 case Mips::ASUB_U_B:
11486 case Mips::ASUB_U_D:
11487 case Mips::ASUB_U_H:
11488 case Mips::ASUB_U_W:
11489 case Mips::AVER_S_B:
11490 case Mips::AVER_S_D:
11491 case Mips::AVER_S_H:
11492 case Mips::AVER_S_W:
11493 case Mips::AVER_U_B:
11494 case Mips::AVER_U_D:
11495 case Mips::AVER_U_H:
11496 case Mips::AVER_U_W:
11497 case Mips::AVE_S_B:
11498 case Mips::AVE_S_D:
11499 case Mips::AVE_S_H:
11500 case Mips::AVE_S_W:
11501 case Mips::AVE_U_B:
11502 case Mips::AVE_U_D:
11503 case Mips::AVE_U_H:
11504 case Mips::AVE_U_W:
11505 case Mips::BCLR_B:
11506 case Mips::BCLR_D:
11507 case Mips::BCLR_H:
11508 case Mips::BCLR_W:
11509 case Mips::BNEG_B:
11510 case Mips::BNEG_D:
11511 case Mips::BNEG_H:
11512 case Mips::BNEG_W:
11513 case Mips::BSET_B:
11514 case Mips::BSET_D:
11515 case Mips::BSET_H:
11516 case Mips::BSET_W:
11517 case Mips::CEQ_B:
11518 case Mips::CEQ_D:
11519 case Mips::CEQ_H:
11520 case Mips::CEQ_W:
11521 case Mips::CLE_S_B:
11522 case Mips::CLE_S_D:
11523 case Mips::CLE_S_H:
11524 case Mips::CLE_S_W:
11525 case Mips::CLE_U_B:
11526 case Mips::CLE_U_D:
11527 case Mips::CLE_U_H:
11528 case Mips::CLE_U_W:
11529 case Mips::CLT_S_B:
11530 case Mips::CLT_S_D:
11531 case Mips::CLT_S_H:
11532 case Mips::CLT_S_W:
11533 case Mips::CLT_U_B:
11534 case Mips::CLT_U_D:
11535 case Mips::CLT_U_H:
11536 case Mips::CLT_U_W:
11537 case Mips::DIV_S_B:
11538 case Mips::DIV_S_D:
11539 case Mips::DIV_S_H:
11540 case Mips::DIV_S_W:
11541 case Mips::DIV_U_B:
11542 case Mips::DIV_U_D:
11543 case Mips::DIV_U_H:
11544 case Mips::DIV_U_W:
11545 case Mips::DOTP_S_D:
11546 case Mips::DOTP_S_H:
11547 case Mips::DOTP_S_W:
11548 case Mips::DOTP_U_D:
11549 case Mips::DOTP_U_H:
11550 case Mips::DOTP_U_W:
11551 case Mips::FADD_D:
11552 case Mips::FADD_W:
11553 case Mips::FCAF_D:
11554 case Mips::FCAF_W:
11555 case Mips::FCEQ_D:
11556 case Mips::FCEQ_W:
11557 case Mips::FCLE_D:
11558 case Mips::FCLE_W:
11559 case Mips::FCLT_D:
11560 case Mips::FCLT_W:
11561 case Mips::FCNE_D:
11562 case Mips::FCNE_W:
11563 case Mips::FCOR_D:
11564 case Mips::FCOR_W:
11565 case Mips::FCUEQ_D:
11566 case Mips::FCUEQ_W:
11567 case Mips::FCULE_D:
11568 case Mips::FCULE_W:
11569 case Mips::FCULT_D:
11570 case Mips::FCULT_W:
11571 case Mips::FCUNE_D:
11572 case Mips::FCUNE_W:
11573 case Mips::FCUN_D:
11574 case Mips::FCUN_W:
11575 case Mips::FDIV_D:
11576 case Mips::FDIV_W:
11577 case Mips::FEXDO_H:
11578 case Mips::FEXDO_W:
11579 case Mips::FEXP2_D:
11580 case Mips::FEXP2_W:
11581 case Mips::FMAX_A_D:
11582 case Mips::FMAX_A_W:
11583 case Mips::FMAX_D:
11584 case Mips::FMAX_W:
11585 case Mips::FMIN_A_D:
11586 case Mips::FMIN_A_W:
11587 case Mips::FMIN_D:
11588 case Mips::FMIN_W:
11589 case Mips::FMUL_D:
11590 case Mips::FMUL_W:
11591 case Mips::FSAF_D:
11592 case Mips::FSAF_W:
11593 case Mips::FSEQ_D:
11594 case Mips::FSEQ_W:
11595 case Mips::FSLE_D:
11596 case Mips::FSLE_W:
11597 case Mips::FSLT_D:
11598 case Mips::FSLT_W:
11599 case Mips::FSNE_D:
11600 case Mips::FSNE_W:
11601 case Mips::FSOR_D:
11602 case Mips::FSOR_W:
11603 case Mips::FSUB_D:
11604 case Mips::FSUB_W:
11605 case Mips::FSUEQ_D:
11606 case Mips::FSUEQ_W:
11607 case Mips::FSULE_D:
11608 case Mips::FSULE_W:
11609 case Mips::FSULT_D:
11610 case Mips::FSULT_W:
11611 case Mips::FSUNE_D:
11612 case Mips::FSUNE_W:
11613 case Mips::FSUN_D:
11614 case Mips::FSUN_W:
11615 case Mips::FTQ_H:
11616 case Mips::FTQ_W:
11617 case Mips::HADD_S_D:
11618 case Mips::HADD_S_H:
11619 case Mips::HADD_S_W:
11620 case Mips::HADD_U_D:
11621 case Mips::HADD_U_H:
11622 case Mips::HADD_U_W:
11623 case Mips::HSUB_S_D:
11624 case Mips::HSUB_S_H:
11625 case Mips::HSUB_S_W:
11626 case Mips::HSUB_U_D:
11627 case Mips::HSUB_U_H:
11628 case Mips::HSUB_U_W:
11629 case Mips::ILVEV_B:
11630 case Mips::ILVEV_D:
11631 case Mips::ILVEV_H:
11632 case Mips::ILVEV_W:
11633 case Mips::ILVL_B:
11634 case Mips::ILVL_D:
11635 case Mips::ILVL_H:
11636 case Mips::ILVL_W:
11637 case Mips::ILVOD_B:
11638 case Mips::ILVOD_D:
11639 case Mips::ILVOD_H:
11640 case Mips::ILVOD_W:
11641 case Mips::ILVR_B:
11642 case Mips::ILVR_D:
11643 case Mips::ILVR_H:
11644 case Mips::ILVR_W:
11645 case Mips::MAX_A_B:
11646 case Mips::MAX_A_D:
11647 case Mips::MAX_A_H:
11648 case Mips::MAX_A_W:
11649 case Mips::MAX_S_B:
11650 case Mips::MAX_S_D:
11651 case Mips::MAX_S_H:
11652 case Mips::MAX_S_W:
11653 case Mips::MAX_U_B:
11654 case Mips::MAX_U_D:
11655 case Mips::MAX_U_H:
11656 case Mips::MAX_U_W:
11657 case Mips::MIN_A_B:
11658 case Mips::MIN_A_D:
11659 case Mips::MIN_A_H:
11660 case Mips::MIN_A_W:
11661 case Mips::MIN_S_B:
11662 case Mips::MIN_S_D:
11663 case Mips::MIN_S_H:
11664 case Mips::MIN_S_W:
11665 case Mips::MIN_U_B:
11666 case Mips::MIN_U_D:
11667 case Mips::MIN_U_H:
11668 case Mips::MIN_U_W:
11669 case Mips::MOD_S_B:
11670 case Mips::MOD_S_D:
11671 case Mips::MOD_S_H:
11672 case Mips::MOD_S_W:
11673 case Mips::MOD_U_B:
11674 case Mips::MOD_U_D:
11675 case Mips::MOD_U_H:
11676 case Mips::MOD_U_W:
11677 case Mips::MULR_Q_H:
11678 case Mips::MULR_Q_W:
11679 case Mips::MULV_B:
11680 case Mips::MULV_D:
11681 case Mips::MULV_H:
11682 case Mips::MULV_W:
11683 case Mips::MUL_Q_H:
11684 case Mips::MUL_Q_W:
11685 case Mips::NOR_V:
11686 case Mips::OR_V:
11687 case Mips::PCKEV_B:
11688 case Mips::PCKEV_D:
11689 case Mips::PCKEV_H:
11690 case Mips::PCKEV_W:
11691 case Mips::PCKOD_B:
11692 case Mips::PCKOD_D:
11693 case Mips::PCKOD_H:
11694 case Mips::PCKOD_W:
11695 case Mips::SLL_B:
11696 case Mips::SLL_D:
11697 case Mips::SLL_H:
11698 case Mips::SLL_W:
11699 case Mips::SRAR_B:
11700 case Mips::SRAR_D:
11701 case Mips::SRAR_H:
11702 case Mips::SRAR_W:
11703 case Mips::SRA_B:
11704 case Mips::SRA_D:
11705 case Mips::SRA_H:
11706 case Mips::SRA_W:
11707 case Mips::SRLR_B:
11708 case Mips::SRLR_D:
11709 case Mips::SRLR_H:
11710 case Mips::SRLR_W:
11711 case Mips::SRL_B:
11712 case Mips::SRL_D:
11713 case Mips::SRL_H:
11714 case Mips::SRL_W:
11715 case Mips::SUBSUS_U_B:
11716 case Mips::SUBSUS_U_D:
11717 case Mips::SUBSUS_U_H:
11718 case Mips::SUBSUS_U_W:
11719 case Mips::SUBSUU_S_B:
11720 case Mips::SUBSUU_S_D:
11721 case Mips::SUBSUU_S_H:
11722 case Mips::SUBSUU_S_W:
11723 case Mips::SUBS_S_B:
11724 case Mips::SUBS_S_D:
11725 case Mips::SUBS_S_H:
11726 case Mips::SUBS_S_W:
11727 case Mips::SUBS_U_B:
11728 case Mips::SUBS_U_D:
11729 case Mips::SUBS_U_H:
11730 case Mips::SUBS_U_W:
11731 case Mips::SUBV_B:
11732 case Mips::SUBV_D:
11733 case Mips::SUBV_H:
11734 case Mips::SUBV_W:
11735 case Mips::XOR_V: {
11736 switch (OpNum) {
11737 case 2:
11738 // op: wt
11739 return 16;
11740 case 1:
11741 // op: ws
11742 return 11;
11743 case 0:
11744 // op: wd
11745 return 6;
11746 }
11747 break;
11748 }
11749 case Mips::MADDF_D:
11750 case Mips::MADDF_S:
11751 case Mips::MSUBF_D:
11752 case Mips::MSUBF_S:
11753 case Mips::SEL_D:
11754 case Mips::SEL_S: {
11755 switch (OpNum) {
11756 case 3:
11757 // op: ft
11758 return 16;
11759 case 2:
11760 // op: fs
11761 return 11;
11762 case 0:
11763 // op: fd
11764 return 6;
11765 }
11766 break;
11767 }
11768 case Mips::MADD_D32_MM:
11769 case Mips::MADD_S_MM:
11770 case Mips::MSUB_D32_MM:
11771 case Mips::MSUB_S_MM:
11772 case Mips::NMADD_D32_MM:
11773 case Mips::NMADD_S_MM:
11774 case Mips::NMSUB_D32_MM:
11775 case Mips::NMSUB_S_MM: {
11776 switch (OpNum) {
11777 case 3:
11778 // op: ft
11779 return 21;
11780 case 2:
11781 // op: fs
11782 return 16;
11783 case 0:
11784 // op: fd
11785 return 11;
11786 case 1:
11787 // op: fr
11788 return 6;
11789 }
11790 break;
11791 }
11792 case Mips::MADDF_D_MMR6:
11793 case Mips::MADDF_S_MMR6:
11794 case Mips::MSUBF_D_MMR6:
11795 case Mips::MSUBF_S_MMR6:
11796 case Mips::SEL_D_MMR6:
11797 case Mips::SEL_S_MMR6: {
11798 switch (OpNum) {
11799 case 3:
11800 // op: ft
11801 return 21;
11802 case 2:
11803 // op: fs
11804 return 16;
11805 case 0:
11806 // op: fd
11807 return 11;
11808 }
11809 break;
11810 }
11811 case Mips::INSERT_B:
11812 case Mips::INSERT_D:
11813 case Mips::INSERT_H:
11814 case Mips::INSERT_W: {
11815 switch (OpNum) {
11816 case 3:
11817 // op: n
11818 return 16;
11819 case 2:
11820 // op: rs
11821 return 11;
11822 case 0:
11823 // op: wd
11824 return 6;
11825 }
11826 break;
11827 }
11828 case Mips::SLDI_B:
11829 case Mips::SLDI_D:
11830 case Mips::SLDI_H:
11831 case Mips::SLDI_W: {
11832 switch (OpNum) {
11833 case 3:
11834 // op: n
11835 return 16;
11836 case 2:
11837 // op: ws
11838 return 11;
11839 case 0:
11840 // op: wd
11841 return 6;
11842 }
11843 break;
11844 }
11845 case Mips::LWP_MM:
11846 case Mips::SWP_MM: {
11847 switch (OpNum) {
11848 case 3:
11849 // op: offset
11850 return 0;
11851 case 2:
11852 // op: base
11853 return 16;
11854 case 0:
11855 // op: rt
11856 return 21;
11857 }
11858 break;
11859 }
11860 case Mips::SC_MM: {
11861 switch (OpNum) {
11862 case 3:
11863 // op: offset
11864 return 0;
11865 case 2:
11866 // op: base
11867 return 16;
11868 case 1:
11869 // op: rt
11870 return 21;
11871 }
11872 break;
11873 }
11874 case Mips::SLD_B:
11875 case Mips::SLD_D:
11876 case Mips::SLD_H:
11877 case Mips::SLD_W: {
11878 switch (OpNum) {
11879 case 3:
11880 // op: rt
11881 return 16;
11882 case 2:
11883 // op: ws
11884 return 11;
11885 case 0:
11886 // op: wd
11887 return 6;
11888 }
11889 break;
11890 }
11891 case Mips::MOVEP_MMR6: {
11892 switch (OpNum) {
11893 case 3:
11894 // op: rt
11895 return 4;
11896 case 2:
11897 // op: rs
11898 return 0;
11899 }
11900 break;
11901 }
11902 case Mips::MOVEP_MM: {
11903 switch (OpNum) {
11904 case 3:
11905 // op: rt
11906 return 4;
11907 case 2:
11908 // op: rs
11909 return 1;
11910 }
11911 break;
11912 }
11913 case Mips::BMNZI_B:
11914 case Mips::BMZI_B:
11915 case Mips::BSELI_B: {
11916 switch (OpNum) {
11917 case 3:
11918 // op: u8
11919 return 16;
11920 case 2:
11921 // op: ws
11922 return 11;
11923 case 0:
11924 // op: wd
11925 return 6;
11926 }
11927 break;
11928 }
11929 case Mips::BINSL_B:
11930 case Mips::BINSL_D:
11931 case Mips::BINSL_H:
11932 case Mips::BINSL_W:
11933 case Mips::BINSR_B:
11934 case Mips::BINSR_D:
11935 case Mips::BINSR_H:
11936 case Mips::BINSR_W:
11937 case Mips::BMNZ_V:
11938 case Mips::BMZ_V:
11939 case Mips::BSEL_V:
11940 case Mips::DPADD_S_D:
11941 case Mips::DPADD_S_H:
11942 case Mips::DPADD_S_W:
11943 case Mips::DPADD_U_D:
11944 case Mips::DPADD_U_H:
11945 case Mips::DPADD_U_W:
11946 case Mips::DPSUB_S_D:
11947 case Mips::DPSUB_S_H:
11948 case Mips::DPSUB_S_W:
11949 case Mips::DPSUB_U_D:
11950 case Mips::DPSUB_U_H:
11951 case Mips::DPSUB_U_W:
11952 case Mips::FMADD_D:
11953 case Mips::FMADD_W:
11954 case Mips::FMSUB_D:
11955 case Mips::FMSUB_W:
11956 case Mips::MADDR_Q_H:
11957 case Mips::MADDR_Q_W:
11958 case Mips::MADDV_B:
11959 case Mips::MADDV_D:
11960 case Mips::MADDV_H:
11961 case Mips::MADDV_W:
11962 case Mips::MADD_Q_H:
11963 case Mips::MADD_Q_W:
11964 case Mips::MSUBR_Q_H:
11965 case Mips::MSUBR_Q_W:
11966 case Mips::MSUBV_B:
11967 case Mips::MSUBV_D:
11968 case Mips::MSUBV_H:
11969 case Mips::MSUBV_W:
11970 case Mips::MSUB_Q_H:
11971 case Mips::MSUB_Q_W:
11972 case Mips::VSHF_B:
11973 case Mips::VSHF_D:
11974 case Mips::VSHF_H:
11975 case Mips::VSHF_W: {
11976 switch (OpNum) {
11977 case 3:
11978 // op: wt
11979 return 16;
11980 case 2:
11981 // op: ws
11982 return 11;
11983 case 0:
11984 // op: wd
11985 return 6;
11986 }
11987 break;
11988 }
11989 default:
11990 reportUnsupportedInst(MI);
11991 }
11992 reportUnsupportedOperand(MI, OpNum);
11993}
11994
11995#endif // GET_OPERAND_BIT_OFFSET
11996
11997