Lines Matching defs:OldMI

109   bool changeStore(MachineInstr *OldMI, MachineOperand ImmOp,
111 bool changeLoad(MachineInstr *OldMI, MachineOperand ImmOp, unsigned ImmOpNum);
561 bool HexagonOptAddrMode::changeLoad(MachineInstr *OldMI, MachineOperand ImmOp,
564 MachineBasicBlock *BB = OldMI->getParent();
565 auto UsePos = MachineBasicBlock::iterator(OldMI);
569 unsigned OpEnd = OldMI->getNumOperands();
573 if (HII->getAddrMode(*OldMI) == HexagonII::BaseRegOffset) {
574 short NewOpCode = HII->changeAddrMode_rr_ur(*OldMI);
576 MIB = BuildMI(*BB, InsertPt, OldMI->getDebugLoc(), HII->get(NewOpCode));
577 MIB.add(OldMI->getOperand(0));
578 MIB.add(OldMI->getOperand(2));
579 MIB.add(OldMI->getOperand(3));
583 } else if (HII->getAddrMode(*OldMI) == HexagonII::BaseImmOffset &&
584 OldMI->getOperand(2).isImm()) {
585 short NewOpCode = HII->changeAddrMode_io_abs(*OldMI);
587 MIB = BuildMI(*BB, InsertPt, OldMI->getDebugLoc(), HII->get(NewOpCode))
588 .add(OldMI->getOperand(0));
590 int64_t Offset = ImmOp.getOffset() + OldMI->getOperand(2).getImm();
598 LLVM_DEBUG(dbgs() << "[Changing]: " << *OldMI << "\n");
601 if (OldMI->getOperand(3).isImm() && OldMI->getOperand(3).getImm() == 0) {
602 short NewOpCode = HII->changeAddrMode_rr_io(*OldMI);
604 MIB = BuildMI(*BB, InsertPt, OldMI->getDebugLoc(), HII->get(NewOpCode));
605 MIB.add(OldMI->getOperand(0));
606 MIB.add(OldMI->getOperand(1));
610 LLVM_DEBUG(dbgs() << "[Changing]: " << *OldMI << "\n");
617 MIB.add(OldMI->getOperand(i));
622 bool HexagonOptAddrMode::changeStore(MachineInstr *OldMI, MachineOperand ImmOp,
626 unsigned OpEnd = OldMI->getNumOperands();
627 MachineBasicBlock *BB = OldMI->getParent();
628 auto UsePos = MachineBasicBlock::iterator(OldMI);
633 if (HII->getAddrMode(*OldMI) == HexagonII::BaseRegOffset) {
634 short NewOpCode = HII->changeAddrMode_rr_ur(*OldMI);
636 MIB = BuildMI(*BB, InsertPt, OldMI->getDebugLoc(), HII->get(NewOpCode));
637 MIB.add(OldMI->getOperand(1));
638 MIB.add(OldMI->getOperand(2));
640 MIB.add(OldMI->getOperand(3));
643 } else if (HII->getAddrMode(*OldMI) == HexagonII::BaseImmOffset) {
644 short NewOpCode = HII->changeAddrMode_io_abs(*OldMI);
646 MIB = BuildMI(*BB, InsertPt, OldMI->getDebugLoc(), HII->get(NewOpCode));
648 int64_t Offset = ImmOp.getOffset() + OldMI->getOperand(1).getImm();
650 MIB.add(OldMI->getOperand(2));
654 } else if (ImmOpNum == 1 && OldMI->getOperand(2).getImm() == 0) {
655 short NewOpCode = HII->changeAddrMode_rr_io(*OldMI);
657 MIB = BuildMI(*BB, InsertPt, OldMI->getDebugLoc(), HII->get(NewOpCode));
658 MIB.add(OldMI->getOperand(0));
664 LLVM_DEBUG(dbgs() << "[Changing]: " << *OldMI << "\n");
668 MIB.add(OldMI->getOperand(i));