Lines Matching defs:MIB

353 bool M68kInstrInfo::ExpandMOVI(MachineInstrBuilder &MIB, MVT MVTSize) const {
354 Register Reg = MIB->getOperand(0).getReg();
355 int64_t Imm = MIB->getOperand(1).getImm();
372 LLVM_DEBUG(dbgs() << "Expand " << *MIB.getInstr() << " to ");
378 MIB->setDesc(get(M68k::MOVQ));
379 MIB->getOperand(0).setReg(SReg);
386 MachineBasicBlock &MBB = *MIB->getParent();
387 DebugLoc DL = MIB->getDebugLoc();
392 BuildMI(MBB, MIB.getInstr(), DL, get(M68k::MOVQ), SReg).addImm(~Imm & 0xFF);
393 BuildMI(MBB, MIB.getInstr(), DL, get(M68k::NOT8d), SubReg).addReg(SubReg);
395 MIB->removeFromParent();
401 MachineBasicBlock &MBB = *MIB->getParent();
402 DebugLoc DL = MIB->getDebugLoc();
404 BuildMI(MBB, MIB.getInstr(), DL, get(M68k::SUB32ar), SReg)
408 MIB->removeFromParent();
421 MIB->setDesc(get(M68k::MOV16ai));
422 MIB->getOperand(0).setReg(SubReg);
427 MIB->setDesc(get(MVTSize == MVT::i16 ? M68k::MOV16ri : M68k::MOV32ri));
433 bool M68kInstrInfo::ExpandMOVX_RR(MachineInstrBuilder &MIB, MVT MVTDst,
436 Register Dst = MIB->getOperand(0).getReg();
437 Register Src = MIB->getOperand(1).getReg();
454 DebugLoc DL = MIB->getDebugLoc();
459 LLVM_DEBUG(dbgs() << "Remove " << *MIB.getInstr() << '\n');
460 MIB->eraseFromParent();
462 LLVM_DEBUG(dbgs() << "Expand " << *MIB.getInstr() << " to MOV\n");
463 MIB->setDesc(get(Move));
464 MIB->getOperand(1).setReg(SSrc);
472 bool M68kInstrInfo::ExpandMOVSZX_RR(MachineInstrBuilder &MIB, bool IsSigned,
474 LLVM_DEBUG(dbgs() << "Expand " << *MIB.getInstr() << " to ");
483 Register Dst = MIB->getOperand(0).getReg();
484 Register Src = MIB->getOperand(1).getReg();
501 MachineBasicBlock &MBB = *MIB->getParent();
502 DebugLoc DL = MIB->getDebugLoc();
506 BuildMI(MBB, MIB.getInstr(), DL, get(Move), Dst).addReg(SSrc);
511 AddSExt(MBB, MIB.getInstr(), DL, Dst, MVTSrc, MVTDst);
514 AddZExt(MBB, MIB.getInstr(), DL, Dst, MVTSrc, MVTDst);
517 MIB->eraseFromParent();
522 bool M68kInstrInfo::ExpandMOVSZX_RM(MachineInstrBuilder &MIB, bool IsSigned,
525 LLVM_DEBUG(dbgs() << "Expand " << *MIB.getInstr() << " to LOAD and ");
527 Register Dst = MIB->getOperand(0).getReg();
540 MIB->setDesc(Desc);
541 MIB->getOperand(0).setReg(SubDst);
543 MachineBasicBlock::iterator I = MIB.getInstr();
545 MachineBasicBlock &MBB = *MIB->getParent();
546 DebugLoc DL = MIB->getDebugLoc();
559 bool M68kInstrInfo::ExpandPUSH_POP(MachineInstrBuilder &MIB,
561 MachineBasicBlock::iterator I = MIB.getInstr();
563 MachineBasicBlock &MBB = *MIB->getParent();
564 MachineOperand MO = MIB->getOperand(0);
565 DebugLoc DL = MIB->getDebugLoc();
571 MIB->eraseFromParent();
575 bool M68kInstrInfo::ExpandCCR(MachineInstrBuilder &MIB, bool IsToCCR) const {
576 if (MIB->getOpcode() == M68k::MOV8cd) {
578 MachineOperand &Opd = MIB->getOperand(1);
585 MIB->setDesc(get(M68k::MOV16cd));
588 MIB->setDesc(get(M68k::MOV16dc));
593 bool M68kInstrInfo::ExpandMOVEM(MachineInstrBuilder &MIB,
597 auto DL = MIB->getDebugLoc();
598 auto MI = MIB.getInstr();
599 auto &MBB = *MIB->getParent();
602 Reg = MIB->getOperand(0).getReg();
603 Offset = MIB->getOperand(1).getImm();
604 Base = MIB->getOperand(2).getReg();
606 Offset = MIB->getOperand(0).getImm();
607 Base = MIB->getOperand(1).getReg();
608 Reg = MIB->getOperand(2).getReg();
625 .copyImplicitOps(*MIB);
632 .copyImplicitOps(*MIB);
635 MIB->eraseFromParent();
647 static bool Expand2AddrUndef(MachineInstrBuilder &MIB,
650 Register Reg = MIB->getOperand(0).getReg();
651 MIB->setDesc(Desc);
655 MIB.addReg(Reg, RegState::Undef).addReg(Reg, RegState::Undef);
657 assert(MIB->getOperand(1).getReg() == Reg &&
658 MIB->getOperand(2).getReg() == Reg && "Misplaced operand");
663 MachineInstrBuilder MIB(*MI.getParent()->getParent(), MI);
666 return ExpandPUSH_POP(MIB, get(M68k::MOV8ed), true);
668 return ExpandPUSH_POP(MIB, get(M68k::MOV16er), true);
670 return ExpandPUSH_POP(MIB, get(M68k::MOV32er), true);
673 return ExpandPUSH_POP(MIB, get(M68k::MOV8do), false);
675 return ExpandPUSH_POP(MIB, get(M68k::MOV16ro), false);
677 return ExpandPUSH_POP(MIB, get(M68k::MOV32ro), false);
680 return Expand2AddrUndef(MIB, get(M68k::SUBX8dd));
682 return Expand2AddrUndef(MIB, get(M68k::SUBX16dd));
684 return Expand2AddrUndef(MIB, get(M68k::SUBX32dd));
741 MachineInstrBuilder MIB(*MBB.getParent(), MI);