LLVM API Documentation
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 }