Lines Matching refs:PPC
15 #include "PPC.h"
44 : PPCGenInstrInfo(PPC::ADJCALLSTACKDOWN, PPC::ADJCALLSTACKUP),
63 case PPC::LD:
64 case PPC::LWZ:
65 case PPC::LFS:
66 case PPC::LFD:
81 case PPC::STD:
82 case PPC::STW:
83 case PPC::STFS:
84 case PPC::STFD:
102 if (MI->getOpcode() != PPC::RLWIMI)
165 BuildMI(MBB, MI, DL, get(PPC::NOP));
192 if (LastInst->getOpcode() == PPC::B) {
197 } else if (LastInst->getOpcode() == PPC::BCC) {
218 // If the block ends with PPC::B and PPC:BCC, handle it.
219 if (SecondLastInst->getOpcode() == PPC::BCC &&
220 LastInst->getOpcode() == PPC::B) {
231 // If the block ends with two PPC:Bs, handle it. The second one is not
233 if (SecondLastInst->getOpcode() == PPC::B &&
234 LastInst->getOpcode() == PPC::B) {
257 if (I->getOpcode() != PPC::B && I->getOpcode() != PPC::BCC)
267 if (I->getOpcode() != PPC::BCC)
283 "PPC branch conditions have two components!");
288 BuildMI(&MBB, DL, get(PPC::B)).addMBB(TBB);
290 BuildMI(&MBB, DL, get(PPC::BCC))
296 BuildMI(&MBB, DL, get(PPC::BCC))
298 BuildMI(&MBB, DL, get(PPC::B)).addMBB(FBB);
307 if (PPC::GPRCRegClass.contains(DestReg, SrcReg))
308 Opc = PPC::OR;
309 else if (PPC::G8RCRegClass.contains(DestReg, SrcReg))
310 Opc = PPC::OR8;
311 else if (PPC::F4RCRegClass.contains(DestReg, SrcReg))
312 Opc = PPC::FMR;
313 else if (PPC::CRRCRegClass.contains(DestReg, SrcReg))
314 Opc = PPC::MCRF;
315 else if (PPC::VRRCRegClass.contains(DestReg, SrcReg))
316 Opc = PPC::VOR;
317 else if (PPC::CRBITRCRegClass.contains(DestReg, SrcReg))
318 Opc = PPC::CROR;
337 if (RC == PPC::GPRCRegisterClass) {
338 if (SrcReg != PPC::LR) {
339 NewMIs.push_back(addFrameReference(BuildMI(MF, DL, get(PPC::STW))
347 NewMIs.push_back(BuildMI(MF, DL, get(PPC::MFLR), PPC::R11));
348 NewMIs.push_back(addFrameReference(BuildMI(MF, DL, get(PPC::STW))
349 .addReg(PPC::R11,
353 } else if (RC == PPC::G8RCRegisterClass) {
354 if (SrcReg != PPC::LR8) {
355 NewMIs.push_back(addFrameReference(BuildMI(MF, DL, get(PPC::STD))
363 NewMIs.push_back(BuildMI(MF, DL, get(PPC::MFLR8), PPC::X11));
364 NewMIs.push_back(addFrameReference(BuildMI(MF, DL, get(PPC::STD))
365 .addReg(PPC::X11,
369 } else if (RC == PPC::F8RCRegisterClass) {
370 NewMIs.push_back(addFrameReference(BuildMI(MF, DL, get(PPC::STFD))
374 } else if (RC == PPC::F4RCRegisterClass) {
375 NewMIs.push_back(addFrameReference(BuildMI(MF, DL, get(PPC::STFS))
379 } else if (RC == PPC::CRRCRegisterClass) {
383 NewMIs.push_back(addFrameReference(BuildMI(MF, DL, get(PPC::SPILL_CR))
398 PPC::R2 : PPC::R0;
399 NewMIs.push_back(BuildMI(MF, DL, get(PPC::MFCRpseud), ScratchReg)
404 if (SrcReg != PPC::CR0) {
407 NewMIs.push_back(BuildMI(MF, DL, get(PPC::RLWINM), ScratchReg)
412 NewMIs.push_back(addFrameReference(BuildMI(MF, DL, get(PPC::STW))
417 } else if (RC == PPC::CRBITRCRegisterClass) {
423 if (SrcReg == PPC::CR0LT || SrcReg == PPC::CR0GT ||
424 SrcReg == PPC::CR0EQ || SrcReg == PPC::CR0UN)
425 Reg = PPC::CR0;
426 else if (SrcReg == PPC::CR1LT || SrcReg == PPC::CR1GT ||
427 SrcReg == PPC::CR1EQ || SrcReg == PPC::CR1UN)
428 Reg = PPC::CR1;
429 else if (SrcReg == PPC::CR2LT || SrcReg == PPC::CR2GT ||
430 SrcReg == PPC::CR2EQ || SrcReg == PPC::CR2UN)
431 Reg = PPC::CR2;
432 else if (SrcReg == PPC::CR3LT || SrcReg == PPC::CR3GT ||
433 SrcReg == PPC::CR3EQ || SrcReg == PPC::CR3UN)
434 Reg = PPC::CR3;
435 else if (SrcReg == PPC::CR4LT || SrcReg == PPC::CR4GT ||
436 SrcReg == PPC::CR4EQ || SrcReg == PPC::CR4UN)
437 Reg = PPC::CR4;
438 else if (SrcReg == PPC::CR5LT || SrcReg == PPC::CR5GT ||
439 SrcReg == PPC::CR5EQ || SrcReg == PPC::CR5UN)
440 Reg = PPC::CR5;
441 PPC::CR6LT || SrcReg == PPC::CR6GT ||
442 SrcReg == PPC::CR6EQ || SrcReg == PPC::CR6UN)
443 Reg = PPC::CR6;
444 else if (SrcReg == PPC::CR7LT || SrcReg == PPC::CR7GT ||
445 SrcReg == PPC::CR7EQ || SrcReg == PPC::CR7UN)
446 Reg = PPC::CR7;
449 PPC::CRRCRegisterClass, NewMIs);
451 } else if (RC == PPC::VRRCRegisterClass) {
457 NewMIs.push_back(addFrameReference(BuildMI(MF, DL, get(PPC::ADDI), PPC::R0),
459 NewMIs.push_back(BuildMI(MF, DL, get(PPC::STVX))
461 .addReg(PPC::R0)
462 .addReg(PPC::R0));
502 if (RC == PPC::GPRCRegisterClass) {
503 if (DestReg != PPC::LR) {
504 NewMIs.push_back(addFrameReference(BuildMI(MF, DL, get(PPC::LWZ),
507 NewMIs.push_back(addFrameReference(BuildMI(MF, DL, get(PPC::LWZ),
508 PPC::R11), FrameIdx));
509 NewMIs.push_back(BuildMI(MF, DL, get(PPC::MTLR)).addReg(PPC::R11));
511 } else if (RC == PPC::G8RCRegisterClass) {
512 if (DestReg != PPC::LR8) {
513 NewMIs.push_back(addFrameReference(BuildMI(MF, DL, get(PPC::LD), DestReg),
516 NewMIs.push_back(addFrameReference(BuildMI(MF, DL, get(PPC::LD),
517 PPC::R11), FrameIdx));
518 NewMIs.push_back(BuildMI(MF, DL, get(PPC::MTLR8)).addReg(PPC::R11));
520 } else if (RC == PPC::F8RCRegisterClass) {
521 NewMIs.push_back(addFrameReference(BuildMI(MF, DL, get(PPC::LFD), DestReg),
523 } else if (RC == PPC::F4RCRegisterClass) {
524 NewMIs.push_back(addFrameReference(BuildMI(MF, DL, get(PPC::LFS), DestReg),
526 } else if (RC == PPC::CRRCRegisterClass) {
533 PPC::R2 : PPC::R0;
534 NewMIs.push_back(addFrameReference(BuildMI(MF, DL, get(PPC::LWZ),
539 if (DestReg != PPC::CR0) {
542 NewMIs.push_back(BuildMI(MF, DL, get(PPC::RLWINM), ScratchReg)
547 NewMIs.push_back(BuildMI(MF, DL, get(PPC::MTCRF), DestReg)
549 } else if (RC == PPC::CRBITRCRegisterClass) {
552 if (DestReg == PPC::CR0LT || DestReg == PPC::CR0GT ||
553 DestReg == PPC::CR0EQ || DestReg == PPC::CR0UN)
554 Reg = PPC::CR0;
555 else if (DestReg == PPC::CR1LT || DestReg == PPC::CR1GT ||
556 DestReg == PPC::CR1EQ || DestReg == PPC::CR1UN)
557 Reg = PPC::CR1;
558 else if (DestReg == PPC::CR2LT || DestReg == PPC::CR2GT ||
559 DestReg == PPC::CR2EQ || DestReg == PPC::CR2UN)
560 Reg = PPC::CR2;
561 else if (DestReg == PPC::CR3LT || DestReg == PPC::CR3GT ||
562 DestReg == PPC::CR3EQ || DestReg == PPC::CR3UN)
563 Reg = PPC::CR3;
564 else if (DestReg == PPC::CR4LT || DestReg == PPC::CR4GT ||
565 DestReg == PPC::CR4EQ || DestReg == PPC::CR4UN)
566 Reg = PPC::CR4;
567 else if (DestReg == PPC::CR5LT || DestReg == PPC::CR5GT ||
568 DestReg == PPC::CR5EQ || DestReg == PPC::CR5UN)
569 Reg = PPC::CR5;
570 else if (DestReg == PPC::CR6LT || DestReg == PPC::CR6GT ||
571 DestReg == PPC::CR6EQ || DestReg == PPC::CR6UN)
572 Reg = PPC::CR6;
573 else if (DestReg == PPC::CR7LT || DestReg == PPC::CR7GT ||
574 DestReg == PPC::CR7EQ || DestReg == PPC::CR7UN)
575 Reg = PPC::CR7;
578 PPC::CRRCRegisterClass, NewMIs);
580 } else if (RC == PPC::VRRCRegisterClass) {
586 NewMIs.push_back(addFrameReference(BuildMI(MF, DL, get(PPC::ADDI), PPC::R0),
588 NewMIs.push_back(BuildMI(MF, DL, get(PPC::LVX),DestReg).addReg(PPC::R0)
589 .addReg(PPC::R0));
624 MachineInstrBuilder MIB = BuildMI(MF, DL, get(PPC::DBG_VALUE));
631 assert(Cond.size() == 2 && "Invalid PPC branch opcode!");
633 Cond[0].setImm(PPC::InvertPredicate((PPC::Predicate)Cond[0].getImm()));
642 case PPC::INLINEASM: { // Inline Asm: Variable size.
647 case PPC::PROLOG_LABEL:
648 case PPC::EH_LABEL:
649 case PPC::GC_LABEL:
650 case PPC::DBG_VALUE: