Lines Matching refs:MBB
79 void MipsSEInstrInfo::copyPhysReg(MachineBasicBlock &MBB,
107 BuildMI(MBB, I, DL, get(Mips::RDDSP), DestReg).addImm(1 << 4)
128 BuildMI(MBB, I, DL, get(Mips::WRDSP))
167 MachineInstrBuilder MIB = BuildMI(MBB, I, DL, get(Opc));
180 storeRegToStack(MachineBasicBlock &MBB, MachineBasicBlock::iterator I,
185 MachineMemOperand *MMO = GetMemOperand(MBB, FI, MachineMemOperand::MOStore);
226 const Function *Func = MBB.getParent()->getFunction();
229 BuildMI(MBB, I, DL, get(Mips::MFHI), Mips::K0);
232 BuildMI(MBB, I, DL, get(Mips::MFHI64), Mips::K0_64);
235 BuildMI(MBB, I, DL, get(Mips::MFLO), Mips::K0);
238 BuildMI(MBB, I, DL, get(Mips::MFLO64), Mips::K0_64);
244 BuildMI(MBB, I, DL, get(Opc)).addReg(SrcReg, getKillRegState(isKill))
249 loadRegFromStack(MachineBasicBlock &MBB, MachineBasicBlock::iterator I,
253 if (I != MBB.end()) DL = I->getDebugLoc();
254 MachineMemOperand *MMO = GetMemOperand(MBB, FI, MachineMemOperand::MOLoad);
257 const Function *Func = MBB.getParent()->getFunction();
300 BuildMI(MBB, I, DL, get(Opc), DestReg)
320 BuildMI(MBB, I, DL, get(Opc), Reg)
324 BuildMI(MBB, I, DL, get(LdOp)).addReg(Reg);
329 MachineBasicBlock &MBB = *MI->getParent();
337 expandRetRA(MBB, MI);
340 expandERet(MBB, MI);
344 expandPseudoMFHiLo(MBB, MI, Opc);
348 expandPseudoMFHiLo(MBB, MI, Opc);
351 expandPseudoMFHiLo(MBB, MI, Mips::MFHI64);
354 expandPseudoMFHiLo(MBB, MI, Mips::MFLO64);
357 expandPseudoMTLoHi(MBB, MI, Mips::MTLO, Mips::MTHI, false);
360 expandPseudoMTLoHi(MBB, MI, Mips::MTLO64, Mips::MTHI64, false);
363 expandPseudoMTLoHi(MBB, MI, Mips::MTLO_DSP, Mips::MTHI_DSP, true);
366 expandCvtFPInt(MBB, MI, Mips::CVT_S_W, Mips::MTC1, false);
369 expandCvtFPInt(MBB, MI, Mips::CVT_D32_W, Mips::MTC1, false);
372 expandCvtFPInt(MBB, MI, Mips::CVT_S_L, Mips::DMTC1, true);
375 expandCvtFPInt(MBB, MI, Mips::CVT_D64_W, Mips::MTC1, true);
378 expandCvtFPInt(MBB, MI, Mips::CVT_D64_L, Mips::DMTC1, true);
381 expandBuildPairF64(MBB, MI, false);
384 expandBuildPairF64(MBB, MI, true);
387 expandExtractElementF64(MBB, MI, false);
390 expandExtractElementF64(MBB, MI, true);
394 expandEhReturn(MBB, MI);
398 MBB.erase(MI);
428 MachineBasicBlock &MBB,
439 BuildMI(MBB, I, DL, get(ADDiu), SP).addReg(SP).addImm(Amount);
441 unsigned Reg = loadImmediate(Amount, MBB, I, DL, nullptr);
442 BuildMI(MBB, I, DL, get(ADDu), SP).addReg(SP).addReg(Reg, RegState::Kill);
449 MipsSEInstrInfo::loadImmediate(int64_t Imm, MachineBasicBlock &MBB,
454 MachineRegisterInfo &RegInfo = MBB.getParent()->getRegInfo();
474 BuildMI(MBB, II, DL, get(LUi), Reg).addImm(SignExtend64<16>(Inst->ImmOpnd));
476 BuildMI(MBB, II, DL, get(Inst->Opc), Reg).addReg(ZEROReg)
481 BuildMI(MBB, II, DL, get(Inst->Opc), Reg).addReg(Reg, RegState::Kill)
500 void MipsSEInstrInfo::expandRetRA(MachineBasicBlock &MBB,
503 BuildMI(MBB, I, I->getDebugLoc(), get(Mips::PseudoReturn64))
506 BuildMI(MBB, I, I->getDebugLoc(), get(Mips::PseudoReturn)).addReg(Mips::RA);
509 void MipsSEInstrInfo::expandERet(MachineBasicBlock &MBB,
511 BuildMI(MBB, I, I->getDebugLoc(), get(Mips::ERET));
526 void MipsSEInstrInfo::expandPseudoMFHiLo(MachineBasicBlock &MBB,
529 BuildMI(MBB, I, I->getDebugLoc(), get(NewOpc), I->getOperand(0).getReg());
532 void MipsSEInstrInfo::expandPseudoMTLoHi(MachineBasicBlock &MBB,
545 MachineInstrBuilder LoInst = BuildMI(MBB, I, DL, get(LoOpc));
546 MachineInstrBuilder HiInst = BuildMI(MBB, I, DL, get(HiOpc));
562 void MipsSEInstrInfo::expandCvtFPInt(MachineBasicBlock &MBB,
574 compareOpndSize(CvtOpc, *MBB.getParent());
582 BuildMI(MBB, I, DL, MovDesc, TmpReg).addReg(SrcReg, KillSrc);
583 BuildMI(MBB, I, DL, CvtDesc, DstReg).addReg(TmpReg, RegState::Kill);
586 void MipsSEInstrInfo::expandExtractElementF64(MachineBasicBlock &MBB,
619 BuildMI(MBB, I, dl, get(FP64 ? Mips::MFHC1_D64 : Mips::MFHC1_D32), DstReg)
622 BuildMI(MBB, I, dl, get(Mips::MFC1), DstReg).addReg(SubReg);
625 void MipsSEInstrInfo::expandBuildPairF64(MachineBasicBlock &MBB,
657 BuildMI(MBB, I, dl, Mtc1Tdd, TRI.getSubReg(DstReg, Mips::sub_lo))
672 BuildMI(MBB, I, dl, get(FP64 ? Mips::MTHC1_D64 : Mips::MTHC1_D32), DstReg)
678 BuildMI(MBB, I, dl, Mtc1Tdd, TRI.getSubReg(DstReg, Mips::sub_hi))
682 void MipsSEInstrInfo::expandEhReturn(MachineBasicBlock &MBB,
699 const TargetMachine &TM = MBB.getParent()->getTarget();
701 BuildMI(MBB, I, I->getDebugLoc(), get(ADDU), T9)
704 BuildMI(MBB, I, I->getDebugLoc(), get(ADDU), RA)
707 BuildMI(MBB, I, I->getDebugLoc(), get(ADDU), SP).addReg(SP).addReg(OffsetReg);
708 expandRetRA(MBB, I);