Lines Matching defs:OldMI
121 bool changeStore(MachineInstr *OldMI, MachineOperand ImmOp,
123 bool changeLoad(MachineInstr *OldMI, MachineOperand ImmOp, unsigned ImmOpNum);
854 bool HexagonOptAddrMode::changeLoad(MachineInstr *OldMI, MachineOperand ImmOp,
857 MachineBasicBlock *BB = OldMI->getParent();
858 auto UsePos = MachineBasicBlock::iterator(OldMI);
862 unsigned OpEnd = OldMI->getNumOperands();
866 if (HII->getAddrMode(*OldMI) == HexagonII::BaseRegOffset) {
867 short NewOpCode = HII->changeAddrMode_rr_ur(*OldMI);
869 MIB = BuildMI(*BB, InsertPt, OldMI->getDebugLoc(), HII->get(NewOpCode));
870 MIB.add(OldMI->getOperand(0));
871 MIB.add(OldMI->getOperand(2));
872 MIB.add(OldMI->getOperand(3));
876 } else if (HII->getAddrMode(*OldMI) == HexagonII::BaseImmOffset &&
877 OldMI->getOperand(2).isImm()) {
878 short NewOpCode = HII->changeAddrMode_io_abs(*OldMI);
880 MIB = BuildMI(*BB, InsertPt, OldMI->getDebugLoc(), HII->get(NewOpCode))
881 .add(OldMI->getOperand(0));
883 int64_t Offset = ImmOp.getOffset() + OldMI->getOperand(2).getImm();
891 LLVM_DEBUG(dbgs() << "[Changing]: " << *OldMI << "\n");
894 if (OldMI->getOperand(3).isImm() && OldMI->getOperand(3).getImm() == 0) {
895 short NewOpCode = HII->changeAddrMode_rr_io(*OldMI);
897 MIB = BuildMI(*BB, InsertPt, OldMI->getDebugLoc(), HII->get(NewOpCode));
898 MIB.add(OldMI->getOperand(0));
899 MIB.add(OldMI->getOperand(1));
903 LLVM_DEBUG(dbgs() << "[Changing]: " << *OldMI << "\n");
910 MIB.add(OldMI->getOperand(i));
915 bool HexagonOptAddrMode::changeStore(MachineInstr *OldMI, MachineOperand ImmOp,
919 unsigned OpEnd = OldMI->getNumOperands();
920 MachineBasicBlock *BB = OldMI->getParent();
921 auto UsePos = MachineBasicBlock::iterator(OldMI);
926 if (HII->getAddrMode(*OldMI) == HexagonII::BaseRegOffset) {
927 short NewOpCode = HII->changeAddrMode_rr_ur(*OldMI);
929 MIB = BuildMI(*BB, InsertPt, OldMI->getDebugLoc(), HII->get(NewOpCode));
930 MIB.add(OldMI->getOperand(1));
931 MIB.add(OldMI->getOperand(2));
933 MIB.add(OldMI->getOperand(3));
936 } else if (HII->getAddrMode(*OldMI) == HexagonII::BaseImmOffset) {
937 short NewOpCode = HII->changeAddrMode_io_abs(*OldMI);
939 MIB = BuildMI(*BB, InsertPt, OldMI->getDebugLoc(), HII->get(NewOpCode));
941 int64_t Offset = ImmOp.getOffset() + OldMI->getOperand(1).getImm();
943 MIB.add(OldMI->getOperand(2));
947 } else if (ImmOpNum == 1 && OldMI->getOperand(2).getImm() == 0) {
948 short NewOpCode = HII->changeAddrMode_rr_io(*OldMI);
950 MIB = BuildMI(*BB, InsertPt, OldMI->getDebugLoc(), HII->get(NewOpCode));
951 MIB.add(OldMI->getOperand(0));
957 LLVM_DEBUG(dbgs() << "[Changing]: " << *OldMI << "\n");
961 MIB.add(OldMI->getOperand(i));