1//===- TableGen'erated file -------------------------------------*- C++ -*-===//
2//
3// Machine Code Emitter
4//
5// Automatically generated file, do not edit!
6//
7//===----------------------------------------------------------------------===//
8
9unsigned PPCCodeEmitter::getBinaryCodeForInstr(const MachineInstr &MI) {
10  static const unsigned InstBits[] = {
11    0U,
12    0U,
13    0U,
14    0U,
15    0U,
16    0U,
17    0U,
18    0U,
19    0U,
20    0U,
21    0U,
22    0U,
23    0U,
24    0U,
25    2080375316U,	// ADD4
26    2080375316U,	// ADD8
27    2080374804U,	// ADDC
28    2080374804U,	// ADDC8
29    2080375060U,	// ADDE
30    2080375060U,	// ADDE8
31    939524096U,	// ADDI
32    939524096U,	// ADDI8
33    805306368U,	// ADDIC
34    805306368U,	// ADDIC8
35    872415232U,	// ADDICo
36    1006632960U,	// ADDIS
37    1006632960U,	// ADDIS8
38    2080375252U,	// ADDME
39    2080375252U,	// ADDME8
40    2080375188U,	// ADDZE
41    2080375188U,	// ADDZE8
42    0U,	// ADJCALLSTACKDOWN
43    0U,	// ADJCALLSTACKUP
44    2080374840U,	// AND
45    2080374840U,	// AND8
46    2080374904U,	// ANDC
47    2080374904U,	// ANDC8
48    1946157056U,	// ANDISo
49    1946157056U,	// ANDISo8
50    1879048192U,	// ANDIo
51    1879048192U,	// ANDIo8
52    0U,	// ATOMIC_CMP_SWAP_I16
53    0U,	// ATOMIC_CMP_SWAP_I32
54    0U,	// ATOMIC_CMP_SWAP_I64
55    0U,	// ATOMIC_CMP_SWAP_I8
56    0U,	// ATOMIC_LOAD_ADD_I16
57    0U,	// ATOMIC_LOAD_ADD_I32
58    0U,	// ATOMIC_LOAD_ADD_I64
59    0U,	// ATOMIC_LOAD_ADD_I8
60    0U,	// ATOMIC_LOAD_AND_I16
61    0U,	// ATOMIC_LOAD_AND_I32
62    0U,	// ATOMIC_LOAD_AND_I64
63    0U,	// ATOMIC_LOAD_AND_I8
64    0U,	// ATOMIC_LOAD_NAND_I16
65    0U,	// ATOMIC_LOAD_NAND_I32
66    0U,	// ATOMIC_LOAD_NAND_I64
67    0U,	// ATOMIC_LOAD_NAND_I8
68    0U,	// ATOMIC_LOAD_OR_I16
69    0U,	// ATOMIC_LOAD_OR_I32
70    0U,	// ATOMIC_LOAD_OR_I64
71    0U,	// ATOMIC_LOAD_OR_I8
72    0U,	// ATOMIC_LOAD_SUB_I16
73    0U,	// ATOMIC_LOAD_SUB_I32
74    0U,	// ATOMIC_LOAD_SUB_I64
75    0U,	// ATOMIC_LOAD_SUB_I8
76    0U,	// ATOMIC_LOAD_XOR_I16
77    0U,	// ATOMIC_LOAD_XOR_I32
78    0U,	// ATOMIC_LOAD_XOR_I64
79    0U,	// ATOMIC_LOAD_XOR_I8
80    0U,	// ATOMIC_SWAP_I16
81    0U,	// ATOMIC_SWAP_I32
82    0U,	// ATOMIC_SWAP_I64
83    0U,	// ATOMIC_SWAP_I8
84    1207959552U,	// B
85    1073741824U,	// BCC
86    1317012512U,	// BCTR
87    1317012513U,	// BCTRL8_Darwin
88    1317012513U,	// BCTRL8_ELF
89    1317012513U,	// BCTRL_Darwin
90    1317012513U,	// BCTRL_SVR4
91    1207959553U,	// BL8_Darwin
92    1207959553U,	// BL8_ELF
93    1207959555U,	// BLA8_Darwin
94    1207959555U,	// BLA8_ELF
95    1207959555U,	// BLA_Darwin
96    1207959555U,	// BLA_SVR4
97    1275068448U,	// BLR
98    1207959553U,	// BL_Darwin
99    1207959553U,	// BL_SVR4
100    2082471936U,	// CMPD
101    740294656U,	// CMPDI
102    2082472000U,	// CMPLD
103    673185792U,	// CMPLDI
104    2080374848U,	// CMPLW
105    671088640U,	// CMPLWI
106    2080374784U,	// CMPW
107    738197504U,	// CMPWI
108    2080374900U,	// CNTLZD
109    2080374836U,	// CNTLZW
110    1275068994U,	// CREQV
111    1275069314U,	// CROR
112    1275068994U,	// CRSET
113    2080376300U,	// DCBA
114    2080374956U,	// DCBF
115    2080375724U,	// DCBI
116    2080374892U,	// DCBST
117    2080375340U,	// DCBT
118    2080375276U,	// DCBTST
119    2080376812U,	// DCBZ
120    2082473964U,	// DCBZL
121    2080375762U,	// DIVD
122    2080375698U,	// DIVDU
123    2080375766U,	// DIVW
124    2080375702U,	// DIVWU
125    2080376428U,	// DSS
126    2080376428U,	// DSSALL
127    2080375468U,	// DST
128    2080375468U,	// DST64
129    2080375532U,	// DSTST
130    2080375532U,	// DSTST64
131    2080375532U,	// DSTSTT
132    2080375532U,	// DSTSTT64
133    2080375468U,	// DSTT
134    2080375468U,	// DSTT64
135    0U,	// DYNALLOC
136    0U,	// DYNALLOC8
137    2080375352U,	// EQV
138    2080375352U,	// EQV8
139    2080376692U,	// EXTSB
140    2080376692U,	// EXTSB8
141    2080376628U,	// EXTSH
142    2080376628U,	// EXTSH8
143    2080376756U,	// EXTSW
144    2080376756U,	// EXTSW_32
145    2080376756U,	// EXTSW_32_64
146    4227858960U,	// FABSD
147    4227858960U,	// FABSS
148    4227858474U,	// FADD
149    3959423018U,	// FADDS
150    4227858474U,	// FADDrtz
151    4227860124U,	// FCFID
152    4227858432U,	// FCMPUD
153    4227858432U,	// FCMPUS
154    4227860062U,	// FCTIDZ
155    4227858462U,	// FCTIWZ
156    4227858468U,	// FDIV
157    3959423012U,	// FDIVS
158    4227858490U,	// FMADD
159    3959423034U,	// FMADDS
160    4227858576U,	// FMR
161    4227858488U,	// FMSUB
162    3959423032U,	// FMSUBS
163    4227858482U,	// FMUL
164    3959423026U,	// FMULS
165    4227858704U,	// FNABSD
166    4227858704U,	// FNABSS
167    4227858512U,	// FNEGD
168    4227858512U,	// FNEGS
169    4227858494U,	// FNMADD
170    3959423038U,	// FNMADDS
171    4227858492U,	// FNMSUB
172    3959423036U,	// FNMSUBS
173    4227858456U,	// FRSP
174    4227858478U,	// FSELD
175    4227858478U,	// FSELS
176    4227858476U,	// FSQRT
177    3959423020U,	// FSQRTS
178    4227858472U,	// FSUB
179    3959423016U,	// FSUBS
180    939524096U,	// LA
181    2281701376U,	// LBZ
182    2281701376U,	// LBZ8
183    2348810240U,	// LBZU
184    2348810240U,	// LBZU8
185    2080374958U,	// LBZX
186    2080374958U,	// LBZX8
187    3892314112U,	// LD
188    2080374952U,	// LDARX
189    3892314113U,	// LDU
190    2080374826U,	// LDX
191    3896508448U,	// LDinto_toc
192    3892314112U,	// LDtoc
193    3896574112U,	// LDtoc_restore
194    3355443200U,	// LFD
195    3422552064U,	// LFDU
196    2080375982U,	// LFDX
197    3221225472U,	// LFS
198    3288334336U,	// LFSU
199    2080375854U,	// LFSX
200    2818572288U,	// LHA
201    2818572288U,	// LHA8
202    2885681152U,	// LHAU
203    2885681152U,	// LHAU8
204    2080375470U,	// LHAX
205    2080375470U,	// LHAX8
206    2080376364U,	// LHBRX
207    2684354560U,	// LHZ
208    2684354560U,	// LHZ8
209    2751463424U,	// LHZU
210    2751463424U,	// LHZU8
211    2080375342U,	// LHZX
212    2080375342U,	// LHZX8
213    939524096U,	// LI
214    939524096U,	// LI8
215    1006632960U,	// LIS
216    1006632960U,	// LIS8
217    2080374798U,	// LVEBX
218    2080374862U,	// LVEHX
219    2080374926U,	// LVEWX
220    2080374796U,	// LVSL
221    2080374860U,	// LVSR
222    2080374990U,	// LVX
223    2080375502U,	// LVXL
224    3892314114U,	// LWA
225    2080374824U,	// LWARX
226    2080375466U,	// LWAX
227    2080375852U,	// LWBRX
228    2147483648U,	// LWZ
229    2147483648U,	// LWZ8
230    2214592512U,	// LWZU
231    2214592512U,	// LWZU8
232    2080374830U,	// LWZX
233    2080374830U,	// LWZX8
234    1275068416U,	// MCRF
235    2080374822U,	// MFCRpseud
236    2080965286U,	// MFCTR
237    2080965286U,	// MFCTR8
238    4227859598U,	// MFFS
239    2080899750U,	// MFLR
240    2080899750U,	// MFLR8
241    2081423398U,	// MFOCRF
242    2080391846U,	// MFVRSAVE
243    268436996U,	// MFVSCR
244    2080375072U,	// MTCRF
245    2080965542U,	// MTCTR
246    2080965542U,	// MTCTR8
247    4227858572U,	// MTFSB0
248    4227858508U,	// MTFSB1
249    4227859854U,	// MTFSF
250    2080900006U,	// MTLR
251    2080900006U,	// MTLR8
252    2080392102U,	// MTVRSAVE
253    268437060U,	// MTVSCR
254    2080374930U,	// MULHD
255    2080374802U,	// MULHDU
256    2080374934U,	// MULHW
257    2080374806U,	// MULHWU
258    2080375250U,	// MULLD
259    469762048U,	// MULLI
260    2080375254U,	// MULLW
261    0U,	// MovePCtoLR
262    0U,	// MovePCtoLR8
263    2080375736U,	// NAND
264    2080375736U,	// NAND8
265    2080374992U,	// NEG
266    2080374992U,	// NEG8
267    1610612736U,	// NOP
268    2080375032U,	// NOR
269    2080375032U,	// NOR8
270    2080375672U,	// OR
271    2080375672U,	// OR4To8
272    2080375672U,	// OR8
273    2080375672U,	// OR8To4
274    2080375608U,	// ORC
275    2080375608U,	// ORC8
276    1610612736U,	// ORI
277    1610612736U,	// ORI8
278    1677721600U,	// ORIS
279    1677721600U,	// ORIS8
280    2013265920U,	// RLDCL
281    2013265920U,	// RLDICL
282    2013265924U,	// RLDICR
283    2013265932U,	// RLDIMI
284    1342177280U,	// RLWIMI
285    1409286144U,	// RLWINM
286    1409286145U,	// RLWINMo
287    1543503872U,	// RLWNM
288    0U,	// SELECT_CC_F4
289    0U,	// SELECT_CC_F8
290    0U,	// SELECT_CC_I4
291    0U,	// SELECT_CC_I8
292    0U,	// SELECT_CC_VRRC
293    2080374838U,	// SLD
294    2080374832U,	// SLW
295    0U,	// SPILL_CR
296    2080376372U,	// SRAD
297    2080376436U,	// SRADI
298    2080376368U,	// SRAW
299    2080376432U,	// SRAWI
300    2080375862U,	// SRD
301    2080375856U,	// SRW
302    2550136832U,	// STB
303    2550136832U,	// STB8
304    2617245696U,	// STBU
305    2550136832U,	// STBU8
306    2080375214U,	// STBX
307    2080375214U,	// STBX8
308    4160749568U,	// STD
309    2080375213U,	// STDCX
310    4160749569U,	// STDU
311    2080375146U,	// STDUX
312    2080375082U,	// STDX
313    2080375082U,	// STDX_32
314    4160749568U,	// STD_32
315    3623878656U,	// STFD
316    2483027968U,	// STFDU
317    2080376238U,	// STFDX
318    2080376750U,	// STFIWX
319    3489660928U,	// STFS
320    2483027968U,	// STFSU
321    2080376110U,	// STFSX
322    2952790016U,	// STH
323    2952790016U,	// STH8
324    2080376620U,	// STHBRX
325    3019898880U,	// STHU
326    3019898880U,	// STHU8
327    2080375598U,	// STHX
328    2080375598U,	// STHX8
329    2080375054U,	// STVEBX
330    2080375118U,	// STVEHX
331    2080375182U,	// STVEWX
332    2080375246U,	// STVX
333    2080375758U,	// STVXL
334    2415919104U,	// STW
335    2415919104U,	// STW8
336    2080376108U,	// STWBRX
337    2080375085U,	// STWCX
338    2483027968U,	// STWU
339    2080375150U,	// STWUX
340    2080375086U,	// STWX
341    2080375086U,	// STWX8
342    2080374864U,	// SUBF
343    2080374864U,	// SUBF8
344    2080374800U,	// SUBFC
345    2080374800U,	// SUBFC8
346    2080375056U,	// SUBFE
347    2080375056U,	// SUBFE8
348    536870912U,	// SUBFIC
349    536870912U,	// SUBFIC8
350    2080375248U,	// SUBFME
351    2080375248U,	// SUBFME8
352    2080375184U,	// SUBFZE
353    2080375184U,	// SUBFZE8
354    2080375980U,	// SYNC
355    1207959552U,	// TAILB
356    1207959552U,	// TAILB8
357    1207959552U,	// TAILBA
358    1207959552U,	// TAILBA8
359    1317012512U,	// TAILBCTR
360    1317012512U,	// TAILBCTR8
361    0U,	// TCRETURNai
362    0U,	// TCRETURNai8
363    0U,	// TCRETURNdi
364    0U,	// TCRETURNdi8
365    0U,	// TCRETURNri
366    0U,	// TCRETURNri8
367    2145386504U,	// TRAP
368    0U,	// UPDATE_VRSAVE
369    268435840U,	// VADDCUW
370    268435466U,	// VADDFP
371    268436224U,	// VADDSBS
372    268436288U,	// VADDSHS
373    268436352U,	// VADDSWS
374    268435456U,	// VADDUBM
375    268435968U,	// VADDUBS
376    268435520U,	// VADDUHM
377    268436032U,	// VADDUHS
378    268435584U,	// VADDUWM
379    268436096U,	// VADDUWS
380    268436484U,	// VAND
381    268436548U,	// VANDC
382    268436738U,	// VAVGSB
383    268436802U,	// VAVGSH
384    268436866U,	// VAVGSW
385    268436482U,	// VAVGUB
386    268436546U,	// VAVGUH
387    268436610U,	// VAVGUW
388    268436298U,	// VCFSX
389    268436234U,	// VCFUX
390    268436422U,	// VCMPBFP
391    268437446U,	// VCMPBFPo
392    268435654U,	// VCMPEQFP
393    268436678U,	// VCMPEQFPo
394    268435462U,	// VCMPEQUB
395    268436486U,	// VCMPEQUBo
396    268435526U,	// VCMPEQUH
397    268436550U,	// VCMPEQUHo
398    268435590U,	// VCMPEQUW
399    268436614U,	// VCMPEQUWo
400    268435910U,	// VCMPGEFP
401    268436934U,	// VCMPGEFPo
402    268436166U,	// VCMPGTFP
403    268437190U,	// VCMPGTFPo
404    268436230U,	// VCMPGTSB
405    268437254U,	// VCMPGTSBo
406    268436294U,	// VCMPGTSH
407    268437318U,	// VCMPGTSHo
408    268436358U,	// VCMPGTSW
409    268437382U,	// VCMPGTSWo
410    268435974U,	// VCMPGTUB
411    268436998U,	// VCMPGTUBo
412    268436038U,	// VCMPGTUH
413    268437062U,	// VCMPGTUHo
414    268436102U,	// VCMPGTUW
415    268437126U,	// VCMPGTUWo
416    268436426U,	// VCTSXS
417    268436362U,	// VCTUXS
418    268435850U,	// VEXPTEFP
419    268435914U,	// VLOGEFP
420    268435502U,	// VMADDFP
421    268436490U,	// VMAXFP
422    268435714U,	// VMAXSB
423    268435778U,	// VMAXSH
424    268435842U,	// VMAXSW
425    268435458U,	// VMAXUB
426    268435522U,	// VMAXUH
427    268435586U,	// VMAXUW
428    268435488U,	// VMHADDSHS
429    268435489U,	// VMHRADDSHS
430    268436554U,	// VMINFP
431    268436226U,	// VMINSB
432    268436290U,	// VMINSH
433    268436354U,	// VMINSW
434    268435970U,	// VMINUB
435    268436034U,	// VMINUH
436    268436098U,	// VMINUW
437    268435490U,	// VMLADDUHM
438    268435468U,	// VMRGHB
439    268435532U,	// VMRGHH
440    268435596U,	// VMRGHW
441    268435724U,	// VMRGLB
442    268435788U,	// VMRGLH
443    268435852U,	// VMRGLW
444    268435493U,	// VMSUMMBM
445    268435496U,	// VMSUMSHM
446    268435497U,	// VMSUMSHS
447    268435492U,	// VMSUMUBM
448    268435494U,	// VMSUMUHM
449    268435495U,	// VMSUMUHS
450    268436232U,	// VMULESB
451    268436296U,	// VMULESH
452    268435976U,	// VMULEUB
453    268436040U,	// VMULEUH
454    268435720U,	// VMULOSB
455    268435784U,	// VMULOSH
456    268435464U,	// VMULOUB
457    268435528U,	// VMULOUH
458    268435503U,	// VNMSUBFP
459    268436740U,	// VNOR
460    268436612U,	// VOR
461    268435499U,	// VPERM
462    268436238U,	// VPKPX
463    268435854U,	// VPKSHSS
464    268435726U,	// VPKSHUS
465    268435918U,	// VPKSWSS
466    268435790U,	// VPKSWUS
467    268435470U,	// VPKUHUM
468    268435598U,	// VPKUHUS
469    268435534U,	// VPKUWUM
470    268435662U,	// VPKUWUS
471    268435722U,	// VREFP
472    268436170U,	// VRFIM
473    268435978U,	// VRFIN
474    268436106U,	// VRFIP
475    268436042U,	// VRFIZ
476    268435460U,	// VRLB
477    268435524U,	// VRLH
478    268435588U,	// VRLW
479    268435786U,	// VRSQRTEFP
480    268435498U,	// VSEL
481    268435908U,	// VSL
482    268435716U,	// VSLB
483    268435500U,	// VSLDOI
484    268435780U,	// VSLH
485    268436492U,	// VSLO
486    268435844U,	// VSLW
487    268435980U,	// VSPLTB
488    268436044U,	// VSPLTH
489    268436236U,	// VSPLTISB
490    268436300U,	// VSPLTISH
491    268436364U,	// VSPLTISW
492    268436108U,	// VSPLTW
493    268436164U,	// VSR
494    268436228U,	// VSRAB
495    268436292U,	// VSRAH
496    268436356U,	// VSRAW
497    268435972U,	// VSRB
498    268436036U,	// VSRH
499    268436556U,	// VSRO
500    268436100U,	// VSRW
501    268435530U,	// VSUBCUW
502    268435530U,	// VSUBFP
503    268437248U,	// VSUBSBS
504    268437312U,	// VSUBSHS
505    268437376U,	// VSUBSWS
506    268436480U,	// VSUBUBM
507    268436992U,	// VSUBUBS
508    268436544U,	// VSUBUHM
509    268437056U,	// VSUBUHS
510    268436608U,	// VSUBUWM
511    268437120U,	// VSUBUWS
512    268437128U,	// VSUM2SWS
513    268437128U,	// VSUM4SBS
514    268437064U,	// VSUM4SHS
515    268437000U,	// VSUM4UBS
516    268437384U,	// VSUMSWS
517    268436302U,	// VUPKHPX
518    268435982U,	// VUPKHSB
519    268436046U,	// VUPKHSH
520    268436430U,	// VUPKLPX
521    268436110U,	// VUPKLSB
522    268436174U,	// VUPKLSH
523    268436676U,	// VXOR
524    268436676U,	// V_SET0
525    2080375416U,	// XOR
526    2080375416U,	// XOR8
527    1744830464U,	// XORI
528    1744830464U,	// XORI8
529    1811939328U,	// XORIS
530    1811939328U,	// XORIS8
531    0U
532  };
533  const unsigned opcode = MI.getOpcode();
534  unsigned Value = InstBits[opcode];
535  unsigned op = 0;
536  op = op;  // suppress warning
537  switch (opcode) {
538    case PPC::ADJCALLSTACKDOWN:
539    case PPC::ADJCALLSTACKUP:
540    case PPC::ATOMIC_CMP_SWAP_I16:
541    case PPC::ATOMIC_CMP_SWAP_I32:
542    case PPC::ATOMIC_CMP_SWAP_I64:
543    case PPC::ATOMIC_CMP_SWAP_I8:
544    case PPC::ATOMIC_LOAD_ADD_I16:
545    case PPC::ATOMIC_LOAD_ADD_I32:
546    case PPC::ATOMIC_LOAD_ADD_I64:
547    case PPC::ATOMIC_LOAD_ADD_I8:
548    case PPC::ATOMIC_LOAD_AND_I16:
549    case PPC::ATOMIC_LOAD_AND_I32:
550    case PPC::ATOMIC_LOAD_AND_I64:
551    case PPC::ATOMIC_LOAD_AND_I8:
552    case PPC::ATOMIC_LOAD_NAND_I16:
553    case PPC::ATOMIC_LOAD_NAND_I32:
554    case PPC::ATOMIC_LOAD_NAND_I64:
555    case PPC::ATOMIC_LOAD_NAND_I8:
556    case PPC::ATOMIC_LOAD_OR_I16:
557    case PPC::ATOMIC_LOAD_OR_I32:
558    case PPC::ATOMIC_LOAD_OR_I64:
559    case PPC::ATOMIC_LOAD_OR_I8:
560    case PPC::ATOMIC_LOAD_SUB_I16:
561    case PPC::ATOMIC_LOAD_SUB_I32:
562    case PPC::ATOMIC_LOAD_SUB_I64:
563    case PPC::ATOMIC_LOAD_SUB_I8:
564    case PPC::ATOMIC_LOAD_XOR_I16:
565    case PPC::ATOMIC_LOAD_XOR_I32:
566    case PPC::ATOMIC_LOAD_XOR_I64:
567    case PPC::ATOMIC_LOAD_XOR_I8:
568    case PPC::ATOMIC_SWAP_I16:
569    case PPC::ATOMIC_SWAP_I32:
570    case PPC::ATOMIC_SWAP_I64:
571    case PPC::ATOMIC_SWAP_I8:
572    case PPC::BCTR:
573    case PPC::BCTRL8_Darwin:
574    case PPC::BCTRL8_ELF:
575    case PPC::BCTRL_Darwin:
576    case PPC::BCTRL_SVR4:
577    case PPC::DYNALLOC:
578    case PPC::DYNALLOC8:
579    case PPC::LDtoc_restore:
580    case PPC::MovePCtoLR:
581    case PPC::MovePCtoLR8:
582    case PPC::NOP:
583    case PPC::SELECT_CC_F4:
584    case PPC::SELECT_CC_F8:
585    case PPC::SELECT_CC_I4:
586    case PPC::SELECT_CC_I8:
587    case PPC::SELECT_CC_VRRC:
588    case PPC::SPILL_CR:
589    case PPC::SYNC:
590    case PPC::TAILBCTR:
591    case PPC::TAILBCTR8:
592    case PPC::TCRETURNai:
593    case PPC::TCRETURNai8:
594    case PPC::TCRETURNdi:
595    case PPC::TCRETURNdi8:
596    case PPC::TCRETURNri:
597    case PPC::TCRETURNri8:
598    case PPC::TRAP:
599    case PPC::UPDATE_VRSAVE: {
600      break;
601    }
602    case PPC::DCBA:
603    case PPC::DCBF:
604    case PPC::DCBI:
605    case PPC::DCBST:
606    case PPC::DCBT:
607    case PPC::DCBTST:
608    case PPC::DCBZ:
609    case PPC::DCBZL: {
610      // op: A
611      op = getMachineOpValue(MI, MI.getOperand(0));
612      Value |= (op & 31U) << 16;
613      // op: B
614      op = getMachineOpValue(MI, MI.getOperand(1));
615      Value |= (op & 31U) << 11;
616      break;
617    }
618    case PPC::SRADI: {
619      // op: A
620      op = getMachineOpValue(MI, MI.getOperand(0));
621      Value |= (op & 31U) << 16;
622      // op: RS
623      op = getMachineOpValue(MI, MI.getOperand(1));
624      Value |= (op & 31U) << 21;
625      // op: SH
626      op = getMachineOpValue(MI, MI.getOperand(2));
627      Value |= (op & 31U) << 11;
628      Value |= (op & 32U) >> 4;
629      break;
630    }
631    case PPC::CNTLZD:
632    case PPC::CNTLZW:
633    case PPC::EXTSB:
634    case PPC::EXTSB8:
635    case PPC::EXTSH:
636    case PPC::EXTSH8:
637    case PPC::EXTSW:
638    case PPC::EXTSW_32:
639    case PPC::EXTSW_32_64: {
640      // op: A
641      op = getMachineOpValue(MI, MI.getOperand(0));
642      Value |= (op & 31U) << 16;
643      // op: RST
644      op = getMachineOpValue(MI, MI.getOperand(1));
645      Value |= (op & 31U) << 21;
646      break;
647    }
648    case PPC::AND:
649    case PPC::AND8:
650    case PPC::ANDC:
651    case PPC::ANDC8:
652    case PPC::EQV:
653    case PPC::EQV8:
654    case PPC::NAND:
655    case PPC::NAND8:
656    case PPC::NOR:
657    case PPC::NOR8:
658    case PPC::OR:
659    case PPC::OR4To8:
660    case PPC::OR8:
661    case PPC::OR8To4:
662    case PPC::ORC:
663    case PPC::ORC8:
664    case PPC::SLD:
665    case PPC::SLW:
666    case PPC::SRAD:
667    case PPC::SRAW:
668    case PPC::SRAWI:
669    case PPC::SRD:
670    case PPC::SRW:
671    case PPC::XOR:
672    case PPC::XOR8: {
673      // op: A
674      op = getMachineOpValue(MI, MI.getOperand(0));
675      Value |= (op & 31U) << 16;
676      // op: RST
677      op = getMachineOpValue(MI, MI.getOperand(1));
678      Value |= (op & 31U) << 21;
679      // op: B
680      op = getMachineOpValue(MI, MI.getOperand(2));
681      Value |= (op & 31U) << 11;
682      break;
683    }
684    case PPC::ADDI:
685    case PPC::ADDI8:
686    case PPC::ADDIC:
687    case PPC::ADDIC8:
688    case PPC::ADDICo:
689    case PPC::ADDIS:
690    case PPC::ADDIS8:
691    case PPC::LA:
692    case PPC::MULLI:
693    case PPC::SUBFIC:
694    case PPC::SUBFIC8: {
695      // op: A
696      op = getMachineOpValue(MI, MI.getOperand(0));
697      Value |= (op & 31U) << 21;
698      // op: B
699      op = getMachineOpValue(MI, MI.getOperand(1));
700      Value |= (op & 31U) << 16;
701      // op: C
702      op = getMachineOpValue(MI, MI.getOperand(2));
703      Value |= op & 65535U;
704      break;
705    }
706    case PPC::LI:
707    case PPC::LI8:
708    case PPC::LIS:
709    case PPC::LIS8: {
710      // op: A
711      op = getMachineOpValue(MI, MI.getOperand(0));
712      Value |= (op & 31U) << 21;
713      // op: B
714      op = getMachineOpValue(MI, MI.getOperand(1));
715      Value |= op & 65535U;
716      break;
717    }
718    case PPC::LBZ:
719    case PPC::LBZ8:
720    case PPC::LFD:
721    case PPC::LFS:
722    case PPC::LHA:
723    case PPC::LHA8:
724    case PPC::LHZ:
725    case PPC::LHZ8:
726    case PPC::LWZ:
727    case PPC::LWZ8:
728    case PPC::STB:
729    case PPC::STB8:
730    case PPC::STFD:
731    case PPC::STFS:
732    case PPC::STH:
733    case PPC::STH8:
734    case PPC::STW:
735    case PPC::STW8: {
736      // op: A
737      op = getMachineOpValue(MI, MI.getOperand(0));
738      Value |= (op & 31U) << 21;
739      // op: C
740      op = getMachineOpValue(MI, MI.getOperand(1));
741      Value |= op & 65535U;
742      // op: B
743      op = getMachineOpValue(MI, MI.getOperand(2));
744      Value |= (op & 31U) << 16;
745      break;
746    }
747    case PPC::LBZU:
748    case PPC::LBZU8:
749    case PPC::LFDU:
750    case PPC::LFSU:
751    case PPC::LHAU:
752    case PPC::LHAU8:
753    case PPC::LHZU:
754    case PPC::LHZU8:
755    case PPC::LWZU:
756    case PPC::LWZU8: {
757      // op: A
758      op = getMachineOpValue(MI, MI.getOperand(0));
759      Value |= (op & 31U) << 21;
760      // op: C
761      op = getMachineOpValue(MI, MI.getOperand(2));
762      Value |= op & 65535U;
763      // op: B
764      op = getMachineOpValue(MI, MI.getOperand(3));
765      Value |= (op & 31U) << 16;
766      break;
767    }
768    case PPC::STBU:
769    case PPC::STBU8:
770    case PPC::STFDU:
771    case PPC::STFSU:
772    case PPC::STHU:
773    case PPC::STHU8:
774    case PPC::STWU: {
775      // op: A
776      op = getMachineOpValue(MI, MI.getOperand(1));
777      Value |= (op & 31U) << 21;
778      // op: C
779      op = getMachineOpValue(MI, MI.getOperand(2));
780      Value |= op & 65535U;
781      // op: B
782      op = getMachineOpValue(MI, MI.getOperand(3));
783      Value |= (op & 31U) << 16;
784      break;
785    }
786    case PPC::ANDISo:
787    case PPC::ANDISo8:
788    case PPC::ANDIo:
789    case PPC::ANDIo8:
790    case PPC::ORI:
791    case PPC::ORI8:
792    case PPC::ORIS:
793    case PPC::ORIS8:
794    case PPC::XORI:
795    case PPC::XORI8:
796    case PPC::XORIS:
797    case PPC::XORIS8: {
798      // op: B
799      op = getMachineOpValue(MI, MI.getOperand(0));
800      Value |= (op & 31U) << 16;
801      // op: A
802      op = getMachineOpValue(MI, MI.getOperand(1));
803      Value |= (op & 31U) << 21;
804      // op: C
805      op = getMachineOpValue(MI, MI.getOperand(2));
806      Value |= op & 65535U;
807      break;
808    }
809    case PPC::MCRF: {
810      // op: BF
811      op = getMachineOpValue(MI, MI.getOperand(0));
812      Value |= (op & 7U) << 23;
813      // op: BFA
814      op = getMachineOpValue(MI, MI.getOperand(1));
815      Value |= (op & 7U) << 18;
816      break;
817    }
818    case PPC::FCMPUD:
819    case PPC::FCMPUS: {
820      // op: BF
821      op = getMachineOpValue(MI, MI.getOperand(0));
822      Value |= (op & 7U) << 23;
823      // op: FRA
824      op = getMachineOpValue(MI, MI.getOperand(1));
825      Value |= (op & 31U) << 16;
826      // op: FRB
827      op = getMachineOpValue(MI, MI.getOperand(2));
828      Value |= (op & 31U) << 11;
829      break;
830    }
831    case PPC::CMPDI:
832    case PPC::CMPLDI:
833    case PPC::CMPLWI:
834    case PPC::CMPWI: {
835      // op: BF
836      op = getMachineOpValue(MI, MI.getOperand(0));
837      Value |= (op & 7U) << 23;
838      // op: RA
839      op = getMachineOpValue(MI, MI.getOperand(1));
840      Value |= (op & 31U) << 16;
841      // op: I
842      op = getMachineOpValue(MI, MI.getOperand(2));
843      Value |= op & 65535U;
844      break;
845    }
846    case PPC::CMPD:
847    case PPC::CMPLD:
848    case PPC::CMPLW:
849    case PPC::CMPW: {
850      // op: BF
851      op = getMachineOpValue(MI, MI.getOperand(0));
852      Value |= (op & 7U) << 23;
853      // op: RA
854      op = getMachineOpValue(MI, MI.getOperand(1));
855      Value |= (op & 31U) << 16;
856      // op: RB
857      op = getMachineOpValue(MI, MI.getOperand(2));
858      Value |= (op & 31U) << 11;
859      break;
860    }
861    case PPC::BCC: {
862      // op: BIBO
863      op = getMachineOpValue(MI, MI.getOperand(0));
864      Value |= (op & 31U) << 21;
865      Value |= (op & 96U) << 11;
866      // op: CR
867      op = getMachineOpValue(MI, MI.getOperand(1));
868      Value |= (op & 7U) << 18;
869      // op: BD
870      op = getMachineOpValue(MI, MI.getOperand(2));
871      Value |= (op & 16383U) << 2;
872      break;
873    }
874    case PPC::BLR: {
875      // op: BIBO
876      op = getMachineOpValue(MI, MI.getOperand(0));
877      Value |= (op & 4U) << 23;
878      Value |= (op & 8U) << 21;
879      Value |= (op & 16U) << 19;
880      Value |= (op & 32U) << 17;
881      Value |= (op & 64U) << 15;
882      Value |= (op & 3U) << 16;
883      // op: CR
884      op = getMachineOpValue(MI, MI.getOperand(1));
885      Value |= (op & 1U) << 20;
886      Value |= (op & 2U) << 18;
887      Value |= (op & 4U) << 16;
888      break;
889    }
890    case PPC::CREQV:
891    case PPC::CROR: {
892      // op: CRD
893      op = getMachineOpValue(MI, MI.getOperand(0));
894      Value |= (op & 31U) << 21;
895      // op: CRA
896      op = getMachineOpValue(MI, MI.getOperand(1));
897      Value |= (op & 31U) << 16;
898      // op: CRB
899      op = getMachineOpValue(MI, MI.getOperand(2));
900      Value |= (op & 31U) << 11;
901      break;
902    }
903    case PPC::CRSET: {
904      // op: CRD
905      op = getMachineOpValue(MI, MI.getOperand(0));
906      Value |= (op & 31U) << 21;
907      Value |= (op & 31U) << 16;
908      Value |= (op & 31U) << 11;
909      break;
910    }
911    case PPC::MTFSF: {
912      // op: FM
913      op = getMachineOpValue(MI, MI.getOperand(0));
914      Value |= (op & 255U) << 17;
915      // op: RT
916      op = getMachineOpValue(MI, MI.getOperand(1));
917      Value |= (op & 31U) << 11;
918      break;
919    }
920    case PPC::MTFSB0:
921    case PPC::MTFSB1: {
922      // op: FM
923      op = getMachineOpValue(MI, MI.getOperand(0));
924      Value |= (op & 31U) << 21;
925      break;
926    }
927    case PPC::FADD:
928    case PPC::FADDS:
929    case PPC::FADDrtz:
930    case PPC::FDIV:
931    case PPC::FDIVS:
932    case PPC::FSUB:
933    case PPC::FSUBS: {
934      // op: FRT
935      op = getMachineOpValue(MI, MI.getOperand(0));
936      Value |= (op & 31U) << 21;
937      // op: FRA
938      op = getMachineOpValue(MI, MI.getOperand(1));
939      Value |= (op & 31U) << 16;
940      // op: FRB
941      op = getMachineOpValue(MI, MI.getOperand(2));
942      Value |= (op & 31U) << 11;
943      break;
944    }
945    case PPC::FMUL:
946    case PPC::FMULS: {
947      // op: FRT
948      op = getMachineOpValue(MI, MI.getOperand(0));
949      Value |= (op & 31U) << 21;
950      // op: FRA
951      op = getMachineOpValue(MI, MI.getOperand(1));
952      Value |= (op & 31U) << 16;
953      // op: FRC
954      op = getMachineOpValue(MI, MI.getOperand(2));
955      Value |= (op & 31U) << 6;
956      break;
957    }
958    case PPC::FMADD:
959    case PPC::FMADDS:
960    case PPC::FMSUB:
961    case PPC::FMSUBS:
962    case PPC::FNMADD:
963    case PPC::FNMADDS:
964    case PPC::FNMSUB:
965    case PPC::FNMSUBS:
966    case PPC::FSELD:
967    case PPC::FSELS: {
968      // op: FRT
969      op = getMachineOpValue(MI, MI.getOperand(0));
970      Value |= (op & 31U) << 21;
971      // op: FRA
972      op = getMachineOpValue(MI, MI.getOperand(1));
973      Value |= (op & 31U) << 16;
974      // op: FRC
975      op = getMachineOpValue(MI, MI.getOperand(2));
976      Value |= (op & 31U) << 6;
977      // op: FRB
978      op = getMachineOpValue(MI, MI.getOperand(3));
979      Value |= (op & 31U) << 11;
980      break;
981    }
982    case PPC::MTCRF: {
983      // op: FXM
984      op = getMachineOpValue(MI, MI.getOperand(0));
985      Value |= (op & 255U) << 12;
986      // op: ST
987      op = getMachineOpValue(MI, MI.getOperand(1));
988      Value |= (op & 31U) << 21;
989      break;
990    }
991    case PPC::B:
992    case PPC::BL8_Darwin:
993    case PPC::BL8_ELF:
994    case PPC::BLA8_Darwin:
995    case PPC::BLA8_ELF:
996    case PPC::BLA_Darwin:
997    case PPC::BLA_SVR4:
998    case PPC::BL_Darwin:
999    case PPC::BL_SVR4:
1000    case PPC::TAILB:
1001    case PPC::TAILB8:
1002    case PPC::TAILBA:
1003    case PPC::TAILBA8: {
1004      // op: LI
1005      op = getMachineOpValue(MI, MI.getOperand(0));
1006      Value |= (op & 16777215U) << 2;
1007      break;
1008    }
1009    case PPC::LDinto_toc: {
1010      // op: RA
1011      op = getMachineOpValue(MI, MI.getOperand(0));
1012      Value |= (op & 31U) << 16;
1013      break;
1014    }
1015    case PPC::RLWINM:
1016    case PPC::RLWINMo:
1017    case PPC::RLWNM: {
1018      // op: RA
1019      op = getMachineOpValue(MI, MI.getOperand(0));
1020      Value |= (op & 31U) << 16;
1021      // op: RS
1022      op = getMachineOpValue(MI, MI.getOperand(1));
1023      Value |= (op & 31U) << 21;
1024      // op: RB
1025      op = getMachineOpValue(MI, MI.getOperand(2));
1026      Value |= (op & 31U) << 11;
1027      // op: MB
1028      op = getMachineOpValue(MI, MI.getOperand(3));
1029      Value |= (op & 31U) << 6;
1030      // op: ME
1031      op = getMachineOpValue(MI, MI.getOperand(4));
1032      Value |= (op & 31U) << 1;
1033      break;
1034    }
1035    case PPC::RLDCL:
1036    case PPC::RLDICL:
1037    case PPC::RLDICR: {
1038      // op: RA
1039      op = getMachineOpValue(MI, MI.getOperand(0));
1040      Value |= (op & 31U) << 16;
1041      // op: RS
1042      op = getMachineOpValue(MI, MI.getOperand(1));
1043      Value |= (op & 31U) << 21;
1044      // op: SH
1045      op = getMachineOpValue(MI, MI.getOperand(2));
1046      Value |= (op & 31U) << 11;
1047      Value |= (op & 32U) >> 4;
1048      // op: MBE
1049      op = getMachineOpValue(MI, MI.getOperand(3));
1050      Value |= (op & 31U) << 6;
1051      Value |= op & 32U;
1052      break;
1053    }
1054    case PPC::RLWIMI: {
1055      // op: RA
1056      op = getMachineOpValue(MI, MI.getOperand(0));
1057      Value |= (op & 31U) << 16;
1058      // op: RS
1059      op = getMachineOpValue(MI, MI.getOperand(2));
1060      Value |= (op & 31U) << 21;
1061      // op: RB
1062      op = getMachineOpValue(MI, MI.getOperand(3));
1063      Value |= (op & 31U) << 11;
1064      // op: MB
1065      op = getMachineOpValue(MI, MI.getOperand(4));
1066      Value |= (op & 31U) << 6;
1067      // op: ME
1068      op = getMachineOpValue(MI, MI.getOperand(5));
1069      Value |= (op & 31U) << 1;
1070      break;
1071    }
1072    case PPC::RLDIMI: {
1073      // op: RA
1074      op = getMachineOpValue(MI, MI.getOperand(0));
1075      Value |= (op & 31U) << 16;
1076      // op: RS
1077      op = getMachineOpValue(MI, MI.getOperand(2));
1078      Value |= (op & 31U) << 21;
1079      // op: SH
1080      op = getMachineOpValue(MI, MI.getOperand(3));
1081      Value |= (op & 31U) << 11;
1082      Value |= (op & 32U) >> 4;
1083      // op: MBE
1084      op = getMachineOpValue(MI, MI.getOperand(4));
1085      Value |= (op & 31U) << 6;
1086      Value |= op & 32U;
1087      break;
1088    }
1089    case PPC::MFFS: {
1090      // op: RST
1091      op = getMachineOpValue(MI, MI.getOperand(0));
1092      Value |= (op & 31U) << 21;
1093      break;
1094    }
1095    case PPC::LBZX:
1096    case PPC::LBZX8:
1097    case PPC::LDARX:
1098    case PPC::LDX:
1099    case PPC::LFDX:
1100    case PPC::LFSX:
1101    case PPC::LHAX:
1102    case PPC::LHAX8:
1103    case PPC::LHBRX:
1104    case PPC::LHZX:
1105    case PPC::LHZX8:
1106    case PPC::LVEBX:
1107    case PPC::LVEHX:
1108    case PPC::LVEWX:
1109    case PPC::LVSL:
1110    case PPC::LVSR:
1111    case PPC::LVX:
1112    case PPC::LVXL:
1113    case PPC::LWARX:
1114    case PPC::LWAX:
1115    case PPC::LWBRX:
1116    case PPC::LWZX:
1117    case PPC::LWZX8:
1118    case PPC::STBX:
1119    case PPC::STBX8:
1120    case PPC::STDCX:
1121    case PPC::STDUX:
1122    case PPC::STDX:
1123    case PPC::STDX_32:
1124    case PPC::STFDX:
1125    case PPC::STFIWX:
1126    case PPC::STFSX:
1127    case PPC::STHBRX:
1128    case PPC::STHX:
1129    case PPC::STHX8:
1130    case PPC::STVEBX:
1131    case PPC::STVEHX:
1132    case PPC::STVEWX:
1133    case PPC::STVX:
1134    case PPC::STVXL:
1135    case PPC::STWBRX:
1136    case PPC::STWCX:
1137    case PPC::STWUX:
1138    case PPC::STWX:
1139    case PPC::STWX8: {
1140      // op: RST
1141      op = getMachineOpValue(MI, MI.getOperand(0));
1142      Value |= (op & 31U) << 21;
1143      // op: A
1144      op = getMachineOpValue(MI, MI.getOperand(1));
1145      Value |= (op & 31U) << 16;
1146      // op: B
1147      op = getMachineOpValue(MI, MI.getOperand(2));
1148      Value |= (op & 31U) << 11;
1149      break;
1150    }
1151    case PPC::FABSD:
1152    case PPC::FABSS:
1153    case PPC::FCFID:
1154    case PPC::FCTIDZ:
1155    case PPC::FCTIWZ:
1156    case PPC::FMR:
1157    case PPC::FNABSD:
1158    case PPC::FNABSS:
1159    case PPC::FNEGD:
1160    case PPC::FNEGS:
1161    case PPC::FRSP:
1162    case PPC::FSQRT:
1163    case PPC::FSQRTS: {
1164      // op: RST
1165      op = getMachineOpValue(MI, MI.getOperand(0));
1166      Value |= (op & 31U) << 21;
1167      // op: B
1168      op = getMachineOpValue(MI, MI.getOperand(1));
1169      Value |= (op & 31U) << 11;
1170      break;
1171    }
1172    case PPC::LD:
1173    case PPC::LDtoc:
1174    case PPC::LWA:
1175    case PPC::STD:
1176    case PPC::STD_32: {
1177      // op: RST
1178      op = getMachineOpValue(MI, MI.getOperand(0));
1179      Value |= (op & 31U) << 21;
1180      // op: DS
1181      op = getMachineOpValue(MI, MI.getOperand(1));
1182      Value |= (op & 16383U) << 2;
1183      // op: RA
1184      op = getMachineOpValue(MI, MI.getOperand(2));
1185      Value |= (op & 31U) << 16;
1186      break;
1187    }
1188    case PPC::LDU: {
1189      // op: RST
1190      op = getMachineOpValue(MI, MI.getOperand(0));
1191      Value |= (op & 31U) << 21;
1192      // op: DS
1193      op = getMachineOpValue(MI, MI.getOperand(2));
1194      Value |= (op & 16383U) << 2;
1195      // op: RA
1196      op = getMachineOpValue(MI, MI.getOperand(3));
1197      Value |= (op & 31U) << 16;
1198      break;
1199    }
1200    case PPC::STDU: {
1201      // op: RST
1202      op = getMachineOpValue(MI, MI.getOperand(1));
1203      Value |= (op & 31U) << 21;
1204      // op: DS
1205      op = getMachineOpValue(MI, MI.getOperand(2));
1206      Value |= (op & 16383U) << 2;
1207      // op: RA
1208      op = getMachineOpValue(MI, MI.getOperand(3));
1209      Value |= (op & 31U) << 16;
1210      break;
1211    }
1212    case PPC::MFCRpseud:
1213    case PPC::MFCTR:
1214    case PPC::MFCTR8:
1215    case PPC::MFLR:
1216    case PPC::MFLR8:
1217    case PPC::MFVRSAVE:
1218    case PPC::MTCTR:
1219    case PPC::MTCTR8:
1220    case PPC::MTLR:
1221    case PPC::MTLR8:
1222    case PPC::MTVRSAVE: {
1223      // op: RT
1224      op = getMachineOpValue(MI, MI.getOperand(0));
1225      Value |= (op & 31U) << 21;
1226      break;
1227    }
1228    case PPC::ADDME:
1229    case PPC::ADDME8:
1230    case PPC::ADDZE:
1231    case PPC::ADDZE8:
1232    case PPC::NEG:
1233    case PPC::NEG8:
1234    case PPC::SUBFME:
1235    case PPC::SUBFME8:
1236    case PPC::SUBFZE:
1237    case PPC::SUBFZE8: {
1238      // op: RT
1239      op = getMachineOpValue(MI, MI.getOperand(0));
1240      Value |= (op & 31U) << 21;
1241      // op: RA
1242      op = getMachineOpValue(MI, MI.getOperand(1));
1243      Value |= (op & 31U) << 16;
1244      break;
1245    }
1246    case PPC::ADD4:
1247    case PPC::ADD8:
1248    case PPC::ADDC:
1249    case PPC::ADDC8:
1250    case PPC::ADDE:
1251    case PPC::ADDE8:
1252    case PPC::DIVD:
1253    case PPC::DIVDU:
1254    case PPC::DIVW:
1255    case PPC::DIVWU:
1256    case PPC::MULHD:
1257    case PPC::MULHDU:
1258    case PPC::MULHW:
1259    case PPC::MULHWU:
1260    case PPC::MULLD:
1261    case PPC::MULLW:
1262    case PPC::SUBF:
1263    case PPC::SUBF8:
1264    case PPC::SUBFC:
1265    case PPC::SUBFC8:
1266    case PPC::SUBFE:
1267    case PPC::SUBFE8: {
1268      // op: RT
1269      op = getMachineOpValue(MI, MI.getOperand(0));
1270      Value |= (op & 31U) << 21;
1271      // op: RA
1272      op = getMachineOpValue(MI, MI.getOperand(1));
1273      Value |= (op & 31U) << 16;
1274      // op: RB
1275      op = getMachineOpValue(MI, MI.getOperand(2));
1276      Value |= (op & 31U) << 11;
1277      break;
1278    }
1279    case PPC::MFOCRF: {
1280      // op: ST
1281      op = getMachineOpValue(MI, MI.getOperand(0));
1282      Value |= (op & 31U) << 21;
1283      // op: FXM
1284      op = getMachineOpValue(MI, MI.getOperand(1));
1285      Value |= (op & 255U) << 12;
1286      break;
1287    }
1288    case PPC::DSS:
1289    case PPC::DSSALL:
1290    case PPC::DST:
1291    case PPC::DST64:
1292    case PPC::DSTST:
1293    case PPC::DSTST64:
1294    case PPC::DSTSTT:
1295    case PPC::DSTSTT64:
1296    case PPC::DSTT:
1297    case PPC::DSTT64: {
1298      // op: T
1299      op = getMachineOpValue(MI, MI.getOperand(0));
1300      Value |= (op & 1U) << 25;
1301      // op: STRM
1302      op = getMachineOpValue(MI, MI.getOperand(1));
1303      Value |= (op & 3U) << 21;
1304      // op: A
1305      op = getMachineOpValue(MI, MI.getOperand(2));
1306      Value |= (op & 31U) << 16;
1307      // op: B
1308      op = getMachineOpValue(MI, MI.getOperand(3));
1309      Value |= (op & 31U) << 11;
1310      break;
1311    }
1312    case PPC::MTVSCR: {
1313      // op: VB
1314      op = getMachineOpValue(MI, MI.getOperand(0));
1315      Value |= (op & 31U) << 11;
1316      break;
1317    }
1318    case PPC::MFVSCR: {
1319      // op: VD
1320      op = getMachineOpValue(MI, MI.getOperand(0));
1321      Value |= (op & 31U) << 21;
1322      break;
1323    }
1324    case PPC::VSPLTISB:
1325    case PPC::VSPLTISH:
1326    case PPC::VSPLTISW: {
1327      // op: VD
1328      op = getMachineOpValue(MI, MI.getOperand(0));
1329      Value |= (op & 31U) << 21;
1330      // op: IMM
1331      op = getMachineOpValue(MI, MI.getOperand(1));
1332      Value |= (op & 31U) << 16;
1333      break;
1334    }
1335    case PPC::VADDCUW:
1336    case PPC::VADDFP:
1337    case PPC::VADDSBS:
1338    case PPC::VADDSHS:
1339    case PPC::VADDSWS:
1340    case PPC::VADDUBM:
1341    case PPC::VADDUBS:
1342    case PPC::VADDUHM:
1343    case PPC::VADDUHS:
1344    case PPC::VADDUWM:
1345    case PPC::VADDUWS:
1346    case PPC::VAND:
1347    case PPC::VANDC:
1348    case PPC::VAVGSB:
1349    case PPC::VAVGSH:
1350    case PPC::VAVGSW:
1351    case PPC::VAVGUB:
1352    case PPC::VAVGUH:
1353    case PPC::VAVGUW:
1354    case PPC::VCFSX:
1355    case PPC::VCFUX:
1356    case PPC::VCMPBFP:
1357    case PPC::VCMPBFPo:
1358    case PPC::VCMPEQFP:
1359    case PPC::VCMPEQFPo:
1360    case PPC::VCMPEQUB:
1361    case PPC::VCMPEQUBo:
1362    case PPC::VCMPEQUH:
1363    case PPC::VCMPEQUHo:
1364    case PPC::VCMPEQUW:
1365    case PPC::VCMPEQUWo:
1366    case PPC::VCMPGEFP:
1367    case PPC::VCMPGEFPo:
1368    case PPC::VCMPGTFP:
1369    case PPC::VCMPGTFPo:
1370    case PPC::VCMPGTSB:
1371    case PPC::VCMPGTSBo:
1372    case PPC::VCMPGTSH:
1373    case PPC::VCMPGTSHo:
1374    case PPC::VCMPGTSW:
1375    case PPC::VCMPGTSWo:
1376    case PPC::VCMPGTUB:
1377    case PPC::VCMPGTUBo:
1378    case PPC::VCMPGTUH:
1379    case PPC::VCMPGTUHo:
1380    case PPC::VCMPGTUW:
1381    case PPC::VCMPGTUWo:
1382    case PPC::VCTSXS:
1383    case PPC::VCTUXS:
1384    case PPC::VMAXFP:
1385    case PPC::VMAXSB:
1386    case PPC::VMAXSH:
1387    case PPC::VMAXSW:
1388    case PPC::VMAXUB:
1389    case PPC::VMAXUH:
1390    case PPC::VMAXUW:
1391    case PPC::VMINFP:
1392    case PPC::VMINSB:
1393    case PPC::VMINSH:
1394    case PPC::VMINSW:
1395    case PPC::VMINUB:
1396    case PPC::VMINUH:
1397    case PPC::VMINUW:
1398    case PPC::VMRGHB:
1399    case PPC::VMRGHH:
1400    case PPC::VMRGHW:
1401    case PPC::VMRGLB:
1402    case PPC::VMRGLH:
1403    case PPC::VMRGLW:
1404    case PPC::VMULESB:
1405    case PPC::VMULESH:
1406    case PPC::VMULEUB:
1407    case PPC::VMULEUH:
1408    case PPC::VMULOSB:
1409    case PPC::VMULOSH:
1410    case PPC::VMULOUB:
1411    case PPC::VMULOUH:
1412    case PPC::VNOR:
1413    case PPC::VOR:
1414    case PPC::VPKPX:
1415    case PPC::VPKSHSS:
1416    case PPC::VPKSHUS:
1417    case PPC::VPKSWSS:
1418    case PPC::VPKSWUS:
1419    case PPC::VPKUHUM:
1420    case PPC::VPKUHUS:
1421    case PPC::VPKUWUM:
1422    case PPC::VPKUWUS:
1423    case PPC::VRLB:
1424    case PPC::VRLH:
1425    case PPC::VRLW:
1426    case PPC::VSL:
1427    case PPC::VSLB:
1428    case PPC::VSLH:
1429    case PPC::VSLO:
1430    case PPC::VSLW:
1431    case PPC::VSPLTB:
1432    case PPC::VSPLTH:
1433    case PPC::VSPLTW:
1434    case PPC::VSR:
1435    case PPC::VSRAB:
1436    case PPC::VSRAH:
1437    case PPC::VSRAW:
1438    case PPC::VSRB:
1439    case PPC::VSRH:
1440    case PPC::VSRO:
1441    case PPC::VSRW:
1442    case PPC::VSUBCUW:
1443    case PPC::VSUBFP:
1444    case PPC::VSUBSBS:
1445    case PPC::VSUBSHS:
1446    case PPC::VSUBSWS:
1447    case PPC::VSUBUBM:
1448    case PPC::VSUBUBS:
1449    case PPC::VSUBUHM:
1450    case PPC::VSUBUHS:
1451    case PPC::VSUBUWM:
1452    case PPC::VSUBUWS:
1453    case PPC::VSUM2SWS:
1454    case PPC::VSUM4SBS:
1455    case PPC::VSUM4SHS:
1456    case PPC::VSUM4UBS:
1457    case PPC::VSUMSWS:
1458    case PPC::VXOR: {
1459      // op: VD
1460      op = getMachineOpValue(MI, MI.getOperand(0));
1461      Value |= (op & 31U) << 21;
1462      // op: VA
1463      op = getMachineOpValue(MI, MI.getOperand(1));
1464      Value |= (op & 31U) << 16;
1465      // op: VB
1466      op = getMachineOpValue(MI, MI.getOperand(2));
1467      Value |= (op & 31U) << 11;
1468      break;
1469    }
1470    case PPC::VSLDOI: {
1471      // op: VD
1472      op = getMachineOpValue(MI, MI.getOperand(0));
1473      Value |= (op & 31U) << 21;
1474      // op: VA
1475      op = getMachineOpValue(MI, MI.getOperand(1));
1476      Value |= (op & 31U) << 16;
1477      // op: VB
1478      op = getMachineOpValue(MI, MI.getOperand(2));
1479      Value |= (op & 31U) << 11;
1480      // op: SH
1481      op = getMachineOpValue(MI, MI.getOperand(3));
1482      Value |= (op & 15U) << 6;
1483      break;
1484    }
1485    case PPC::VMHADDSHS:
1486    case PPC::VMHRADDSHS:
1487    case PPC::VMLADDUHM:
1488    case PPC::VMSUMMBM:
1489    case PPC::VMSUMSHM:
1490    case PPC::VMSUMSHS:
1491    case PPC::VMSUMUBM:
1492    case PPC::VMSUMUHM:
1493    case PPC::VMSUMUHS:
1494    case PPC::VPERM:
1495    case PPC::VSEL: {
1496      // op: VD
1497      op = getMachineOpValue(MI, MI.getOperand(0));
1498      Value |= (op & 31U) << 21;
1499      // op: VA
1500      op = getMachineOpValue(MI, MI.getOperand(1));
1501      Value |= (op & 31U) << 16;
1502      // op: VB
1503      op = getMachineOpValue(MI, MI.getOperand(2));
1504      Value |= (op & 31U) << 11;
1505      // op: VC
1506      op = getMachineOpValue(MI, MI.getOperand(3));
1507      Value |= (op & 31U) << 6;
1508      break;
1509    }
1510    case PPC::VMADDFP:
1511    case PPC::VNMSUBFP: {
1512      // op: VD
1513      op = getMachineOpValue(MI, MI.getOperand(0));
1514      Value |= (op & 31U) << 21;
1515      // op: VA
1516      op = getMachineOpValue(MI, MI.getOperand(1));
1517      Value |= (op & 31U) << 16;
1518      // op: VC
1519      op = getMachineOpValue(MI, MI.getOperand(2));
1520      Value |= (op & 31U) << 6;
1521      // op: VB
1522      op = getMachineOpValue(MI, MI.getOperand(3));
1523      Value |= (op & 31U) << 11;
1524      break;
1525    }
1526    case PPC::VEXPTEFP:
1527    case PPC::VLOGEFP:
1528    case PPC::VREFP:
1529    case PPC::VRFIM:
1530    case PPC::VRFIN:
1531    case PPC::VRFIP:
1532    case PPC::VRFIZ:
1533    case PPC::VRSQRTEFP:
1534    case PPC::VUPKHPX:
1535    case PPC::VUPKHSB:
1536    case PPC::VUPKHSH:
1537    case PPC::VUPKLPX:
1538    case PPC::VUPKLSB:
1539    case PPC::VUPKLSH: {
1540      // op: VD
1541      op = getMachineOpValue(MI, MI.getOperand(0));
1542      Value |= (op & 31U) << 21;
1543      // op: VB
1544      op = getMachineOpValue(MI, MI.getOperand(1));
1545      Value |= (op & 31U) << 11;
1546      break;
1547    }
1548    case PPC::V_SET0: {
1549      // op: VD
1550      op = getMachineOpValue(MI, MI.getOperand(0));
1551      Value |= (op & 31U) << 21;
1552      Value |= (op & 31U) << 16;
1553      Value |= (op & 31U) << 11;
1554      break;
1555    }
1556  default:
1557    std::string msg;
1558    raw_string_ostream Msg(msg);
1559    Msg << "Not supported instr: " << MI;
1560    report_fatal_error(Msg.str());
1561  }
1562  return Value;
1563}
1564
1565