//===- TableGen'erated file -------------------------------------*- C++ -*-===//
//
// Assembly Writer Source Fragment
//
// Automatically generated file, do not edit!
//
//===----------------------------------------------------------------------===//

/// printInstruction - This method is automatically generated by tablegen
/// from the instruction set description.
void PPCAsmPrinter::printInstruction(const MachineInstr *MI) {
  static const unsigned OpInfo[] = {
    0U,	// PHI
    0U,	// INLINEASM
    0U,	// DBG_LABEL
    0U,	// EH_LABEL
    0U,	// GC_LABEL
    0U,	// KILL
    0U,	// EXTRACT_SUBREG
    0U,	// INSERT_SUBREG
    0U,	// IMPLICIT_DEF
    0U,	// SUBREG_TO_REG
    0U,	// COPY_TO_REGCLASS
    1U,	// DBG_VALUE
    268435467U,	// ADD4
    268435467U,	// ADD8
    268435472U,	// ADDC
    268435472U,	// ADDC8
    268435478U,	// ADDE
    268435478U,	// ADDE8
    268439580U,	// ADDI
    268439580U,	// ADDI8
    268439586U,	// ADDIC
    268439586U,	// ADDIC8
    268439593U,	// ADDICo
    268443697U,	// ADDIS
    268443697U,	// ADDIS8
    268468280U,	// ADDME
    268468280U,	// ADDME8
    268468287U,	// ADDZE
    268468287U,	// ADDZE8
    541065286U,	// ADJCALLSTACKDOWN
    545259590U,	// ADJCALLSTACKUP
    268435527U,	// AND
    268435527U,	// AND8
    268435532U,	// ANDC
    268435532U,	// ANDC8
    268447826U,	// ANDISo
    268447826U,	// ANDISo8
    268447834U,	// ANDIo
    268447834U,	// ANDIo8
    549453894U,	// ATOMIC_CMP_SWAP_I16
    553648198U,	// ATOMIC_CMP_SWAP_I32
    557842502U,	// ATOMIC_CMP_SWAP_I64
    562036806U,	// ATOMIC_CMP_SWAP_I8
    566231110U,	// ATOMIC_LOAD_ADD_I16
    570425414U,	// ATOMIC_LOAD_ADD_I32
    574619718U,	// ATOMIC_LOAD_ADD_I64
    578814022U,	// ATOMIC_LOAD_ADD_I8
    583008326U,	// ATOMIC_LOAD_AND_I16
    587202630U,	// ATOMIC_LOAD_AND_I32
    591396934U,	// ATOMIC_LOAD_AND_I64
    595591238U,	// ATOMIC_LOAD_AND_I8
    599785542U,	// ATOMIC_LOAD_NAND_I16
    603979846U,	// ATOMIC_LOAD_NAND_I32
    608174150U,	// ATOMIC_LOAD_NAND_I64
    612368454U,	// ATOMIC_LOAD_NAND_I8
    616562758U,	// ATOMIC_LOAD_OR_I16
    620757062U,	// ATOMIC_LOAD_OR_I32
    624951366U,	// ATOMIC_LOAD_OR_I64
    629145670U,	// ATOMIC_LOAD_OR_I8
    633339974U,	// ATOMIC_LOAD_SUB_I16
    637534278U,	// ATOMIC_LOAD_SUB_I32
    641728582U,	// ATOMIC_LOAD_SUB_I64
    645922886U,	// ATOMIC_LOAD_SUB_I8
    650117190U,	// ATOMIC_LOAD_XOR_I16
    654311494U,	// ATOMIC_LOAD_XOR_I32
    658505798U,	// ATOMIC_LOAD_XOR_I64
    662700102U,	// ATOMIC_LOAD_XOR_I8
    666894406U,	// ATOMIC_SWAP_I16
    671088710U,	// ATOMIC_SWAP_I32
    675283014U,	// ATOMIC_SWAP_I64
    679477318U,	// ATOMIC_SWAP_I8
    805306465U,	// B
    1220804708U,	// BCC
    102U,	// BCTR
    107U,	// BCTRL8_Darwin
    107U,	// BCTRL8_ELF
    107U,	// BCTRL_Darwin
    107U,	// BCTRL_SVR4
    1493172337U,	// BL8_Darwin
    1493172337U,	// BL8_ELF
    1761607797U,	// BLA8_Darwin
    1761607797U,	// BLA8_ELF
    1761607797U,	// BLA_Darwin
    1761607797U,	// BLA_SVR4
    1228931172U,	// BLR
    1493172337U,	// BL_Darwin
    1493172337U,	// BL_SVR4
    268435578U,	// CMPD
    268439680U,	// CMPDI
    268435591U,	// CMPLD
    268447886U,	// CMPLDI
    268435606U,	// CMPLW
    268447901U,	// CMPLWI
    268435621U,	// CMPW
    268439723U,	// CMPWI
    268468402U,	// CNTLZD
    268468410U,	// CNTLZW
    268435650U,	// CREQV
    268435657U,	// CROR
    268959938U,	// CRSET
    1879048399U,	// DCBA
    1879048405U,	// DCBF
    1879048411U,	// DCBI
    1879048417U,	// DCBST
    1879048424U,	// DCBT
    1879048430U,	// DCBTST
    1879048438U,	// DCBZ
    1879048444U,	// DCBZL
    268435715U,	// DIVD
    268435721U,	// DIVDU
    268435728U,	// DIVW
    268435734U,	// DIVWU
    2147483933U,	// DSS
    290U,	// DSSALL
    2415919401U,	// DST
    2415919401U,	// DST64
    2415919406U,	// DSTST
    2415919406U,	// DSTST64
    2415919413U,	// DSTSTT
    2415919413U,	// DSTSTT64
    2415919421U,	// DSTT
    2415919421U,	// DSTT64
    696254534U,	// DYNALLOC
    700448838U,	// DYNALLOC8
    268435779U,	// EQV
    268435779U,	// EQV8
    268468552U,	// EXTSB
    268468552U,	// EXTSB8
    268468559U,	// EXTSH
    268468559U,	// EXTSH8
    268468566U,	// EXTSW
    268468566U,	// EXTSW_32
    268468566U,	// EXTSW_32_64
    268468573U,	// FABSD
    268468573U,	// FABSS
    268435811U,	// FADD
    268435817U,	// FADDS
    268435811U,	// FADDrtz
    268468592U,	// FCFID
    268435831U,	// FCMPUD
    268435831U,	// FCMPUS
    268468606U,	// FCTIDZ
    268468614U,	// FCTIWZ
    268435854U,	// FDIV
    268435860U,	// FDIVS
    268435867U,	// FMADD
    268435874U,	// FMADDS
    268468650U,	// FMR
    268468650U,	// FMRSD
    268435887U,	// FMSUB
    268435894U,	// FMSUBS
    268435902U,	// FMUL
    268435908U,	// FMULS
    268468683U,	// FNABSD
    268468683U,	// FNABSS
    268468690U,	// FNEGD
    268468690U,	// FNEGS
    268435928U,	// FNMADD
    268435936U,	// FNMADDS
    268435945U,	// FNMSUB
    268435953U,	// FNMSUBS
    268468730U,	// FRSP
    268435968U,	// FSELD
    268435968U,	// FSELS
    268468742U,	// FSQRT
    268468749U,	// FSQRTS
    268435989U,	// FSUB
    268435995U,	// FSUBS
    269287970U,	// LA
    269484582U,	// LBZ
    269484582U,	// LBZ8
    269746731U,	// LBZU
    269746731U,	// LBZU8
    270008881U,	// LBZX
    270008881U,	// LBZX8
    270271031U,	// LD
    270008891U,	// LDARX
    270533186U,	// LDU
    270008903U,	// LDX
    436208204U,	// LDinto_toc
    270795319U,	// LDtoc
    597U,	// LDtoc_restore
    269484641U,	// LFD
    269746785U,	// LFDU
    270008934U,	// LFDX
    269484652U,	// LFS
    269746796U,	// LFSU
    270008945U,	// LFSX
    269484663U,	// LHA
    269484663U,	// LHA8
    269746812U,	// LHAU
    269320828U,	// LHAU8
    270008962U,	// LHAX
    270008962U,	// LHAX8
    270008968U,	// LHBRX
    269484687U,	// LHZ
    269484687U,	// LHZ8
    269746836U,	// LHZU
    269746836U,	// LHZU8
    270008986U,	// LHZX
    270008986U,	// LHZX8
    271057568U,	// LI
    271057568U,	// LI8
    271319716U,	// LIS
    271319716U,	// LIS8
    270009001U,	// LVEBX
    270009008U,	// LVEHX
    270009015U,	// LVEWX
    270009022U,	// LVSL
    270009028U,	// LVSR
    270009034U,	// LVX
    270009039U,	// LVXL
    270271189U,	// LWA
    270009050U,	// LWARX
    270009057U,	// LWAX
    270009063U,	// LWBRX
    269484782U,	// LWZ
    269484782U,	// LWZ8
    269746931U,	// LWZU
    269746931U,	// LWZU8
    270009081U,	// LWZX
    270009081U,	// LWZX8
    268468991U,	// MCRF
    419431173U,	// MFCR
    419431179U,	// MFCTR
    419431179U,	// MFCTR8
    419431186U,	// MFFS
    419431192U,	// MFLR
    419431192U,	// MFLR8
    271581957U,	// MFOCRF
    440402718U,	// MFVRSAVE
    419431205U,	// MFVSCR
    2684355373U,	// MTCRF
    419431220U,	// MTCTR
    419431220U,	// MTCTR8
    2952790843U,	// MTFSB0
    2952790851U,	// MTFSB1
    3397387083U,	// MTFSF
    419431250U,	// MTLR
    419431250U,	// MTLR8
    419431256U,	// MTVRSAVE
    419431268U,	// MTVSCR
    268436332U,	// MULHD
    268436339U,	// MULHDU
    268436347U,	// MULHW
    268436354U,	// MULHWU
    268436362U,	// MULLD
    268440465U,	// MULLI
    268436376U,	// MULLW
    3489661041U,	// MovePCtoLR
    3489661041U,	// MovePCtoLR8
    268436383U,	// NAND
    268436383U,	// NAND8
    268469157U,	// NEG
    268469157U,	// NEG8
    938U,	// NOP
    268436398U,	// NOR
    268436398U,	// NOR8
    268436403U,	// OR
    268436403U,	// OR4To8
    268436403U,	// OR8
    268436403U,	// OR8To4
    268436407U,	// ORC
    268436407U,	// ORC8
    268448700U,	// ORI
    268448700U,	// ORI8
    268448705U,	// ORIS
    268448705U,	// ORIS8
    268436423U,	// RLDCL
    268452814U,	// RLDICL
    268452822U,	// RLDICR
    271975390U,	// RLDIMI
    272008166U,	// RLWIMI
    268456942U,	// RLWINM
    268456950U,	// RLWINMo
    268436479U,	// RLWNM
    717226054U,	// SELECT_CC_F4
    717226054U,	// SELECT_CC_F8
    717226054U,	// SELECT_CC_I4
    717226054U,	// SELECT_CC_I8
    717226054U,	// SELECT_CC_VRRC
    268436486U,	// SLD
    268436491U,	// SLW
    721420358U,	// SPILL_CR
    268436496U,	// SRAD
    268452886U,	// SRADI
    268436509U,	// SRAW
    268456995U,	// SRAWI
    268436522U,	// SRD
    268436527U,	// SRW
    269485108U,	// STB
    269485108U,	// STB8
    3409970233U,	// STBU
    3409970233U,	// STBU8
    270009407U,	// STBX
    270009407U,	// STBX8
    270271557U,	// STD
    270009418U,	// STDCX
    3414164562U,	// STDU
    270009432U,	// STDUX
    270009439U,	// STDX
    270009439U,	// STDX_32
    270271557U,	// STD_32
    269485157U,	// STFD
    3409970283U,	// STFDU
    270009458U,	// STFDX
    270009465U,	// STFIWX
    269485185U,	// STFS
    3409970311U,	// STFSU
    270009486U,	// STFSX
    269485205U,	// STH
    269485205U,	// STH8
    270009498U,	// STHBRX
    3409970338U,	// STHU
    3409970338U,	// STHU8
    270009512U,	// STHX
    270009512U,	// STHX8
    270009518U,	// STVEBX
    270009526U,	// STVEHX
    270009534U,	// STVEWX
    270009542U,	// STVX
    270009548U,	// STVXL
    269485267U,	// STW
    269485267U,	// STW8
    270009560U,	// STWBRX
    270009568U,	// STWCX
    3409970408U,	// STWU
    268436718U,	// STWUX
    270009589U,	// STWX
    270009589U,	// STWX8
    268436731U,	// SUBF
    268436731U,	// SUBF8
    268436737U,	// SUBFC
    268436737U,	// SUBFC8
    268436744U,	// SUBFE
    268436744U,	// SUBFE8
    268440847U,	// SUBFIC
    268440847U,	// SUBFIC8
    268469527U,	// SUBFME
    268469527U,	// SUBFME8
    268469535U,	// SUBFZE
    268469535U,	// SUBFZE8
    1319U,	// SYNC
    1493172321U,	// TAILB
    1493172321U,	// TAILB8
    1761609004U,	// TAILBA
    1761609004U,	// TAILBA8
    102U,	// TAILBCTR
    102U,	// TAILBCTR8
    1757447472U,	// TCRETURNai
    1757447485U,	// TCRETURNai8
    1489012043U,	// TCRETURNdi
    1489012056U,	// TCRETURNdi8
    415270246U,	// TCRETURNri
    415270259U,	// TCRETURNri8
    1409U,	// TRAP
    268469638U,	// UPDATE_VRSAVE
    268436885U,	// VADDCUW
    268436894U,	// VADDFP
    268436902U,	// VADDSBS
    268436911U,	// VADDSHS
    268436920U,	// VADDSWS
    268436929U,	// VADDUBM
    268436938U,	// VADDUBS
    268436947U,	// VADDUHM
    268436956U,	// VADDUHS
    268436965U,	// VADDUWM
    268436974U,	// VADDUWS
    268436983U,	// VAND
    268436989U,	// VANDC
    268436996U,	// VAVGSB
    268437004U,	// VAVGSH
    268437012U,	// VAVGSW
    268437020U,	// VAVGUB
    268437028U,	// VAVGUH
    268437036U,	// VAVGUW
    272041524U,	// VCFSX
    272041531U,	// VCFUX
    268437058U,	// VCMPBFP
    268437067U,	// VCMPBFPo
    268437077U,	// VCMPEQFP
    268437087U,	// VCMPEQFPo
    268437098U,	// VCMPEQUB
    268437108U,	// VCMPEQUBo
    268437119U,	// VCMPEQUH
    268437129U,	// VCMPEQUHo
    268437140U,	// VCMPEQUW
    268437150U,	// VCMPEQUWo
    268437161U,	// VCMPGEFP
    268437171U,	// VCMPGEFPo
    268437182U,	// VCMPGTFP
    268437192U,	// VCMPGTFPo
    268437203U,	// VCMPGTSB
    268437213U,	// VCMPGTSBo
    268437224U,	// VCMPGTSH
    268437234U,	// VCMPGTSHo
    268437245U,	// VCMPGTSW
    268437255U,	// VCMPGTSWo
    268437266U,	// VCMPGTUB
    268437276U,	// VCMPGTUBo
    268437287U,	// VCMPGTUH
    268437297U,	// VCMPGTUHo
    268437308U,	// VCMPGTUW
    268437318U,	// VCMPGTUWo
    272041809U,	// VCTSXS
    272041817U,	// VCTUXS
    268470113U,	// VEXPTEFP
    268470123U,	// VLOGEFP
    268437364U,	// VMADDFP
    268437373U,	// VMAXFP
    268437381U,	// VMAXSB
    268437389U,	// VMAXSH
    268437397U,	// VMAXSW
    268437405U,	// VMAXUB
    268437413U,	// VMAXUH
    268437421U,	// VMAXUW
    268437429U,	// VMHADDSHS
    268437440U,	// VMHRADDSHS
    268437452U,	// VMINFP
    268437460U,	// VMINSB
    268437468U,	// VMINSH
    268437476U,	// VMINSW
    268437484U,	// VMINUB
    268437492U,	// VMINUH
    268437500U,	// VMINUW
    268437508U,	// VMLADDUHM
    268437519U,	// VMRGHB
    268437527U,	// VMRGHH
    268437535U,	// VMRGHW
    268437543U,	// VMRGLB
    268437551U,	// VMRGLH
    268437559U,	// VMRGLW
    268437567U,	// VMSUMMBM
    268437577U,	// VMSUMSHM
    268437587U,	// VMSUMSHS
    268437597U,	// VMSUMUBM
    268437607U,	// VMSUMUHM
    268437617U,	// VMSUMUHS
    268437627U,	// VMULESB
    268437636U,	// VMULESH
    268437645U,	// VMULEUB
    268437654U,	// VMULEUH
    268437663U,	// VMULOSB
    268437672U,	// VMULOSH
    268437681U,	// VMULOUB
    268437690U,	// VMULOUH
    268437699U,	// VNMSUBFP
    268437709U,	// VNOR
    268437715U,	// VOR
    268437720U,	// VPERM
    268437727U,	// VPKPX
    268437734U,	// VPKSHSS
    268437743U,	// VPKSHUS
    268437752U,	// VPKSWSS
    268437761U,	// VPKSWUS
    268437770U,	// VPKUHUM
    268437779U,	// VPKUHUS
    268437788U,	// VPKUWUM
    268437797U,	// VPKUWUS
    268470574U,	// VREFP
    268470581U,	// VRFIM
    268470588U,	// VRFIN
    268470595U,	// VRFIP
    268470602U,	// VRFIZ
    268437841U,	// VRLB
    268437847U,	// VRLH
    268437853U,	// VRLW
    268470627U,	// VRSQRTEFP
    268437870U,	// VSEL
    268437876U,	// VSL
    268437881U,	// VSLB
    268437887U,	// VSLDOI
    268437895U,	// VSLH
    268437901U,	// VSLO
    268437907U,	// VSLW
    272042393U,	// VSPLTB
    272042401U,	// VSPLTH
    272107945U,	// VSPLTISB
    272107955U,	// VSPLTISH
    272107965U,	// VSPLTISW
    272042439U,	// VSPLTW
    268437967U,	// VSR
    268437972U,	// VSRAB
    268437979U,	// VSRAH
    268437986U,	// VSRAW
    268437993U,	// VSRB
    268437999U,	// VSRH
    268438005U,	// VSRO
    268438011U,	// VSRW
    268438017U,	// VSUBCUW
    268438026U,	// VSUBFP
    268438034U,	// VSUBSBS
    268438043U,	// VSUBSHS
    268438052U,	// VSUBSWS
    268438061U,	// VSUBUBM
    268438070U,	// VSUBUBS
    268438079U,	// VSUBUHM
    268438088U,	// VSUBUHS
    268438097U,	// VSUBUWM
    268438106U,	// VSUBUWS
    268438115U,	// VSUM2SWS
    268438125U,	// VSUM4SBS
    268438135U,	// VSUM4SHS
    268438145U,	// VSUM4UBS
    268438155U,	// VSUMSWS
    268470932U,	// VUPKHPX
    268470941U,	// VUPKHSB
    268470950U,	// VUPKHSH
    268470959U,	// VUPKLPX
    268470968U,	// VUPKLSB
    268470977U,	// VUPKLSH
    268438218U,	// VXOR
    268962506U,	// V_SET0
    268438224U,	// XOR
    268438224U,	// XOR8
    268450517U,	// XORI
    268450517U,	// XORI8
    268450523U,	// XORIS
    268450523U,	// XORIS8
    0U
  };

  const char *AsmStrs = 
    "DBG_VALUE\000add \000addc \000adde \000addi \000addic \000addic. \000ad"
    "dis \000addme \000addze \000\000and \000andc \000andis. \000andi. \000b"
    " \000b\000bctr\000bctrl\000bl \000bla \000cmpd \000cmpdi \000cmpld \000"
    "cmpldi \000cmplw \000cmplwi \000cmpw \000cmpwi \000cntlzd \000cntlzw \000"
    "creqv \000cror \000dcba \000dcbf \000dcbi \000dcbst \000dcbt \000dcbtst"
    " \000dcbz \000dcbzl \000divd \000divdu \000divw \000divwu \000dss \000d"
    "ssall\000dst \000dstst \000dststt \000dstt \000eqv \000extsb \000extsh "
    "\000extsw \000fabs \000fadd \000fadds \000fcfid \000fcmpu \000fctidz \000"
    "fctiwz \000fdiv \000fdivs \000fmadd \000fmadds \000fmr \000fmsub \000fm"
    "subs \000fmul \000fmuls \000fnabs \000fneg \000fnmadd \000fnmadds \000f"
    "nmsub \000fnmsubs \000frsp \000fsel \000fsqrt \000fsqrts \000fsub \000f"
    "subs \000la \000lbz \000lbzu \000lbzx \000ld \000ldarx \000ldu \000ldx "
    "\000ld 2, 8(\000ld 2, 40(1)\000lfd \000lfdx \000lfs \000lfsx \000lha \000"
    "lhau \000lhax \000lhbrx \000lhz \000lhzu \000lhzx \000li \000lis \000lv"
    "ebx \000lvehx \000lvewx \000lvsl \000lvsr \000lvx \000lvxl \000lwa \000"
    "lwarx \000lwax \000lwbrx \000lwz \000lwzu \000lwzx \000mcrf \000mfcr \000"
    "mfctr \000mffs \000mflr \000mfspr \000mfvscr \000mtcrf \000mtctr \000mt"
    "fsb0 \000mtfsb1 \000mtfsf \000mtlr \000mtspr 256, \000mtvscr \000mulhd "
    "\000mulhdu \000mulhw \000mulhwu \000mulld \000mulli \000mullw \000nand "
    "\000neg \000nop\000nor \000or \000orc \000ori \000oris \000rldcl \000rl"
    "dicl \000rldicr \000rldimi \000rlwimi \000rlwinm \000rlwinm. \000rlwnm "
    "\000sld \000slw \000srad \000sradi \000sraw \000srawi \000srd \000srw \000"
    "stb \000stbu \000stbx \000std \000stdcx. \000stdu \000stdux \000stdx \000"
    "stfd \000stfdu \000stfdx \000stfiwx \000stfs \000stfsu \000stfsx \000st"
    "h \000sthbrx \000sthu \000sthx \000stvebx \000stvehx \000stvewx \000stv"
    "x \000stvxl \000stw \000stwbrx \000stwcx. \000stwu \000stwux \000stwx \000"
    "subf \000subfc \000subfe \000subfic \000subfme \000subfze \000sync\000b"
    "a \000#TC_RETURNa \000#TC_RETURNa8 \000#TC_RETURNd \000#TC_RETURNd8 \000"
    "#TC_RETURNr \000#TC_RETURNr8 \000trap\000UPDATE_VRSAVE \000vaddcuw \000"
    "vaddfp \000vaddsbs \000vaddshs \000vaddsws \000vaddubm \000vaddubs \000"
    "vadduhm \000vadduhs \000vadduwm \000vadduws \000vand \000vandc \000vavg"
    "sb \000vavgsh \000vavgsw \000vavgub \000vavguh \000vavguw \000vcfsx \000"
    "vcfux \000vcmpbfp \000vcmpbfp. \000vcmpeqfp \000vcmpeqfp. \000vcmpequb "
    "\000vcmpequb. \000vcmpequh \000vcmpequh. \000vcmpequw \000vcmpequw. \000"
    "vcmpgefp \000vcmpgefp. \000vcmpgtfp \000vcmpgtfp. \000vcmpgtsb \000vcmp"
    "gtsb. \000vcmpgtsh \000vcmpgtsh. \000vcmpgtsw \000vcmpgtsw. \000vcmpgtu"
    "b \000vcmpgtub. \000vcmpgtuh \000vcmpgtuh. \000vcmpgtuw \000vcmpgtuw. \000"
    "vctsxs \000vctuxs \000vexptefp \000vlogefp \000vmaddfp \000vmaxfp \000v"
    "maxsb \000vmaxsh \000vmaxsw \000vmaxub \000vmaxuh \000vmaxuw \000vmhadd"
    "shs \000vmhraddshs \000vminfp \000vminsb \000vminsh \000vminsw \000vmin"
    "ub \000vminuh \000vminuw \000vmladduhm \000vmrghb \000vmrghh \000vmrghw"
    " \000vmrglb \000vmrglh \000vmrglw \000vmsummbm \000vmsumshm \000vmsumsh"
    "s \000vmsumubm \000vmsumuhm \000vmsumuhs \000vmulesb \000vmulesh \000vm"
    "uleub \000vmuleuh \000vmulosb \000vmulosh \000vmuloub \000vmulouh \000v"
    "nmsubfp \000vnor \000vor \000vperm \000vpkpx \000vpkshss \000vpkshus \000"
    "vpkswss \000vpkswus \000vpkuhum \000vpkuhus \000vpkuwum \000vpkuwus \000"
    "vrefp \000vrfim \000vrfin \000vrfip \000vrfiz \000vrlb \000vrlh \000vrl"
    "w \000vrsqrtefp \000vsel \000vsl \000vslb \000vsldoi \000vslh \000vslo "
    "\000vslw \000vspltb \000vsplth \000vspltisb \000vspltish \000vspltisw \000"
    "vspltw \000vsr \000vsrab \000vsrah \000vsraw \000vsrb \000vsrh \000vsro"
    " \000vsrw \000vsubcuw \000vsubfp \000vsubsbs \000vsubshs \000vsubsws \000"
    "vsububm \000vsububs \000vsubuhm \000vsubuhs \000vsubuwm \000vsubuws \000"
    "vsum2sws \000vsum4sbs \000vsum4shs \000vsum4ubs \000vsumsws \000vupkhpx"
    " \000vupkhsb \000vupkhsh \000vupklpx \000vupklsb \000vupklsh \000vxor \000"
    "xor \000xori \000xoris \000";

  O << "\t";

  // Emit the opcode for the instruction.
  unsigned Bits = OpInfo[MI->getOpcode()];
  assert(Bits != 0 && "Cannot print this instruction.");
  O << AsmStrs+(Bits & 4095)-1;


  // Fragment 0 encoded into 4 bits for 14 unique commands.
  switch ((Bits >> 28) & 15) {
  default:   // unreachable.
  case 0:
    // DBG_VALUE, BCTR, BCTRL8_Darwin, BCTRL8_ELF, BCTRL_Darwin, BCTRL_SVR4, ...
    return;
    break;
  case 1:
    // ADD4, ADD8, ADDC, ADDC8, ADDE, ADDE8, ADDI, ADDI8, ADDIC, ADDIC8, ADDI...
    printOperand(MI, 0); 
    break;
  case 2:
    // ADJCALLSTACKDOWN, ADJCALLSTACKUP, ATOMIC_CMP_SWAP_I16, ATOMIC_CMP_SWAP...
    PrintSpecial(MI, "comment"); 
    break;
  case 3:
    // B
    printBranchOperand(MI, 0); 
    return;
    break;
  case 4:
    // BCC, BLR
    printPredicateOperand(MI, 0, "cc"); 
    break;
  case 5:
    // BL8_Darwin, BL8_ELF, BL_Darwin, BL_SVR4, TAILB, TAILB8, TCRETURNdi, TC...
    printCallOperand(MI, 0); 
    break;
  case 6:
    // BLA8_Darwin, BLA8_ELF, BLA_Darwin, BLA_SVR4, TAILBA, TAILBA8, TCRETURN...
    printAbsAddrOperand(MI, 0); 
    break;
  case 7:
    // DCBA, DCBF, DCBI, DCBST, DCBT, DCBTST, DCBZ, DCBZL
    printMemRegReg(MI, 0); 
    return;
    break;
  case 8:
    // DSS
    printU5ImmOperand(MI, 1); 
    return;
    break;
  case 9:
    // DST, DST64, DSTST, DSTST64, DSTSTT, DSTSTT64, DSTT, DSTT64
    printOperand(MI, 2); 
    O << ", "; 
    printOperand(MI, 3); 
    O << ", "; 
    printU5ImmOperand(MI, 1); 
    return;
    break;
  case 10:
    // MTCRF
    printcrbitm(MI, 0); 
    O << ", "; 
    printOperand(MI, 1); 
    return;
    break;
  case 11:
    // MTFSB0, MTFSB1
    printU5ImmOperand(MI, 0); 
    return;
    break;
  case 12:
    // MTFSF, STBU, STBU8, STDU, STFDU, STFSU, STHU, STHU8, STWU
    printOperand(MI, 1); 
    O << ", "; 
    break;
  case 13:
    // MovePCtoLR, MovePCtoLR8
    printPICLabel(MI, 0); 
    return;
    break;
  }


  // Fragment 1 encoded into 6 bits for 47 unique commands.
  switch ((Bits >> 22) & 63) {
  default:   // unreachable.
  case 0:
    // ADD4, ADD8, ADDC, ADDC8, ADDE, ADDE8, ADDI, ADDI8, ADDIC, ADDIC8, ADDI...
    O << ", "; 
    break;
  case 1:
    // ADJCALLSTACKDOWN
    O << " ADJCALLSTACKDOWN"; 
    return;
    break;
  case 2:
    // ADJCALLSTACKUP
    O << " ADJCALLSTACKUP"; 
    return;
    break;
  case 3:
    // ATOMIC_CMP_SWAP_I16
    O << " ATOMIC_CMP_SWAP_I16 PSEUDO!"; 
    return;
    break;
  case 4:
    // ATOMIC_CMP_SWAP_I32
    O << " ATOMIC_CMP_SWAP_I32 PSEUDO!"; 
    return;
    break;
  case 5:
    // ATOMIC_CMP_SWAP_I64
    O << " ATOMIC_CMP_SWAP_I64 PSEUDO!"; 
    return;
    break;
  case 6:
    // ATOMIC_CMP_SWAP_I8
    O << " ATOMIC_CMP_SWAP_I8 PSEUDO!"; 
    return;
    break;
  case 7:
    // ATOMIC_LOAD_ADD_I16
    O << " ATOMIC_LOAD_ADD_I16 PSEUDO!"; 
    return;
    break;
  case 8:
    // ATOMIC_LOAD_ADD_I32
    O << " ATOMIC_LOAD_ADD_I32 PSEUDO!"; 
    return;
    break;
  case 9:
    // ATOMIC_LOAD_ADD_I64
    O << " ATOMIC_LOAD_ADD_I64 PSEUDO!"; 
    return;
    break;
  case 10:
    // ATOMIC_LOAD_ADD_I8
    O << " ATOMIC_LOAD_ADD_I8 PSEUDO!"; 
    return;
    break;
  case 11:
    // ATOMIC_LOAD_AND_I16
    O << " ATOMIC_LOAD_AND_I16 PSEUDO!"; 
    return;
    break;
  case 12:
    // ATOMIC_LOAD_AND_I32
    O << " ATOMIC_LOAD_AND_I32 PSEUDO!"; 
    return;
    break;
  case 13:
    // ATOMIC_LOAD_AND_I64
    O << " ATOMIC_LOAD_AND_I64 PSEUDO!"; 
    return;
    break;
  case 14:
    // ATOMIC_LOAD_AND_I8
    O << " ATOMIC_LOAD_AND_I8 PSEUDO!"; 
    return;
    break;
  case 15:
    // ATOMIC_LOAD_NAND_I16
    O << " ATOMIC_LOAD_NAND_I16 PSEUDO!"; 
    return;
    break;
  case 16:
    // ATOMIC_LOAD_NAND_I32
    O << " ATOMIC_LOAD_NAND_I32 PSEUDO!"; 
    return;
    break;
  case 17:
    // ATOMIC_LOAD_NAND_I64
    O << " ATOMIC_LOAD_NAND_I64 PSEUDO!"; 
    return;
    break;
  case 18:
    // ATOMIC_LOAD_NAND_I8
    O << " ATOMIC_LOAD_NAND_I8 PSEUDO!"; 
    return;
    break;
  case 19:
    // ATOMIC_LOAD_OR_I16
    O << " ATOMIC_LOAD_OR_I16 PSEUDO!"; 
    return;
    break;
  case 20:
    // ATOMIC_LOAD_OR_I32
    O << " ATOMIC_LOAD_OR_I32 PSEUDO!"; 
    return;
    break;
  case 21:
    // ATOMIC_LOAD_OR_I64
    O << " ATOMIC_LOAD_OR_I64 PSEUDO!"; 
    return;
    break;
  case 22:
    // ATOMIC_LOAD_OR_I8
    O << " ATOMIC_LOAD_OR_I8 PSEUDO!"; 
    return;
    break;
  case 23:
    // ATOMIC_LOAD_SUB_I16
    O << " ATOMIC_LOAD_SUB_I16 PSEUDO!"; 
    return;
    break;
  case 24:
    // ATOMIC_LOAD_SUB_I32
    O << " ATOMIC_LOAD_SUB_I32 PSEUDO!"; 
    return;
    break;
  case 25:
    // ATOMIC_LOAD_SUB_I64
    O << " ATOMIC_LOAD_SUB_I64 PSEUDO!"; 
    return;
    break;
  case 26:
    // ATOMIC_LOAD_SUB_I8
    O << " ATOMIC_LOAD_SUB_I8 PSEUDO!"; 
    return;
    break;
  case 27:
    // ATOMIC_LOAD_XOR_I16
    O << " ATOMIC_LOAD_XOR_I16 PSEUDO!"; 
    return;
    break;
  case 28:
    // ATOMIC_LOAD_XOR_I32
    O << " ATOMIC_LOAD_XOR_I32 PSEUDO!"; 
    return;
    break;
  case 29:
    // ATOMIC_LOAD_XOR_I64
    O << " ATOMIC_LOAD_XOR_I64 PSEUDO!"; 
    return;
    break;
  case 30:
    // ATOMIC_LOAD_XOR_I8
    O << " ATOMIC_LOAD_XOR_I8 PSEUDO!"; 
    return;
    break;
  case 31:
    // ATOMIC_SWAP_I16
    O << " ATOMIC_SWAP_I16 PSEUDO!"; 
    return;
    break;
  case 32:
    // ATOMIC_SWAP_I32
    O << " ATOMIC_SWAP_I32 PSEUDO!"; 
    return;
    break;
  case 33:
    // ATOMIC_SWAP_I64
    O << " ATOMIC_SWAP_I64 PSEUDO!"; 
    return;
    break;
  case 34:
    // ATOMIC_SWAP_I8
    O << " ATOMIC_SWAP_I8 PSEUDO!"; 
    return;
    break;
  case 35:
    // BCC, TCRETURNai, TCRETURNai8, TCRETURNdi, TCRETURNdi8, TCRETURNri, TCR...
    O << ' '; 
    break;
  case 36:
    // BL8_Darwin, BL8_ELF, BLA8_Darwin, BLA8_ELF, BLA_Darwin, BLA_SVR4, BL_D...
    return;
    break;
  case 37:
    // BLR
    O << "lr "; 
    printPredicateOperand(MI, 0, "reg"); 
    return;
    break;
  case 38:
    // DYNALLOC
    O << " DYNALLOC "; 
    printOperand(MI, 0); 
    O << ", "; 
    printOperand(MI, 1); 
    O << ", "; 
    printMemRegImm(MI, 2); 
    return;
    break;
  case 39:
    // DYNALLOC8
    O << " DYNALLOC8 "; 
    printOperand(MI, 0); 
    O << ", "; 
    printOperand(MI, 1); 
    O << ", "; 
    printMemRegImm(MI, 2); 
    return;
    break;
  case 40:
    // LDinto_toc
    O << ')'; 
    return;
    break;
  case 41:
    // MFVRSAVE
    O << ", 256"; 
    return;
    break;
  case 42:
    // MTFSF
    printOperand(MI, 2); 
    return;
    break;
  case 43:
    // SELECT_CC_F4, SELECT_CC_F8, SELECT_CC_I4, SELECT_CC_I8, SELECT_CC_VRRC
    O << " SELECT_CC PSEUDO!"; 
    return;
    break;
  case 44:
    // SPILL_CR
    O << " SPILL_CR "; 
    printOperand(MI, 0); 
    O << ' '; 
    printMemRegImm(MI, 1); 
    return;
    break;
  case 45:
    // STBU, STBU8, STFDU, STFSU, STHU, STHU8, STWU
    printSymbolLo(MI, 2); 
    O << '('; 
    printOperand(MI, 3); 
    O << ')'; 
    return;
    break;
  case 46:
    // STDU
    printS16X4ImmOperand(MI, 2); 
    O << '('; 
    printOperand(MI, 3); 
    O << ')'; 
    return;
    break;
  }


  // Fragment 2 encoded into 4 bits for 15 unique commands.
  switch ((Bits >> 18) & 15) {
  default:   // unreachable.
  case 0:
    // ADD4, ADD8, ADDC, ADDC8, ADDE, ADDE8, ADDI, ADDI8, ADDIC, ADDIC8, ADDI...
    printOperand(MI, 1); 
    break;
  case 1:
    // BCC
    printPredicateOperand(MI, 0, "reg"); 
    O << ", "; 
    printBranchOperand(MI, 2); 
    return;
    break;
  case 2:
    // CRSET, V_SET0
    printOperand(MI, 0); 
    O << ", "; 
    printOperand(MI, 0); 
    return;
    break;
  case 3:
    // LA, LHAU8
    printSymbolLo(MI, 2); 
    O << '('; 
    break;
  case 4:
    // LBZ, LBZ8, LFD, LFS, LHA, LHA8, LHZ, LHZ8, LWZ, LWZ8, STB, STB8, STFD,...
    printMemRegImm(MI, 1); 
    return;
    break;
  case 5:
    // LBZU, LBZU8, LFDU, LFSU, LHAU, LHZU, LHZU8, LWZU, LWZU8
    printMemRegImm(MI, 2); 
    return;
    break;
  case 6:
    // LBZX, LBZX8, LDARX, LDX, LFDX, LFSX, LHAX, LHAX8, LHBRX, LHZX, LHZX8, ...
    printMemRegReg(MI, 1); 
    return;
    break;
  case 7:
    // LD, LWA, STD, STD_32
    printMemRegImmShifted(MI, 1); 
    return;
    break;
  case 8:
    // LDU
    printMemRegImmShifted(MI, 2); 
    return;
    break;
  case 9:
    // LDtoc
    printTOCEntryLabel(MI, 1); 
    O << '('; 
    printOperand(MI, 2); 
    O << ')'; 
    return;
    break;
  case 10:
    // LI, LI8
    printSymbolLo(MI, 1); 
    return;
    break;
  case 11:
    // LIS, LIS8
    printSymbolHi(MI, 1); 
    return;
    break;
  case 12:
    // MFOCRF
    printcrbitm(MI, 1); 
    return;
    break;
  case 13:
    // RLDIMI, RLWIMI, VCFSX, VCFUX, VCTSXS, VCTUXS, VSPLTB, VSPLTH, VSPLTW
    printOperand(MI, 2); 
    O << ", "; 
    break;
  case 14:
    // VSPLTISB, VSPLTISH, VSPLTISW
    printS5ImmOperand(MI, 1); 
    return;
    break;
  }


  // Fragment 3 encoded into 3 bits for 7 unique commands.
  switch ((Bits >> 15) & 7) {
  default:   // unreachable.
  case 0:
    // ADD4, ADD8, ADDC, ADDC8, ADDE, ADDE8, ADDI, ADDI8, ADDIC, ADDIC8, ADDI...
    O << ", "; 
    break;
  case 1:
    // ADDME, ADDME8, ADDZE, ADDZE8, CNTLZD, CNTLZW, EXTSB, EXTSB8, EXTSH, EX...
    return;
    break;
  case 2:
    // LA
    printOperand(MI, 1); 
    O << ')'; 
    return;
    break;
  case 3:
    // LHAU8
    printOperand(MI, 3); 
    O << ')'; 
    return;
    break;
  case 4:
    // RLDIMI
    printU6ImmOperand(MI, 3); 
    O << ", "; 
    printU6ImmOperand(MI, 4); 
    return;
    break;
  case 5:
    // RLWIMI
    printU5ImmOperand(MI, 3); 
    O << ", "; 
    printU5ImmOperand(MI, 4); 
    O << ", "; 
    printU5ImmOperand(MI, 5); 
    return;
    break;
  case 6:
    // VCFSX, VCFUX, VCTSXS, VCTUXS, VSPLTB, VSPLTH, VSPLTW
    printU5ImmOperand(MI, 1); 
    return;
    break;
  }


  // Fragment 4 encoded into 3 bits for 6 unique commands.
  switch ((Bits >> 12) & 7) {
  default:   // unreachable.
  case 0:
    // ADD4, ADD8, ADDC, ADDC8, ADDE, ADDE8, AND, AND8, ANDC, ANDC8, CMPD, CM...
    printOperand(MI, 2); 
    break;
  case 1:
    // ADDI, ADDI8, ADDIC, ADDIC8, ADDICo, CMPDI, CMPWI, MULLI, SUBFIC, SUBFI...
    printS16ImmOperand(MI, 2); 
    return;
    break;
  case 2:
    // ADDIS, ADDIS8
    printSymbolHi(MI, 2); 
    return;
    break;
  case 3:
    // ANDISo, ANDISo8, ANDIo, ANDIo8, CMPLDI, CMPLWI, ORI, ORI8, ORIS, ORIS8...
    printU16ImmOperand(MI, 2); 
    return;
    break;
  case 4:
    // RLDICL, RLDICR, SRADI
    printU6ImmOperand(MI, 2); 
    break;
  case 5:
    // RLWINM, RLWINMo, SRAWI
    printU5ImmOperand(MI, 2); 
    break;
  }

  switch (MI->getOpcode()) {
  case PPC::ADD4:
  case PPC::ADD8:
  case PPC::ADDC:
  case PPC::ADDC8:
  case PPC::ADDE:
  case PPC::ADDE8:
  case PPC::AND:
  case PPC::AND8:
  case PPC::ANDC:
  case PPC::ANDC8:
  case PPC::CMPD:
  case PPC::CMPLD:
  case PPC::CMPLW:
  case PPC::CMPW:
  case PPC::CREQV:
  case PPC::CROR:
  case PPC::DIVD:
  case PPC::DIVDU:
  case PPC::DIVW:
  case PPC::DIVWU:
  case PPC::EQV:
  case PPC::EQV8:
  case PPC::FADD:
  case PPC::FADDS:
  case PPC::FADDrtz:
  case PPC::FCMPUD:
  case PPC::FCMPUS:
  case PPC::FDIV:
  case PPC::FDIVS:
  case PPC::FMUL:
  case PPC::FMULS:
  case PPC::FSUB:
  case PPC::FSUBS:
  case PPC::MULHD:
  case PPC::MULHDU:
  case PPC::MULHW:
  case PPC::MULHWU:
  case PPC::MULLD:
  case PPC::MULLW:
  case PPC::NAND:
  case PPC::NAND8:
  case PPC::NOR:
  case PPC::NOR8:
  case PPC::OR:
  case PPC::OR4To8:
  case PPC::OR8:
  case PPC::OR8To4:
  case PPC::ORC:
  case PPC::ORC8:
  case PPC::SLD:
  case PPC::SLW:
  case PPC::SRAD:
  case PPC::SRADI:
  case PPC::SRAW:
  case PPC::SRAWI:
  case PPC::SRD:
  case PPC::SRW:
  case PPC::STWUX:
  case PPC::SUBF:
  case PPC::SUBF8:
  case PPC::SUBFC:
  case PPC::SUBFC8:
  case PPC::SUBFE:
  case PPC::SUBFE8:
  case PPC::VADDCUW:
  case PPC::VADDFP:
  case PPC::VADDSBS:
  case PPC::VADDSHS:
  case PPC::VADDSWS:
  case PPC::VADDUBM:
  case PPC::VADDUBS:
  case PPC::VADDUHM:
  case PPC::VADDUHS:
  case PPC::VADDUWM:
  case PPC::VADDUWS:
  case PPC::VAND:
  case PPC::VANDC:
  case PPC::VAVGSB:
  case PPC::VAVGSH:
  case PPC::VAVGSW:
  case PPC::VAVGUB:
  case PPC::VAVGUH:
  case PPC::VAVGUW:
  case PPC::VCMPBFP:
  case PPC::VCMPBFPo:
  case PPC::VCMPEQFP:
  case PPC::VCMPEQFPo:
  case PPC::VCMPEQUB:
  case PPC::VCMPEQUBo:
  case PPC::VCMPEQUH:
  case PPC::VCMPEQUHo:
  case PPC::VCMPEQUW:
  case PPC::VCMPEQUWo:
  case PPC::VCMPGEFP:
  case PPC::VCMPGEFPo:
  case PPC::VCMPGTFP:
  case PPC::VCMPGTFPo:
  case PPC::VCMPGTSB:
  case PPC::VCMPGTSBo:
  case PPC::VCMPGTSH:
  case PPC::VCMPGTSHo:
  case PPC::VCMPGTSW:
  case PPC::VCMPGTSWo:
  case PPC::VCMPGTUB:
  case PPC::VCMPGTUBo:
  case PPC::VCMPGTUH:
  case PPC::VCMPGTUHo:
  case PPC::VCMPGTUW:
  case PPC::VCMPGTUWo:
  case PPC::VMAXFP:
  case PPC::VMAXSB:
  case PPC::VMAXSH:
  case PPC::VMAXSW:
  case PPC::VMAXUB:
  case PPC::VMAXUH:
  case PPC::VMAXUW:
  case PPC::VMINFP:
  case PPC::VMINSB:
  case PPC::VMINSH:
  case PPC::VMINSW:
  case PPC::VMINUB:
  case PPC::VMINUH:
  case PPC::VMINUW:
  case PPC::VMRGHB:
  case PPC::VMRGHH:
  case PPC::VMRGHW:
  case PPC::VMRGLB:
  case PPC::VMRGLH:
  case PPC::VMRGLW:
  case PPC::VMULESB:
  case PPC::VMULESH:
  case PPC::VMULEUB:
  case PPC::VMULEUH:
  case PPC::VMULOSB:
  case PPC::VMULOSH:
  case PPC::VMULOUB:
  case PPC::VMULOUH:
  case PPC::VNOR:
  case PPC::VOR:
  case PPC::VPKPX:
  case PPC::VPKSHSS:
  case PPC::VPKSHUS:
  case PPC::VPKSWSS:
  case PPC::VPKSWUS:
  case PPC::VPKUHUM:
  case PPC::VPKUHUS:
  case PPC::VPKUWUM:
  case PPC::VPKUWUS:
  case PPC::VRLB:
  case PPC::VRLH:
  case PPC::VRLW:
  case PPC::VSL:
  case PPC::VSLB:
  case PPC::VSLH:
  case PPC::VSLO:
  case PPC::VSLW:
  case PPC::VSR:
  case PPC::VSRAB:
  case PPC::VSRAH:
  case PPC::VSRAW:
  case PPC::VSRB:
  case PPC::VSRH:
  case PPC::VSRO:
  case PPC::VSRW:
  case PPC::VSUBCUW:
  case PPC::VSUBFP:
  case PPC::VSUBSBS:
  case PPC::VSUBSHS:
  case PPC::VSUBSWS:
  case PPC::VSUBUBM:
  case PPC::VSUBUBS:
  case PPC::VSUBUHM:
  case PPC::VSUBUHS:
  case PPC::VSUBUWM:
  case PPC::VSUBUWS:
  case PPC::VSUM2SWS:
  case PPC::VSUM4SBS:
  case PPC::VSUM4SHS:
  case PPC::VSUM4UBS:
  case PPC::VSUMSWS:
  case PPC::VXOR:
  case PPC::XOR:
  case PPC::XOR8:
    return;
    break;
  case PPC::FMADD:
  case PPC::FMADDS:
  case PPC::FMSUB:
  case PPC::FMSUBS:
  case PPC::FNMADD:
  case PPC::FNMADDS:
  case PPC::FNMSUB:
  case PPC::FNMSUBS:
  case PPC::FSELD:
  case PPC::FSELS:
  case PPC::RLDCL:
  case PPC::RLDICL:
  case PPC::RLDICR:
  case PPC::VMADDFP:
  case PPC::VMHADDSHS:
  case PPC::VMHRADDSHS:
  case PPC::VMLADDUHM:
  case PPC::VMSUMMBM:
  case PPC::VMSUMSHM:
  case PPC::VMSUMSHS:
  case PPC::VMSUMUBM:
  case PPC::VMSUMUHM:
  case PPC::VMSUMUHS:
  case PPC::VNMSUBFP:
  case PPC::VPERM:
  case PPC::VSEL:
  case PPC::VSLDOI:
    O << ", "; 
    switch (MI->getOpcode()) {
    case PPC::FMADD: 
    case PPC::FMADDS: 
    case PPC::FMSUB: 
    case PPC::FMSUBS: 
    case PPC::FNMADD: 
    case PPC::FNMADDS: 
    case PPC::FNMSUB: 
    case PPC::FNMSUBS: 
    case PPC::FSELD: 
    case PPC::FSELS: 
    case PPC::VMADDFP: 
    case PPC::VMHADDSHS: 
    case PPC::VMHRADDSHS: 
    case PPC::VMLADDUHM: 
    case PPC::VMSUMMBM: 
    case PPC::VMSUMSHM: 
    case PPC::VMSUMSHS: 
    case PPC::VMSUMUBM: 
    case PPC::VMSUMUHM: 
    case PPC::VMSUMUHS: 
    case PPC::VNMSUBFP: 
    case PPC::VPERM: 
    case PPC::VSEL: printOperand(MI, 3); break;
    case PPC::RLDCL: 
    case PPC::RLDICL: 
    case PPC::RLDICR: printU6ImmOperand(MI, 3); break;
    case PPC::VSLDOI: printU5ImmOperand(MI, 3); break;
    }
    return;
    break;
  case PPC::RLWINM:
  case PPC::RLWINMo:
  case PPC::RLWNM:
    O << ", "; 
    printU5ImmOperand(MI, 3); 
    O << ", "; 
    printU5ImmOperand(MI, 4); 
    return;
    break;
  }
  return;
}


/// getRegisterName - This method is automatically generated by tblgen
/// from the register set description.  This returns the assembler name
/// for the specified register.
const char *PPCAsmPrinter::getRegisterName(unsigned RegNo) {
  assert(RegNo && RegNo < 176 && "Invalid register number!");

  static const unsigned RegAsmOffset[] = {
    0, 3, 7, 9, 11, 13, 15, 19, 21, 23, 25, 27, 31, 34, 
    36, 38, 41, 45, 48, 51, 54, 57, 61, 64, 67, 70, 73, 77, 
    80, 83, 86, 89, 93, 96, 99, 102, 105, 109, 112, 115, 118, 121, 
    121, 125, 128, 131, 135, 139, 143, 147, 151, 155, 159, 163, 167, 171, 
    174, 178, 182, 186, 190, 194, 198, 202, 206, 210, 214, 217, 221, 225, 
    228, 231, 234, 237, 240, 243, 243, 246, 249, 252, 256, 260, 264, 268, 
    272, 276, 280, 284, 288, 292, 295, 299, 303, 307, 311, 315, 319, 323, 
    327, 331, 335, 338, 342, 346, 349, 352, 355, 358, 361, 364, 382, 385, 
    388, 392, 396, 400, 404, 408, 412, 416, 420, 424, 428, 431, 435, 439, 
    443, 447, 451, 455, 459, 463, 467, 471, 474, 478, 482, 485, 488, 491, 
    494, 497, 500, 246, 249, 252, 256, 260, 264, 268, 272, 276, 280, 284, 
    288, 292, 295, 299, 303, 307, 311, 315, 319, 323, 327, 331, 335, 338, 
    342, 346, 349, 352, 355, 358, 361, 0
  };

  const char *AsmStrs =
    "ca\000cr0\0002\0001\0000\0003\000cr1\0006\0005\0004\0007\000cr2\00010\000"
    "9\0008\00011\000cr3\00014\00013\00012\00015\000cr4\00018\00017\00016\000"
    "19\000cr5\00022\00021\00020\00023\000cr6\00026\00025\00024\00027\000cr7"
    "\00030\00029\00028\00031\000ctr\000f0\000f1\000f10\000f11\000f12\000f13"
    "\000f14\000f15\000f16\000f17\000f18\000f19\000f2\000f20\000f21\000f22\000"
    "f23\000f24\000f25\000f26\000f27\000f28\000f29\000f3\000f30\000f31\000f4"
    "\000f5\000f6\000f7\000f8\000f9\000lr\000r0\000r1\000r10\000r11\000r12\000"
    "r13\000r14\000r15\000r16\000r17\000r18\000r19\000r2\000r20\000r21\000r2"
    "2\000r23\000r24\000r25\000r26\000r27\000r28\000r29\000r3\000r30\000r31\000"
    "r4\000r5\000r6\000r7\000r8\000r9\000**ROUNDING MODE**\000v0\000v1\000v1"
    "0\000v11\000v12\000v13\000v14\000v15\000v16\000v17\000v18\000v19\000v2\000"
    "v20\000v21\000v22\000v23\000v24\000v25\000v26\000v27\000v28\000v29\000v"
    "3\000v30\000v31\000v4\000v5\000v6\000v7\000v8\000v9\000VRsave\000";
  return AsmStrs+RegAsmOffset[RegNo-1];
}


#ifdef GET_INSTRUCTION_NAME
#undef GET_INSTRUCTION_NAME

/// getInstructionName: This method is automatically generated by tblgen
/// from the instruction set description.  This returns the enum name of the
/// specified instruction.
const char *PPCAsmPrinter::getInstructionName(unsigned Opcode) {
  assert(Opcode < 519 && "Invalid instruction number!");

  static const unsigned InstAsmOffset[] = {
    0, 4, 14, 24, 33, 42, 47, 62, 76, 89, 103, 120, 130, 135, 
    140, 145, 151, 156, 162, 167, 173, 179, 186, 193, 199, 206, 212, 219, 
    225, 232, 249, 264, 268, 273, 278, 284, 291, 299, 305, 312, 332, 352, 
    372, 391, 411, 431, 451, 470, 490, 510, 530, 549, 570, 591, 612, 632, 
    651, 670, 689, 707, 727, 747, 767, 786, 806, 826, 846, 865, 881, 897, 
    913, 928, 930, 934, 939, 953, 964, 977, 988, 999, 1007, 1019, 1028, 1039, 
    1048, 1052, 1062, 1070, 1075, 1081, 1087, 1094, 1100, 1107, 1112, 1118, 1125, 1132, 
    1138, 1143, 1149, 1154, 1159, 1164, 1170, 1175, 1182, 1187, 1193, 1198, 1204, 1209, 
    1215, 1219, 1226, 1230, 1236, 1242, 1250, 1257, 1266, 1271, 1278, 1287, 1297, 1301, 
    1306, 1312, 1319, 1325, 1332, 1338, 1347, 1359, 1365, 1371, 1376, 1382, 1390, 1396, 
    1403, 1410, 1417, 1424, 1429, 1435, 1441, 1448, 1452, 1458, 1464, 1471, 1476, 1482, 
    1489, 1496, 1502, 1508, 1515, 1523, 1530, 1538, 1543, 1549, 1555, 1561, 1568, 1573, 
    1579, 1582, 1586, 1591, 1596, 1602, 1607, 1613, 1616, 1622, 1626, 1630, 1641, 1647, 
    1661, 1665, 1670, 1675, 1679, 1684, 1689, 1693, 1698, 1703, 1709, 1714, 1720, 1726, 
    1730, 1735, 1740, 1746, 1751, 1757, 1760, 1764, 1768, 1773, 1779, 1785, 1791, 1796, 
    1801, 1805, 1810, 1814, 1820, 1825, 1831, 1835, 1840, 1845, 1851, 1856, 1862, 1867, 
    1872, 1878, 1885, 1890, 1895, 1901, 1908, 1917, 1924, 1930, 1936, 1943, 1950, 1957, 
    1963, 1968, 1974, 1983, 1990, 1996, 2003, 2009, 2016, 2022, 2028, 2034, 2045, 2057, 
    2062, 2068, 2072, 2077, 2081, 2085, 2090, 2093, 2100, 2104, 2111, 2115, 2120, 2124, 
    2129, 2134, 2140, 2146, 2153, 2160, 2167, 2174, 2181, 2189, 2195, 2208, 2221, 2234, 
    2247, 2262, 2266, 2270, 2279, 2284, 2290, 2295, 2301, 2305, 2309, 2313, 2318, 2323, 
    2329, 2334, 2340, 2344, 2350, 2355, 2361, 2366, 2374, 2381, 2386, 2392, 2398, 2405, 
    2410, 2416, 2422, 2426, 2431, 2438, 2443, 2449, 2454, 2460, 2467, 2474, 2481, 2486, 
    2492, 2496, 2501, 2508, 2514, 2519, 2525, 2530, 2536, 2541, 2547, 2553, 2560, 2566, 
    2573, 2580, 2588, 2595, 2603, 2610, 2618, 2623, 2629, 2636, 2643, 2651, 2660, 2670, 
    2681, 2693, 2704, 2716, 2727, 2739, 2744, 2758, 2766, 2773, 2781, 2789, 2797, 2805, 
    2813, 2821, 2829, 2837, 2845, 2850, 2856, 2863, 2870, 2877, 2884, 2891, 2898, 2904, 
    2910, 2918, 2927, 2936, 2946, 2955, 2965, 2974, 2984, 2993, 3003, 3012, 3022, 3031, 
    3041, 3050, 3060, 3069, 3079, 3088, 3098, 3107, 3117, 3126, 3136, 3145, 3155, 3162, 
    3169, 3178, 3186, 3194, 3201, 3208, 3215, 3222, 3229, 3236, 3243, 3253, 3264, 3271, 
    3278, 3285, 3292, 3299, 3306, 3313, 3323, 3330, 3337, 3344, 3351, 3358, 3365, 3374, 
    3383, 3392, 3401, 3410, 3419, 3427, 3435, 3443, 3451, 3459, 3467, 3475, 3483, 3492, 
    3497, 3501, 3507, 3513, 3521, 3529, 3537, 3545, 3553, 3561, 3569, 3577, 3583, 3589, 
    3595, 3601, 3607, 3612, 3617, 3622, 3632, 3637, 3641, 3646, 3653, 3658, 3663, 3668, 
    3675, 3682, 3691, 3700, 3709, 3716, 3720, 3726, 3732, 3738, 3743, 3748, 3753, 3758, 
    3766, 3773, 3781, 3789, 3797, 3805, 3813, 3821, 3829, 3837, 3845, 3854, 3863, 3872, 
    3881, 3889, 3897, 3905, 3913, 3921, 3929, 3937, 3942, 3949, 3953, 3958, 3963, 3969, 
    3975, 0
  };

  const char *Strs =
    "PHI\000INLINEASM\000DBG_LABEL\000EH_LABEL\000GC_LABEL\000KILL\000EXTRAC"
    "T_SUBREG\000INSERT_SUBREG\000IMPLICIT_DEF\000SUBREG_TO_REG\000COPY_TO_R"
    "EGCLASS\000DBG_VALUE\000ADD4\000ADD8\000ADDC\000ADDC8\000ADDE\000ADDE8\000"
    "ADDI\000ADDI8\000ADDIC\000ADDIC8\000ADDICo\000ADDIS\000ADDIS8\000ADDME\000"
    "ADDME8\000ADDZE\000ADDZE8\000ADJCALLSTACKDOWN\000ADJCALLSTACKUP\000AND\000"
    "AND8\000ANDC\000ANDC8\000ANDISo\000ANDISo8\000ANDIo\000ANDIo8\000ATOMIC"
    "_CMP_SWAP_I16\000ATOMIC_CMP_SWAP_I32\000ATOMIC_CMP_SWAP_I64\000ATOMIC_C"
    "MP_SWAP_I8\000ATOMIC_LOAD_ADD_I16\000ATOMIC_LOAD_ADD_I32\000ATOMIC_LOAD"
    "_ADD_I64\000ATOMIC_LOAD_ADD_I8\000ATOMIC_LOAD_AND_I16\000ATOMIC_LOAD_AN"
    "D_I32\000ATOMIC_LOAD_AND_I64\000ATOMIC_LOAD_AND_I8\000ATOMIC_LOAD_NAND_"
    "I16\000ATOMIC_LOAD_NAND_I32\000ATOMIC_LOAD_NAND_I64\000ATOMIC_LOAD_NAND"
    "_I8\000ATOMIC_LOAD_OR_I16\000ATOMIC_LOAD_OR_I32\000ATOMIC_LOAD_OR_I64\000"
    "ATOMIC_LOAD_OR_I8\000ATOMIC_LOAD_SUB_I16\000ATOMIC_LOAD_SUB_I32\000ATOM"
    "IC_LOAD_SUB_I64\000ATOMIC_LOAD_SUB_I8\000ATOMIC_LOAD_XOR_I16\000ATOMIC_"
    "LOAD_XOR_I32\000ATOMIC_LOAD_XOR_I64\000ATOMIC_LOAD_XOR_I8\000ATOMIC_SWA"
    "P_I16\000ATOMIC_SWAP_I32\000ATOMIC_SWAP_I64\000ATOMIC_SWAP_I8\000B\000B"
    "CC\000BCTR\000BCTRL8_Darwin\000BCTRL8_ELF\000BCTRL_Darwin\000BCTRL_SVR4"
    "\000BL8_Darwin\000BL8_ELF\000BLA8_Darwin\000BLA8_ELF\000BLA_Darwin\000B"
    "LA_SVR4\000BLR\000BL_Darwin\000BL_SVR4\000CMPD\000CMPDI\000CMPLD\000CMP"
    "LDI\000CMPLW\000CMPLWI\000CMPW\000CMPWI\000CNTLZD\000CNTLZW\000CREQV\000"
    "CROR\000CRSET\000DCBA\000DCBF\000DCBI\000DCBST\000DCBT\000DCBTST\000DCB"
    "Z\000DCBZL\000DIVD\000DIVDU\000DIVW\000DIVWU\000DSS\000DSSALL\000DST\000"
    "DST64\000DSTST\000DSTST64\000DSTSTT\000DSTSTT64\000DSTT\000DSTT64\000DY"
    "NALLOC\000DYNALLOC8\000EQV\000EQV8\000EXTSB\000EXTSB8\000EXTSH\000EXTSH"
    "8\000EXTSW\000EXTSW_32\000EXTSW_32_64\000FABSD\000FABSS\000FADD\000FADD"
    "S\000FADDrtz\000FCFID\000FCMPUD\000FCMPUS\000FCTIDZ\000FCTIWZ\000FDIV\000"
    "FDIVS\000FMADD\000FMADDS\000FMR\000FMRSD\000FMSUB\000FMSUBS\000FMUL\000"
    "FMULS\000FNABSD\000FNABSS\000FNEGD\000FNEGS\000FNMADD\000FNMADDS\000FNM"
    "SUB\000FNMSUBS\000FRSP\000FSELD\000FSELS\000FSQRT\000FSQRTS\000FSUB\000"
    "FSUBS\000LA\000LBZ\000LBZ8\000LBZU\000LBZU8\000LBZX\000LBZX8\000LD\000L"
    "DARX\000LDU\000LDX\000LDinto_toc\000LDtoc\000LDtoc_restore\000LFD\000LF"
    "DU\000LFDX\000LFS\000LFSU\000LFSX\000LHA\000LHA8\000LHAU\000LHAU8\000LH"
    "AX\000LHAX8\000LHBRX\000LHZ\000LHZ8\000LHZU\000LHZU8\000LHZX\000LHZX8\000"
    "LI\000LI8\000LIS\000LIS8\000LVEBX\000LVEHX\000LVEWX\000LVSL\000LVSR\000"
    "LVX\000LVXL\000LWA\000LWARX\000LWAX\000LWBRX\000LWZ\000LWZ8\000LWZU\000"
    "LWZU8\000LWZX\000LWZX8\000MCRF\000MFCR\000MFCTR\000MFCTR8\000MFFS\000MF"
    "LR\000MFLR8\000MFOCRF\000MFVRSAVE\000MFVSCR\000MTCRF\000MTCTR\000MTCTR8"
    "\000MTFSB0\000MTFSB1\000MTFSF\000MTLR\000MTLR8\000MTVRSAVE\000MTVSCR\000"
    "MULHD\000MULHDU\000MULHW\000MULHWU\000MULLD\000MULLI\000MULLW\000MovePC"
    "toLR\000MovePCtoLR8\000NAND\000NAND8\000NEG\000NEG8\000NOP\000NOR\000NO"
    "R8\000OR\000OR4To8\000OR8\000OR8To4\000ORC\000ORC8\000ORI\000ORI8\000OR"
    "IS\000ORIS8\000RLDCL\000RLDICL\000RLDICR\000RLDIMI\000RLWIMI\000RLWINM\000"
    "RLWINMo\000RLWNM\000SELECT_CC_F4\000SELECT_CC_F8\000SELECT_CC_I4\000SEL"
    "ECT_CC_I8\000SELECT_CC_VRRC\000SLD\000SLW\000SPILL_CR\000SRAD\000SRADI\000"
    "SRAW\000SRAWI\000SRD\000SRW\000STB\000STB8\000STBU\000STBU8\000STBX\000"
    "STBX8\000STD\000STDCX\000STDU\000STDUX\000STDX\000STDX_32\000STD_32\000"
    "STFD\000STFDU\000STFDX\000STFIWX\000STFS\000STFSU\000STFSX\000STH\000ST"
    "H8\000STHBRX\000STHU\000STHU8\000STHX\000STHX8\000STVEBX\000STVEHX\000S"
    "TVEWX\000STVX\000STVXL\000STW\000STW8\000STWBRX\000STWCX\000STWU\000STW"
    "UX\000STWX\000STWX8\000SUBF\000SUBF8\000SUBFC\000SUBFC8\000SUBFE\000SUB"
    "FE8\000SUBFIC\000SUBFIC8\000SUBFME\000SUBFME8\000SUBFZE\000SUBFZE8\000S"
    "YNC\000TAILB\000TAILB8\000TAILBA\000TAILBA8\000TAILBCTR\000TAILBCTR8\000"
    "TCRETURNai\000TCRETURNai8\000TCRETURNdi\000TCRETURNdi8\000TCRETURNri\000"
    "TCRETURNri8\000TRAP\000UPDATE_VRSAVE\000VADDCUW\000VADDFP\000VADDSBS\000"
    "VADDSHS\000VADDSWS\000VADDUBM\000VADDUBS\000VADDUHM\000VADDUHS\000VADDU"
    "WM\000VADDUWS\000VAND\000VANDC\000VAVGSB\000VAVGSH\000VAVGSW\000VAVGUB\000"
    "VAVGUH\000VAVGUW\000VCFSX\000VCFUX\000VCMPBFP\000VCMPBFPo\000VCMPEQFP\000"
    "VCMPEQFPo\000VCMPEQUB\000VCMPEQUBo\000VCMPEQUH\000VCMPEQUHo\000VCMPEQUW"
    "\000VCMPEQUWo\000VCMPGEFP\000VCMPGEFPo\000VCMPGTFP\000VCMPGTFPo\000VCMP"
    "GTSB\000VCMPGTSBo\000VCMPGTSH\000VCMPGTSHo\000VCMPGTSW\000VCMPGTSWo\000"
    "VCMPGTUB\000VCMPGTUBo\000VCMPGTUH\000VCMPGTUHo\000VCMPGTUW\000VCMPGTUWo"
    "\000VCTSXS\000VCTUXS\000VEXPTEFP\000VLOGEFP\000VMADDFP\000VMAXFP\000VMA"
    "XSB\000VMAXSH\000VMAXSW\000VMAXUB\000VMAXUH\000VMAXUW\000VMHADDSHS\000V"
    "MHRADDSHS\000VMINFP\000VMINSB\000VMINSH\000VMINSW\000VMINUB\000VMINUH\000"
    "VMINUW\000VMLADDUHM\000VMRGHB\000VMRGHH\000VMRGHW\000VMRGLB\000VMRGLH\000"
    "VMRGLW\000VMSUMMBM\000VMSUMSHM\000VMSUMSHS\000VMSUMUBM\000VMSUMUHM\000V"
    "MSUMUHS\000VMULESB\000VMULESH\000VMULEUB\000VMULEUH\000VMULOSB\000VMULO"
    "SH\000VMULOUB\000VMULOUH\000VNMSUBFP\000VNOR\000VOR\000VPERM\000VPKPX\000"
    "VPKSHSS\000VPKSHUS\000VPKSWSS\000VPKSWUS\000VPKUHUM\000VPKUHUS\000VPKUW"
    "UM\000VPKUWUS\000VREFP\000VRFIM\000VRFIN\000VRFIP\000VRFIZ\000VRLB\000V"
    "RLH\000VRLW\000VRSQRTEFP\000VSEL\000VSL\000VSLB\000VSLDOI\000VSLH\000VS"
    "LO\000VSLW\000VSPLTB\000VSPLTH\000VSPLTISB\000VSPLTISH\000VSPLTISW\000V"
    "SPLTW\000VSR\000VSRAB\000VSRAH\000VSRAW\000VSRB\000VSRH\000VSRO\000VSRW"
    "\000VSUBCUW\000VSUBFP\000VSUBSBS\000VSUBSHS\000VSUBSWS\000VSUBUBM\000VS"
    "UBUBS\000VSUBUHM\000VSUBUHS\000VSUBUWM\000VSUBUWS\000VSUM2SWS\000VSUM4S"
    "BS\000VSUM4SHS\000VSUM4UBS\000VSUMSWS\000VUPKHPX\000VUPKHSB\000VUPKHSH\000"
    "VUPKLPX\000VUPKLSB\000VUPKLSH\000VXOR\000V_SET0\000XOR\000XOR8\000XORI\000"
    "XORI8\000XORIS\000XORIS8\000";
  return Strs+InstAsmOffset[Opcode];
}

#endif