LLVM API Documentation

PPCGenAsmWriter.inc

Go to the documentation of this file.
00001 //===- TableGen'erated file -------------------------------------*- C++ -*-===//
00002 //
00003 // Assembly Writer Source Fragment
00004 //
00005 // Automatically generated file, do not edit!
00006 //
00007 //===----------------------------------------------------------------------===//
00008 
00009 /// printInstruction - This method is automatically generated by tablegen
00010 /// from the instruction set description.  This method returns true if the
00011 /// machine instruction was sufficiently described to print it, otherwise
00012 /// it returns false.
00013 bool PPCAsmPrinter::printInstruction(const MachineInstr *MI) {
00014   static const char * const OpStrs[] = {
00015     "PHINODE\n",  // PHI
00016     0,  // INLINEASM
00017     "add ", // ADD4
00018     "add ", // ADD8
00019     "addc ",  // ADDC
00020     "adde ",  // ADDE
00021     "addi ",  // ADDI
00022     "addic ", // ADDIC
00023     "addic. ",  // ADDICo
00024     "addis ", // ADDIS
00025     "addme ", // ADDME
00026     "addze ", // ADDZE
00027     "; ADJCALLSTACKDOWN\n", // ADJCALLSTACKDOWN
00028     "; ADJCALLSTACKUP\n", // ADJCALLSTACKUP
00029     "and ", // AND
00030     "andc ",  // ANDC
00031     "andis. ",  // ANDISo
00032     "andi. ", // ANDIo
00033     "and. ",  // ANDo
00034     "b ", // B
00035     "bctr\n", // BCTR
00036     "bctrl\n",  // BCTRL
00037     "beq ", // BEQ
00038     "bge ", // BGE
00039     "bgt ", // BGT
00040     "bl ",  // BL
00041     "bla ", // BLA
00042     "ble ", // BLE
00043     "blr\n",  // BLR
00044     "blt ", // BLT
00045     "bne ", // BNE
00046     "bnu ", // BNU
00047     "bun ", // BUN
00048     "cmp ", // CMP
00049     "cmpd ",  // CMPD
00050     "cmpdi ", // CMPDI
00051     "cmpi ",  // CMPI
00052     "cmpl ",  // CMPL
00053     "cmpld ", // CMPLD
00054     "cmpldi ",  // CMPLDI
00055     "cmpli ", // CMPLI
00056     "cmplw ", // CMPLW
00057     "cmplwi ",  // CMPLWI
00058     "cmpw ",  // CMPW
00059     "cmpwi ", // CMPWI
00060     "cntlzw ",  // CNTLZW
00061     "; COND_BRANCH\n",  // COND_BRANCH
00062     "divd ",  // DIVD
00063     "divdu ", // DIVDU
00064     "divw ",  // DIVW
00065     "divwu ", // DIVWU
00066     "dss ", // DSS
00067     "dst ", // DST
00068     "dstst ", // DSTST
00069     "\nLdebug_loc", // DWARF_LABEL
00070     "; .loc ",  // DWARF_LOC
00071     "eqv ", // EQV
00072     "extsb ", // EXTSB
00073     "extsh ", // EXTSH
00074     "extsw ", // EXTSW
00075     "extsw ", // EXTSW_32
00076     "fabs ",  // FABSD
00077     "fabs ",  // FABSS
00078     "fadd ",  // FADD
00079     "fadds ", // FADDS
00080     "fcfid ", // FCFID
00081     "fcmpu ", // FCMPUD
00082     "fcmpu ", // FCMPUS
00083     "fctidz ",  // FCTIDZ
00084     "fctiwz ",  // FCTIWZ
00085     "fdiv ",  // FDIV
00086     "fdivs ", // FDIVS
00087     "fmadd ", // FMADD
00088     "fmadds ",  // FMADDS
00089     "fmr ", // FMRD
00090     "fmr ", // FMRS
00091     "fmr ", // FMRSD
00092     "fmsub ", // FMSUB
00093     "fmsubs ",  // FMSUBS
00094     "fmul ",  // FMUL
00095     "fmuls ", // FMULS
00096     "fnabs ", // FNABSD
00097     "fnabs ", // FNABSS
00098     "fneg ",  // FNEGD
00099     "fneg ",  // FNEGS
00100     "fnmadd ",  // FNMADD
00101     "fnmadds ", // FNMADDS
00102     "fnmsub ",  // FNMSUB
00103     "fnmsubs ", // FNMSUBS
00104     "frsp ",  // FRSP
00105     "fsel ",  // FSELD
00106     "fsel ",  // FSELS
00107     "fsqrt ", // FSQRT
00108     "fsqrts ",  // FSQRTS
00109     "fsub ",  // FSUB
00110     "fsubs ", // FSUBS
00111     "; ", // IMPLICIT_DEF_F4
00112     "; ", // IMPLICIT_DEF_F8
00113     "; ", // IMPLICIT_DEF_GPR
00114     "; ", // IMPLICIT_DEF_VRRC
00115     "la ",  // LA
00116     "lbz ", // LBZ
00117     "lbzx ",  // LBZX
00118     "ld ",  // LD
00119     "ldx ", // LDX
00120     "lfd ", // LFD
00121     "lfdx ",  // LFDX
00122     "lfs ", // LFS
00123     "lfsx ",  // LFSX
00124     "lha ", // LHA
00125     "lhax ",  // LHAX
00126     "lhz ", // LHZ
00127     "lhzx ",  // LHZX
00128     "li ",  // LI
00129     "lis ", // LIS
00130     "lvebx ", // LVEBX
00131     "lvehx ", // LVEHX
00132     "lvewx ", // LVEWX
00133     "lvsl ",  // LVSL
00134     "lvsr ",  // LVSR
00135     "lvx ", // LVX
00136     "lvxl ",  // LVXL
00137     "lwa ", // LWA
00138     "lwax ",  // LWAX
00139     "lwz ", // LWZ
00140     "lwzu ",  // LWZU
00141     "lwzx ",  // LWZX
00142     "mcrf ",  // MCRF
00143     "mfcr ",  // MFCR
00144     "mfctr ", // MFCTR
00145     "mflr ",  // MFLR
00146     "mfcr ",  // MFOCRF
00147     "mfspr ", // MFVRSAVE
00148     "mfvcr ", // MFVSCR
00149     "mtcrf ", // MTCRF
00150     "mtctr ", // MTCTR
00151     "mtlr ",  // MTLR
00152     "mtspr 256, ",  // MTVRSAVE
00153     "mtvcr ", // MTVSCR
00154     "mulhd ", // MULHD
00155     "mulhdu ",  // MULHDU
00156     "mulhw ", // MULHW
00157     "mulhwu ",  // MULHWU
00158     "mulld ", // MULLD
00159     "mulli ", // MULLI
00160     "mullw ", // MULLW
00161     "bl ",  // MovePCtoLR
00162     "nand ",  // NAND
00163     "neg ", // NEG
00164     "nop\n",  // NOP
00165     "nor ", // NOR
00166     "or ",  // OR4
00167     "or ",  // OR4To8
00168     "or ",  // OR8
00169     "or ",  // OR8To4
00170     "orc ", // ORC
00171     "ori ", // ORI
00172     "oris ",  // ORIS
00173     "or. ", // ORo
00174     "rldicl ",  // RLDICL
00175     "rldicr ",  // RLDICR
00176     "rldimi ",  // RLDIMI
00177     "rlwimi ",  // RLWIMI
00178     "rlwinm ",  // RLWINM
00179     "rlwinm. ", // RLWINMo
00180     "rlwnm ", // RLWNM
00181     "; SELECT_CC PSEUDO!\n",  // SELECT_CC_F4
00182     "; SELECT_CC PSEUDO!\n",  // SELECT_CC_F8
00183     "; SELECT_CC PSEUDO!\n",  // SELECT_CC_Int
00184     "; SELECT_CC PSEUDO!\n",  // SELECT_CC_VRRC
00185     "sld ", // SLD
00186     "slw ", // SLW
00187     "srad ",  // SRAD
00188     "sradi ", // SRADI
00189     "sraw ",  // SRAW
00190     "srawi ", // SRAWI
00191     "srd ", // SRD
00192     "srw ", // SRW
00193     "stb ", // STB
00194     "stbx ",  // STBX
00195     "std ", // STD
00196     "stdux ", // STDUX
00197     "stdx ",  // STDX
00198     "stdx ",  // STDX_32
00199     "std ", // STD_32
00200     "stfd ",  // STFD
00201     "stfdx ", // STFDX
00202     "stfiwx ",  // STFIWX
00203     "stfs ",  // STFS
00204     "stfsx ", // STFSX
00205     "sth ", // STH
00206     "sthx ",  // STHX
00207     "stvebx ",  // STVEBX
00208     "stvehx ",  // STVEHX
00209     "stvewx ",  // STVEWX
00210     "stvx ",  // STVX
00211     "stvxl ", // STVXL
00212     "stw ", // STW
00213     "stwu ",  // STWU
00214     "stwux ", // STWUX
00215     "stwx ",  // STWX
00216     "subf ",  // SUBF
00217     "subfc ", // SUBFC
00218     "subfe ", // SUBFE
00219     "subfic ",  // SUBFIC
00220     "subfme ",  // SUBFME
00221     "subfze ",  // SUBFZE
00222     "UPDATE_VRSAVE ", // UPDATE_VRSAVE
00223     "vaddcuw ", // VADDCUW
00224     "vaddfp ",  // VADDFP
00225     "vaddsbs ", // VADDSBS
00226     "vaddshs ", // VADDSHS
00227     "vaddsws ", // VADDSWS
00228     "vaddubm ", // VADDUBM
00229     "vaddubs ", // VADDUBS
00230     "vadduhm ", // VADDUHM
00231     "vadduhs ", // VADDUHS
00232     "vadduwm ", // VADDUWM
00233     "vadduws ", // VADDUWS
00234     "vand ",  // VAND
00235     "vandc ", // VANDC
00236     "vavgsb ",  // VAVGSB
00237     "vavgsh ",  // VAVGSH
00238     "vavgsw ",  // VAVGSW
00239     "vavgub ",  // VAVGUB
00240     "vavguh ",  // VAVGUH
00241     "vavguw ",  // VAVGUW
00242     "vcfsx ", // VCFSX
00243     "vcfux ", // VCFUX
00244     "vcmpbfp ", // VCMPBFP
00245     "vcmpbfp. ",  // VCMPBFPo
00246     "vcmpeqfp ",  // VCMPEQFP
00247     "vcmpeqfp. ", // VCMPEQFPo
00248     "vcmpequb ",  // VCMPEQUB
00249     "vcmpequb. ", // VCMPEQUBo
00250     "vcmpequh ",  // VCMPEQUH
00251     "vcmpequh. ", // VCMPEQUHo
00252     "vcmpequw ",  // VCMPEQUW
00253     "vcmpequw. ", // VCMPEQUWo
00254     "vcmpgefp ",  // VCMPGEFP
00255     "vcmpgefp. ", // VCMPGEFPo
00256     "vcmpgtfp ",  // VCMPGTFP
00257     "vcmpgtfp. ", // VCMPGTFPo
00258     "vcmpgtsb ",  // VCMPGTSB
00259     "vcmpgtsb. ", // VCMPGTSBo
00260     "vcmpgtsh ",  // VCMPGTSH
00261     "vcmpgtsh. ", // VCMPGTSHo
00262     "vcmpgtsw ",  // VCMPGTSW
00263     "vcmpgtsw. ", // VCMPGTSWo
00264     "vcmpgtub ",  // VCMPGTUB
00265     "vcmpgtub. ", // VCMPGTUBo
00266     "vcmpgtuh ",  // VCMPGTUH
00267     "vcmpgtuh. ", // VCMPGTUHo
00268     "vcmpgtuw ",  // VCMPGTUW
00269     "vcmpgtuw. ", // VCMPGTUWo
00270     "vctsxs ",  // VCTSXS
00271     "vctuxs ",  // VCTUXS
00272     "vexptefp ",  // VEXPTEFP
00273     "vlogefp ", // VLOGEFP
00274     "vmaddfp ", // VMADDFP
00275     "vmaxfp ",  // VMAXFP
00276     "vmaxsb ",  // VMAXSB
00277     "vmaxsh ",  // VMAXSH
00278     "vmaxsw ",  // VMAXSW
00279     "vmaxub ",  // VMAXUB
00280     "vmaxuh ",  // VMAXUH
00281     "vmaxuw ",  // VMAXUW
00282     "vmhaddshs ", // VMHADDSHS
00283     "vmhraddshs ",  // VMHRADDSHS
00284     "vminfp ",  // VMINFP
00285     "vminsb ",  // VMINSB
00286     "vminsh ",  // VMINSH
00287     "vminsw ",  // VMINSW
00288     "vminub ",  // VMINUB
00289     "vminuh ",  // VMINUH
00290     "vminuw ",  // VMINUW
00291     "vmladduhm ", // VMLADDUHM
00292     "vmrghb ",  // VMRGHB
00293     "vmrghh ",  // VMRGHH
00294     "vmrghw ",  // VMRGHW
00295     "vmrglb ",  // VMRGLB
00296     "vmrglh ",  // VMRGLH
00297     "vmrglw ",  // VMRGLW
00298     "vmsummbm ",  // VMSUMMBM
00299     "vmsumshm ",  // VMSUMSHM
00300     "vmsumshs ",  // VMSUMSHS
00301     "vmsumubm ",  // VMSUMUBM
00302     "vmsumuhm ",  // VMSUMUHM
00303     "vmsumuhs ",  // VMSUMUHS
00304     "vmulesb ", // VMULESB
00305     "vmulesh ", // VMULESH
00306     "vmuleub ", // VMULEUB
00307     "vmuleuh ", // VMULEUH
00308     "vmulosb ", // VMULOSB
00309     "vmulosh ", // VMULOSH
00310     "vmuloub ", // VMULOUB
00311     "vmulouh ", // VMULOUH
00312     "vnmsubfp ",  // VNMSUBFP
00313     "vnor ",  // VNOR
00314     "vor ", // VOR
00315     "vperm ", // VPERM
00316     "vpkpx ", // VPKPX
00317     "vpkshss ", // VPKSHSS
00318     "vpkshus ", // VPKSHUS
00319     "vpkswss ", // VPKSWSS
00320     "vpkswus ", // VPKSWUS
00321     "vpkuhum ", // VPKUHUM
00322     "vpkuhus ", // VPKUHUS
00323     "vpkuwum ", // VPKUWUM
00324     "vpkuwus ", // VPKUWUS
00325     "vrefp ", // VREFP
00326     "vrfim ", // VRFIM
00327     "vrfin ", // VRFIN
00328     "vrfip ", // VRFIP
00329     "vrfiz ", // VRFIZ
00330     "vrlb ",  // VRLB
00331     "vrlh ",  // VRLH
00332     "vrlw ",  // VRLW
00333     "vrsqrtefp ", // VRSQRTEFP
00334     "vsel ",  // VSEL
00335     "vsl ", // VSL
00336     "vslb ",  // VSLB
00337     "vsldoi ",  // VSLDOI
00338     "vslh ",  // VSLH
00339     "vslo ",  // VSLO
00340     "vslw ",  // VSLW
00341     "vspltb ",  // VSPLTB
00342     "vsplth ",  // VSPLTH
00343     "vspltisb ",  // VSPLTISB
00344     "vspltish ",  // VSPLTISH
00345     "vspltisw ",  // VSPLTISW
00346     "vspltw ",  // VSPLTW
00347     "vsr ", // VSR
00348     "vsrab ", // VSRAB
00349     "vsrah ", // VSRAH
00350     "vsraw ", // VSRAW
00351     "vsrb ",  // VSRB
00352     "vsrh ",  // VSRH
00353     "vsro ",  // VSRO
00354     "vsrw ",  // VSRW
00355     "vsubcuw ", // VSUBCUW
00356     "vsubfp ",  // VSUBFP
00357     "vsubsbs ", // VSUBSBS
00358     "vsubshs ", // VSUBSHS
00359     "vsubsws ", // VSUBSWS
00360     "vsububm ", // VSUBUBM
00361     "vsububs ", // VSUBUBS
00362     "vsubuhm ", // VSUBUHM
00363     "vsubuhs ", // VSUBUHS
00364     "vsubuwm ", // VSUBUWM
00365     "vsubuws ", // VSUBUWS
00366     "vsum2sws ",  // VSUM2SWS
00367     "vsum4sbs ",  // VSUM4SBS
00368     "vsum4shs ",  // VSUM4SHS
00369     "vsum4ubs ",  // VSUM4UBS
00370     "vsumsws ", // VSUMSWS
00371     "vupkhpx ", // VUPKHPX
00372     "vupkhsb ", // VUPKHSB
00373     "vupkhsh ", // VUPKHSH
00374     "vupklpx ", // VUPKLPX
00375     "vupklsb ", // VUPKLSB
00376     "vupklsh ", // VUPKLSH
00377     "vxor ",  // VXOR
00378     "vxor ",  // V_SET0
00379     "xor ", // XOR
00380     "xori ",  // XORI
00381     "xoris ", // XORIS
00382   };
00383 
00384   // Emit the opcode for the instruction.
00385   if (const char *AsmStr = OpStrs[MI->getOpcode()])
00386     O << AsmStr;
00387 
00388   switch (MI->getOpcode()) {
00389   default: return false;
00390   case PPC::INLINEASM: printInlineAsm(MI); break;
00391   case PPC::ADD4:
00392   case PPC::ADD8:
00393   case PPC::ADDC:
00394   case PPC::ADDE:
00395   case PPC::ADDI:
00396   case PPC::ADDIC:
00397   case PPC::ADDICo:
00398   case PPC::ADDIS:
00399   case PPC::AND:
00400   case PPC::ANDC:
00401   case PPC::ANDISo:
00402   case PPC::ANDIo:
00403   case PPC::ANDo:
00404   case PPC::CMPD:
00405   case PPC::CMPDI:
00406   case PPC::CMPLD:
00407   case PPC::CMPLDI:
00408   case PPC::CMPLW:
00409   case PPC::CMPLWI:
00410   case PPC::CMPW:
00411   case PPC::CMPWI:
00412   case PPC::DIVD:
00413   case PPC::DIVDU:
00414   case PPC::DIVW:
00415   case PPC::DIVWU:
00416   case PPC::EQV:
00417   case PPC::FADD:
00418   case PPC::FADDS:
00419   case PPC::FCMPUD:
00420   case PPC::FCMPUS:
00421   case PPC::FDIV:
00422   case PPC::FDIVS:
00423   case PPC::FMUL:
00424   case PPC::FMULS:
00425   case PPC::FSUB:
00426   case PPC::FSUBS:
00427   case PPC::MULHD:
00428   case PPC::MULHDU:
00429   case PPC::MULHW:
00430   case PPC::MULHWU:
00431   case PPC::MULLD:
00432   case PPC::MULLI:
00433   case PPC::MULLW:
00434   case PPC::NAND:
00435   case PPC::NOR:
00436   case PPC::OR4:
00437   case PPC::OR4To8:
00438   case PPC::OR8:
00439   case PPC::OR8To4:
00440   case PPC::ORC:
00441   case PPC::ORI:
00442   case PPC::ORIS:
00443   case PPC::ORo:
00444   case PPC::SLD:
00445   case PPC::SLW:
00446   case PPC::SRAD:
00447   case PPC::SRADI:
00448   case PPC::SRAW:
00449   case PPC::SRAWI:
00450   case PPC::SRD:
00451   case PPC::SRW:
00452   case PPC::STDUX:
00453   case PPC::STDX:
00454   case PPC::STWUX:
00455   case PPC::SUBF:
00456   case PPC::SUBFC:
00457   case PPC::SUBFE:
00458   case PPC::SUBFIC:
00459   case PPC::VADDCUW:
00460   case PPC::VADDFP:
00461   case PPC::VADDSBS:
00462   case PPC::VADDSHS:
00463   case PPC::VADDSWS:
00464   case PPC::VADDUBM:
00465   case PPC::VADDUBS:
00466   case PPC::VADDUHM:
00467   case PPC::VADDUHS:
00468   case PPC::VADDUWM:
00469   case PPC::VADDUWS:
00470   case PPC::VAND:
00471   case PPC::VANDC:
00472   case PPC::VAVGSB:
00473   case PPC::VAVGSH:
00474   case PPC::VAVGSW:
00475   case PPC::VAVGUB:
00476   case PPC::VAVGUH:
00477   case PPC::VAVGUW:
00478   case PPC::VCMPBFP:
00479   case PPC::VCMPBFPo:
00480   case PPC::VCMPEQFP:
00481   case PPC::VCMPEQFPo:
00482   case PPC::VCMPEQUB:
00483   case PPC::VCMPEQUBo:
00484   case PPC::VCMPEQUH:
00485   case PPC::VCMPEQUHo:
00486   case PPC::VCMPEQUW:
00487   case PPC::VCMPEQUWo:
00488   case PPC::VCMPGEFP:
00489   case PPC::VCMPGEFPo:
00490   case PPC::VCMPGTFP:
00491   case PPC::VCMPGTFPo:
00492   case PPC::VCMPGTSB:
00493   case PPC::VCMPGTSBo:
00494   case PPC::VCMPGTSH:
00495   case PPC::VCMPGTSHo:
00496   case PPC::VCMPGTSW:
00497   case PPC::VCMPGTSWo:
00498   case PPC::VCMPGTUB:
00499   case PPC::VCMPGTUBo:
00500   case PPC::VCMPGTUH:
00501   case PPC::VCMPGTUHo:
00502   case PPC::VCMPGTUW:
00503   case PPC::VCMPGTUWo:
00504   case PPC::VMAXFP:
00505   case PPC::VMAXSB:
00506   case PPC::VMAXSH:
00507   case PPC::VMAXSW:
00508   case PPC::VMAXUB:
00509   case PPC::VMAXUH:
00510   case PPC::VMAXUW:
00511   case PPC::VMINFP:
00512   case PPC::VMINSB:
00513   case PPC::VMINSH:
00514   case PPC::VMINSW:
00515   case PPC::VMINUB:
00516   case PPC::VMINUH:
00517   case PPC::VMINUW:
00518   case PPC::VMRGHB:
00519   case PPC::VMRGHH:
00520   case PPC::VMRGHW:
00521   case PPC::VMRGLB:
00522   case PPC::VMRGLH:
00523   case PPC::VMRGLW:
00524   case PPC::VMULESB:
00525   case PPC::VMULESH:
00526   case PPC::VMULEUB:
00527   case PPC::VMULEUH:
00528   case PPC::VMULOSB:
00529   case PPC::VMULOSH:
00530   case PPC::VMULOUB:
00531   case PPC::VMULOUH:
00532   case PPC::VNOR:
00533   case PPC::VOR:
00534   case PPC::VPKPX:
00535   case PPC::VPKSHSS:
00536   case PPC::VPKSHUS:
00537   case PPC::VPKSWSS:
00538   case PPC::VPKSWUS:
00539   case PPC::VPKUHUM:
00540   case PPC::VPKUHUS:
00541   case PPC::VPKUWUM:
00542   case PPC::VPKUWUS:
00543   case PPC::VRLB:
00544   case PPC::VRLH:
00545   case PPC::VRLW:
00546   case PPC::VSL:
00547   case PPC::VSLB:
00548   case PPC::VSLH:
00549   case PPC::VSLO:
00550   case PPC::VSLW:
00551   case PPC::VSR:
00552   case PPC::VSRAB:
00553   case PPC::VSRAH:
00554   case PPC::VSRAW:
00555   case PPC::VSRB:
00556   case PPC::VSRH:
00557   case PPC::VSRO:
00558   case PPC::VSRW:
00559   case PPC::VSUBCUW:
00560   case PPC::VSUBFP:
00561   case PPC::VSUBSBS:
00562   case PPC::VSUBSHS:
00563   case PPC::VSUBSWS:
00564   case PPC::VSUBUBM:
00565   case PPC::VSUBUBS:
00566   case PPC::VSUBUHM:
00567   case PPC::VSUBUHS:
00568   case PPC::VSUBUWM:
00569   case PPC::VSUBUWS:
00570   case PPC::VSUM2SWS:
00571   case PPC::VSUM4SBS:
00572   case PPC::VSUM4SHS:
00573   case PPC::VSUM4UBS:
00574   case PPC::VSUMSWS:
00575   case PPC::VXOR:
00576   case PPC::XOR:
00577   case PPC::XORI:
00578   case PPC::XORIS:
00579     printOperand(MI, 0); 
00580     O << ", "; 
00581     printOperand(MI, 1); 
00582     O << ", "; 
00583     switch (MI->getOpcode()) {
00584     case PPC::ADD4: 
00585     case PPC::ADD8: 
00586     case PPC::ADDC: 
00587     case PPC::ADDE: 
00588     case PPC::AND: 
00589     case PPC::ANDC: 
00590     case PPC::ANDo: 
00591     case PPC::CMPD: 
00592     case PPC::CMPLD: 
00593     case PPC::CMPLW: 
00594     case PPC::CMPW: 
00595     case PPC::DIVD: 
00596     case PPC::DIVDU: 
00597     case PPC::DIVW: 
00598     case PPC::DIVWU: 
00599     case PPC::EQV: 
00600     case PPC::FADD: 
00601     case PPC::FADDS: 
00602     case PPC::FCMPUD: 
00603     case PPC::FCMPUS: 
00604     case PPC::FDIV: 
00605     case PPC::FDIVS: 
00606     case PPC::FMUL: 
00607     case PPC::FMULS: 
00608     case PPC::FSUB: 
00609     case PPC::FSUBS: 
00610     case PPC::MULHD: 
00611     case PPC::MULHDU: 
00612     case PPC::MULHW: 
00613     case PPC::MULHWU: 
00614     case PPC::MULLD: 
00615     case PPC::MULLW: 
00616     case PPC::NAND: 
00617     case PPC::NOR: 
00618     case PPC::OR4: 
00619     case PPC::OR4To8: 
00620     case PPC::OR8: 
00621     case PPC::OR8To4: 
00622     case PPC::ORC: 
00623     case PPC::ORo: 
00624     case PPC::SLD: 
00625     case PPC::SLW: 
00626     case PPC::SRAD: 
00627     case PPC::SRAW: 
00628     case PPC::SRD: 
00629     case PPC::SRW: 
00630     case PPC::STDUX: 
00631     case PPC::STDX: 
00632     case PPC::STWUX: 
00633     case PPC::SUBF: 
00634     case PPC::SUBFC: 
00635     case PPC::SUBFE: 
00636     case PPC::VADDCUW: 
00637     case PPC::VADDFP: 
00638     case PPC::VADDSBS: 
00639     case PPC::VADDSHS: 
00640     case PPC::VADDSWS: 
00641     case PPC::VADDUBM: 
00642     case PPC::VADDUBS: 
00643     case PPC::VADDUHM: 
00644     case PPC::VADDUHS: 
00645     case PPC::VADDUWM: 
00646     case PPC::VADDUWS: 
00647     case PPC::VAND: 
00648     case PPC::VANDC: 
00649     case PPC::VAVGSB: 
00650     case PPC::VAVGSH: 
00651     case PPC::VAVGSW: 
00652     case PPC::VAVGUB: 
00653     case PPC::VAVGUH: 
00654     case PPC::VAVGUW: 
00655     case PPC::VCMPBFP: 
00656     case PPC::VCMPBFPo: 
00657     case PPC::VCMPEQFP: 
00658     case PPC::VCMPEQFPo: 
00659     case PPC::VCMPEQUB: 
00660     case PPC::VCMPEQUBo: 
00661     case PPC::VCMPEQUH: 
00662     case PPC::VCMPEQUHo: 
00663     case PPC::VCMPEQUW: 
00664     case PPC::VCMPEQUWo: 
00665     case PPC::VCMPGEFP: 
00666     case PPC::VCMPGEFPo: 
00667     case PPC::VCMPGTFP: 
00668     case PPC::VCMPGTFPo: 
00669     case PPC::VCMPGTSB: 
00670     case PPC::VCMPGTSBo: 
00671     case PPC::VCMPGTSH: 
00672     case PPC::VCMPGTSHo: 
00673     case PPC::VCMPGTSW: 
00674     case PPC::VCMPGTSWo: 
00675     case PPC::VCMPGTUB: 
00676     case PPC::VCMPGTUBo: 
00677     case PPC::VCMPGTUH: 
00678     case PPC::VCMPGTUHo: 
00679     case PPC::VCMPGTUW: 
00680     case PPC::VCMPGTUWo: 
00681     case PPC::VMAXFP: 
00682     case PPC::VMAXSB: 
00683     case PPC::VMAXSH: 
00684     case PPC::VMAXSW: 
00685     case PPC::VMAXUB: 
00686     case PPC::VMAXUH: 
00687     case PPC::VMAXUW: 
00688     case PPC::VMINFP: 
00689     case PPC::VMINSB: 
00690     case PPC::VMINSH: 
00691     case PPC::VMINSW: 
00692     case PPC::VMINUB: 
00693     case PPC::VMINUH: 
00694     case PPC::VMINUW: 
00695     case PPC::VMRGHB: 
00696     case PPC::VMRGHH: 
00697     case PPC::VMRGHW: 
00698     case PPC::VMRGLB: 
00699     case PPC::VMRGLH: 
00700     case PPC::VMRGLW: 
00701     case PPC::VMULESB: 
00702     case PPC::VMULESH: 
00703     case PPC::VMULEUB: 
00704     case PPC::VMULEUH: 
00705     case PPC::VMULOSB: 
00706     case PPC::VMULOSH: 
00707     case PPC::VMULOUB: 
00708     case PPC::VMULOUH: 
00709     case PPC::VNOR: 
00710     case PPC::VOR: 
00711     case PPC::VPKPX: 
00712     case PPC::VPKSHSS: 
00713     case PPC::VPKSHUS: 
00714     case PPC::VPKSWSS: 
00715     case PPC::VPKSWUS: 
00716     case PPC::VPKUHUM: 
00717     case PPC::VPKUHUS: 
00718     case PPC::VPKUWUM: 
00719     case PPC::VPKUWUS: 
00720     case PPC::VRLB: 
00721     case PPC::VRLH: 
00722     case PPC::VRLW: 
00723     case PPC::VSL: 
00724     case PPC::VSLB: 
00725     case PPC::VSLH: 
00726     case PPC::VSLO: 
00727     case PPC::VSLW: 
00728     case PPC::VSR: 
00729     case PPC::VSRAB: 
00730     case PPC::VSRAH: 
00731     case PPC::VSRAW: 
00732     case PPC::VSRB: 
00733     case PPC::VSRH: 
00734     case PPC::VSRO: 
00735     case PPC::VSRW: 
00736     case PPC::VSUBCUW: 
00737     case PPC::VSUBFP: 
00738     case PPC::VSUBSBS: 
00739     case PPC::VSUBSHS: 
00740     case PPC::VSUBSWS: 
00741     case PPC::VSUBUBM: 
00742     case PPC::VSUBUBS: 
00743     case PPC::VSUBUHM: 
00744     case PPC::VSUBUHS: 
00745     case PPC::VSUBUWM: 
00746     case PPC::VSUBUWS: 
00747     case PPC::VSUM2SWS: 
00748     case PPC::VSUM4SBS: 
00749     case PPC::VSUM4SHS: 
00750     case PPC::VSUM4UBS: 
00751     case PPC::VSUMSWS: 
00752     case PPC::VXOR: 
00753     case PPC::XOR: printOperand(MI, 2); break;
00754     case PPC::ADDI: 
00755     case PPC::ADDIC: 
00756     case PPC::ADDICo: 
00757     case PPC::CMPDI: 
00758     case PPC::CMPWI: 
00759     case PPC::MULLI: 
00760     case PPC::SUBFIC: printS16ImmOperand(MI, 2); break;
00761     case PPC::ADDIS: printSymbolHi(MI, 2); break;
00762     case PPC::ANDISo: 
00763     case PPC::ANDIo: 
00764     case PPC::CMPLDI: 
00765     case PPC::CMPLWI: 
00766     case PPC::ORI: 
00767     case PPC::ORIS: 
00768     case PPC::XORI: 
00769     case PPC::XORIS: printU16ImmOperand(MI, 2); break;
00770     case PPC::SRADI: printU6ImmOperand(MI, 2); break;
00771     case PPC::SRAWI: printU5ImmOperand(MI, 2); break;
00772     }
00773     O << "\n"; 
00774     break;
00775   case PPC::ADDME:
00776   case PPC::ADDZE:
00777   case PPC::BEQ:
00778   case PPC::BGE:
00779   case PPC::BGT:
00780   case PPC::BLE:
00781   case PPC::BLT:
00782   case PPC::BNE:
00783   case PPC::BNU:
00784   case PPC::BUN:
00785   case PPC::CNTLZW:
00786   case PPC::EXTSB:
00787   case PPC::EXTSH:
00788   case PPC::EXTSW:
00789   case PPC::EXTSW_32:
00790   case PPC::FABSD:
00791   case PPC::FABSS:
00792   case PPC::FCFID:
00793   case PPC::FCTIDZ:
00794   case PPC::FCTIWZ:
00795   case PPC::FMRD:
00796   case PPC::FMRS:
00797   case PPC::FMRSD:
00798   case PPC::FNABSD:
00799   case PPC::FNABSS:
00800   case PPC::FNEGD:
00801   case PPC::FNEGS:
00802   case PPC::FRSP:
00803   case PPC::FSQRT:
00804   case PPC::FSQRTS:
00805   case PPC::LBZ:
00806   case PPC::LBZX:
00807   case PPC::LDX:
00808   case PPC::LFD:
00809   case PPC::LFDX:
00810   case PPC::LFS:
00811   case PPC::LFSX:
00812   case PPC::LHA:
00813   case PPC::LHAX:
00814   case PPC::LHZ:
00815   case PPC::LHZX:
00816   case PPC::LI:
00817   case PPC::LIS:
00818   case PPC::LVEBX:
00819   case PPC::LVEHX:
00820   case PPC::LVEWX:
00821   case PPC::LVSL:
00822   case PPC::LVSR:
00823   case PPC::LVX:
00824   case PPC::LVXL:
00825   case PPC::LWAX:
00826   case PPC::LWZ:
00827   case PPC::LWZX:
00828   case PPC::MCRF:
00829   case PPC::MFOCRF:
00830   case PPC::NEG:
00831   case PPC::STB:
00832   case PPC::STBX:
00833   case PPC::STDX_32:
00834   case PPC::STD_32:
00835   case PPC::STFD:
00836   case PPC::STFDX:
00837   case PPC::STFIWX:
00838   case PPC::STFS:
00839   case PPC::STFSX:
00840   case PPC::STH:
00841   case PPC::STHX:
00842   case PPC::STVEBX:
00843   case PPC::STVEHX:
00844   case PPC::STVEWX:
00845   case PPC::STVX:
00846   case PPC::STVXL:
00847   case PPC::STW:
00848   case PPC::STWX:
00849   case PPC::SUBFME:
00850   case PPC::SUBFZE:
00851   case PPC::UPDATE_VRSAVE:
00852   case PPC::VEXPTEFP:
00853   case PPC::VLOGEFP:
00854   case PPC::VREFP:
00855   case PPC::VRFIM:
00856   case PPC::VRFIN:
00857   case PPC::VRFIP:
00858   case PPC::VRFIZ:
00859   case PPC::VRSQRTEFP:
00860   case PPC::VSPLTISB:
00861   case PPC::VSPLTISH:
00862   case PPC::VSPLTISW:
00863   case PPC::VUPKHPX:
00864   case PPC::VUPKHSB:
00865   case PPC::VUPKHSH:
00866   case PPC::VUPKLPX:
00867   case PPC::VUPKLSB:
00868   case PPC::VUPKLSH:
00869     printOperand(MI, 0); 
00870     O << ", "; 
00871     switch (MI->getOpcode()) {
00872     case PPC::ADDME: 
00873     case PPC::ADDZE: 
00874     case PPC::CNTLZW: 
00875     case PPC::EXTSB: 
00876     case PPC::EXTSH: 
00877     case PPC::EXTSW: 
00878     case PPC::EXTSW_32: 
00879     case PPC::FABSD: 
00880     case PPC::FABSS: 
00881     case PPC::FCFID: 
00882     case PPC::FCTIDZ: 
00883     case PPC::FCTIWZ: 
00884     case PPC::FMRD: 
00885     case PPC::FMRS: 
00886     case PPC::FMRSD: 
00887     case PPC::FNABSD: 
00888     case PPC::FNABSS: 
00889     case PPC::FNEGD: 
00890     case PPC::FNEGS: 
00891     case PPC::FRSP: 
00892     case PPC::FSQRT: 
00893     case PPC::FSQRTS: 
00894     case PPC::MCRF: 
00895     case PPC::NEG: 
00896     case PPC::SUBFME: 
00897     case PPC::SUBFZE: 
00898     case PPC::UPDATE_VRSAVE: 
00899     case PPC::VEXPTEFP: 
00900     case PPC::VLOGEFP: 
00901     case PPC::VREFP: 
00902     case PPC::VRFIM: 
00903     case PPC::VRFIN: 
00904     case PPC::VRFIP: 
00905     case PPC::VRFIZ: 
00906     case PPC::VRSQRTEFP: 
00907     case PPC::VUPKHPX: 
00908     case PPC::VUPKHSB: 
00909     case PPC::VUPKHSH: 
00910     case PPC::VUPKLPX: 
00911     case PPC::VUPKLSB: 
00912     case PPC::VUPKLSH: printOperand(MI, 1); break;
00913     case PPC::BEQ: 
00914     case PPC::BGE: 
00915     case PPC::BGT: 
00916     case PPC::BLE: 
00917     case PPC::BLT: 
00918     case PPC::BNE: 
00919     case PPC::BNU: 
00920     case PPC::BUN: printBranchOperand(MI, 1); break;
00921     case PPC::LBZ: 
00922     case PPC::LFD: 
00923     case PPC::LFS: 
00924     case PPC::LHA: 
00925     case PPC::LHZ: 
00926     case PPC::LWZ: 
00927     case PPC::STB: 
00928     case PPC::STFD: 
00929     case PPC::STFS: 
00930     case PPC::STH: 
00931     case PPC::STW: printMemRegImm(MI, 1); break;
00932     case PPC::LBZX: 
00933     case PPC::LDX: 
00934     case PPC::LFDX: 
00935     case PPC::LFSX: 
00936     case PPC::LHAX: 
00937     case PPC::LHZX: 
00938     case PPC::LVEBX: 
00939     case PPC::LVEHX: 
00940     case PPC::LVEWX: 
00941     case PPC::LVSL: 
00942     case PPC::LVSR: 
00943     case PPC::LVX: 
00944     case PPC::LVXL: 
00945     case PPC::LWAX: 
00946     case PPC::LWZX: 
00947     case PPC::STBX: 
00948     case PPC::STDX_32: 
00949     case PPC::STFDX: 
00950     case PPC::STFIWX: 
00951     case PPC::STFSX: 
00952     case PPC::STHX: 
00953     case PPC::STVEBX: 
00954     case PPC::STVEHX: 
00955     case PPC::STVEWX: 
00956     case PPC::STVX: 
00957     case PPC::STVXL: 
00958     case PPC::STWX: printMemRegReg(MI, 1); break;
00959     case PPC::LI: printSymbolLo(MI, 1); break;
00960     case PPC::LIS: printSymbolHi(MI, 1); break;
00961     case PPC::MFOCRF: printcrbitm(MI, 1); break;
00962     case PPC::STD_32: printMemRegImmShifted(MI, 1); break;
00963     case PPC::VSPLTISB: 
00964     case PPC::VSPLTISH: 
00965     case PPC::VSPLTISW: printS5ImmOperand(MI, 1); break;
00966     }
00967     O << "\n"; 
00968     break;
00969   case PPC::ADJCALLSTACKDOWN:
00970   case PPC::ADJCALLSTACKUP:
00971   case PPC::BCTR:
00972   case PPC::BCTRL:
00973   case PPC::BLR:
00974   case PPC::COND_BRANCH:
00975   case PPC::NOP:
00976   case PPC::PHI:
00977   case PPC::SELECT_CC_F4:
00978   case PPC::SELECT_CC_F8:
00979   case PPC::SELECT_CC_Int:
00980   case PPC::SELECT_CC_VRRC:
00981     break;
00982   case PPC::B:
00983   case PPC::BL:
00984   case PPC::BLA:
00985   case PPC::MFCR:
00986   case PPC::MFCTR:
00987   case PPC::MFLR:
00988   case PPC::MFVSCR:
00989   case PPC::MTCTR:
00990   case PPC::MTLR:
00991   case PPC::MTVRSAVE:
00992   case PPC::MTVSCR:
00993   case PPC::MovePCtoLR:
00994     switch (MI->getOpcode()) {
00995     case PPC::B: printBranchOperand(MI, 0); break;
00996     case PPC::BL: printCallOperand(MI, 0); break;
00997     case PPC::BLA: printAbsAddrOperand(MI, 0); break;
00998     case PPC::MFCR: 
00999     case PPC::MFCTR: 
01000     case PPC::MFLR: 
01001     case PPC::MFVSCR: 
01002     case PPC::MTCTR: 
01003     case PPC::MTLR: 
01004     case PPC::MTVRSAVE: 
01005     case PPC::MTVSCR: printOperand(MI, 0); break;
01006     case PPC::MovePCtoLR: printPICLabel(MI, 0); break;
01007     }
01008     O << "\n"; 
01009     break;
01010   case PPC::CMP:
01011   case PPC::CMPI:
01012   case PPC::CMPL:
01013   case PPC::CMPLI:
01014   case PPC::FMADD:
01015   case PPC::FMADDS:
01016   case PPC::FMSUB:
01017   case PPC::FMSUBS:
01018   case PPC::FNMADD:
01019   case PPC::FNMADDS:
01020   case PPC::FNMSUB:
01021   case PPC::FNMSUBS:
01022   case PPC::FSELD:
01023   case PPC::FSELS:
01024   case PPC::VMADDFP:
01025   case PPC::VMHADDSHS:
01026   case PPC::VMHRADDSHS:
01027   case PPC::VMLADDUHM:
01028   case PPC::VMSUMMBM:
01029   case PPC::VMSUMSHM:
01030   case PPC::VMSUMSHS:
01031   case PPC::VMSUMUBM:
01032   case PPC::VMSUMUHM:
01033   case PPC::VMSUMUHS:
01034   case PPC::VNMSUBFP:
01035   case PPC::VPERM:
01036   case PPC::VSEL:
01037   case PPC::VSLDOI:
01038     printOperand(MI, 0); 
01039     O << ", "; 
01040     printOperand(MI, 1); 
01041     O << ", "; 
01042     printOperand(MI, 2); 
01043     O << ", "; 
01044     switch (MI->getOpcode()) {
01045     case PPC::CMP: 
01046     case PPC::CMPL: 
01047     case PPC::FMADD: 
01048     case PPC::FMADDS: 
01049     case PPC::FMSUB: 
01050     case PPC::FMSUBS: 
01051     case PPC::FNMADD: 
01052     case PPC::FNMADDS: 
01053     case PPC::FNMSUB: 
01054     case PPC::FNMSUBS: 
01055     case PPC::FSELD: 
01056     case PPC::FSELS: 
01057     case PPC::VMADDFP: 
01058     case PPC::VMHADDSHS: 
01059     case PPC::VMHRADDSHS: 
01060     case PPC::VMLADDUHM: 
01061     case PPC::VMSUMMBM: 
01062     case PPC::VMSUMSHM: 
01063     case PPC::VMSUMSHS: 
01064     case PPC::VMSUMUBM: 
01065     case PPC::VMSUMUHM: 
01066     case PPC::VMSUMUHS: 
01067     case PPC::VNMSUBFP: 
01068     case PPC::VPERM: 
01069     case PPC::VSEL: printOperand(MI, 3); break;
01070     case PPC::CMPI: printS16ImmOperand(MI, 3); break;
01071     case PPC::CMPLI: printU16ImmOperand(MI, 3); break;
01072     case PPC::VSLDOI: printU5ImmOperand(MI, 3); break;
01073     }
01074     O << "\n"; 
01075     break;
01076   case PPC::DSS:
01077     printU5ImmOperand(MI, 1); 
01078     O << ", "; 
01079     printU5ImmOperand(MI, 0); 
01080     O << "\n"; 
01081     break;
01082   case PPC::DST:
01083   case PPC::DSTST:
01084     printOperand(MI, 2); 
01085     O << ", "; 
01086     printOperand(MI, 3); 
01087     O << ", "; 
01088     printU5ImmOperand(MI, 1); 
01089     O << ", "; 
01090     printU5ImmOperand(MI, 0); 
01091     O << "\n"; 
01092     break;
01093   case PPC::DWARF_LABEL:
01094   case PPC::IMPLICIT_DEF_F4:
01095   case PPC::IMPLICIT_DEF_F8:
01096   case PPC::IMPLICIT_DEF_GPR:
01097   case PPC::IMPLICIT_DEF_VRRC:
01098   case PPC::MFVRSAVE:
01099     printOperand(MI, 0); 
01100     switch (MI->getOpcode()) {
01101     case PPC::DWARF_LABEL: O << ":\n"; break;
01102     case PPC::IMPLICIT_DEF_F4: O << " = IMPLICIT_DEF_F4\n"; break;
01103     case PPC::IMPLICIT_DEF_F8: O << " = IMPLICIT_DEF_F8\n"; break;
01104     case PPC::IMPLICIT_DEF_GPR: O << " = IMPLICIT_DEF_GPRC\n"; break;
01105     case PPC::IMPLICIT_DEF_VRRC: O << " = IMPLICIT_DEF_VRRC\n"; break;
01106     case PPC::MFVRSAVE: O << ", 256\n"; break;
01107     }
01108     break;
01109   case PPC::DWARF_LOC:
01110     printOperand(MI, 2); 
01111     O << ", "; 
01112     printOperand(MI, 0); 
01113     O << ", "; 
01114     printOperand(MI, 1); 
01115     O << "\n"; 
01116     break;
01117   case PPC::LA:
01118     printOperand(MI, 0); 
01119     O << ", "; 
01120     printSymbolLo(MI, 2); 
01121     O << "("; 
01122     printOperand(MI, 1); 
01123     O << ")\n"; 
01124     break;
01125   case PPC::LD:
01126   case PPC::LWA:
01127   case PPC::LWZU:
01128   case PPC::STD:
01129   case PPC::STWU:
01130     printOperand(MI, 0); 
01131     O << ", "; 
01132     switch (MI->getOpcode()) {
01133     case PPC::LD: 
01134     case PPC::LWA: 
01135     case PPC::STD: printS16X4ImmOperand(MI, 1); break;
01136     case PPC::LWZU: 
01137     case PPC::STWU: printS16ImmOperand(MI, 1); break;
01138     }
01139     O << "("; 
01140     printOperand(MI, 2); 
01141     O << ")\n"; 
01142     break;
01143   case PPC::MTCRF:
01144     printcrbitm(MI, 0); 
01145     O << ", "; 
01146     printOperand(MI, 1); 
01147     O << "\n"; 
01148     break;
01149   case PPC::RLDICL:
01150   case PPC::RLDICR:
01151   case PPC::RLDIMI:
01152     printOperand(MI, 0); 
01153     O << ", "; 
01154     printOperand(MI, 1); 
01155     O << ", "; 
01156     printU6ImmOperand(MI, 2); 
01157     O << ", "; 
01158     printU6ImmOperand(MI, 3); 
01159     O << "\n"; 
01160     break;
01161   case PPC::RLWIMI:
01162   case PPC::RLWINM:
01163   case PPC::RLWINMo:
01164   case PPC::RLWNM:
01165     printOperand(MI, 0); 
01166     O << ", "; 
01167     printOperand(MI, 1); 
01168     O << ", "; 
01169     switch (MI->getOpcode()) {
01170     case PPC::RLWIMI: 
01171     case PPC::RLWINM: 
01172     case PPC::RLWINMo: printU5ImmOperand(MI, 2); break;
01173     case PPC::RLWNM: printOperand(MI, 2); break;
01174     }
01175     O << ", "; 
01176     printU5ImmOperand(MI, 3); 
01177     O << ", "; 
01178     printU5ImmOperand(MI, 4); 
01179     O << "\n"; 
01180     break;
01181   case PPC::VCFSX:
01182   case PPC::VCFUX:
01183   case PPC::VCTSXS:
01184   case PPC::VCTUXS:
01185   case PPC::VSPLTB:
01186   case PPC::VSPLTH:
01187   case PPC::VSPLTW:
01188     printOperand(MI, 0); 
01189     O << ", "; 
01190     printOperand(MI, 2); 
01191     O << ", "; 
01192     printU5ImmOperand(MI, 1); 
01193     O << "\n"; 
01194     break;
01195   case PPC::V_SET0:
01196     printOperand(MI, 0); 
01197     O << ", "; 
01198     printOperand(MI, 0); 
01199     O << ", "; 
01200     printOperand(MI, 0); 
01201     O << "\n"; 
01202     break;
01203   }
01204   return true;
01205 }