Lines Matching refs:MCB
33 void HexagonMCShuffler::init(MCInst &MCB) { in init() argument
34 if (HexagonMCInstrInfo::isBundle(MCB)) { in init()
37 for (const auto &I : HexagonMCInstrInfo::bundleInstructions(MCB)) { in init()
51 Loc = MCB.getLoc(); in init()
52 BundleFlags = MCB.getOperand(0).getImm(); in init()
55 void HexagonMCShuffler::init(MCInst &MCB, MCInst const &AddMI, in init() argument
57 if (HexagonMCInstrInfo::isBundle(MCB)) { in init()
62 for (auto const &I : HexagonMCInstrInfo::bundleInstructions(MCB)) { in init()
75 Loc = MCB.getLoc(); in init()
76 BundleFlags = MCB.getOperand(0).getImm(); in init()
79 void HexagonMCShuffler::copyTo(MCInst &MCB) { in copyTo() argument
80 MCB.clear(); in copyTo()
81 MCB.addOperand(MCOperand::createImm(BundleFlags)); in copyTo()
82 MCB.setLoc(Loc); in copyTo()
88 MCB.addOperand(MCOperand::createInst(Extender)); in copyTo()
89 MCB.addOperand(MCOperand::createInst(&MI)); in copyTo()
93 bool HexagonMCShuffler::reshuffleTo(MCInst &MCB) { in reshuffleTo() argument
96 copyTo(MCB); in reshuffleTo()
99 LLVM_DEBUG(MCB.dump()); in reshuffleTo()
105 MCInst &MCB) { in HexagonMCShuffle() argument
106 HexagonMCShuffler MCS(Context, ReportErrors, MCII, STI, MCB); in HexagonMCShuffle()
112 if (!HexagonMCInstrInfo::bundleSize(MCB)) { in HexagonMCShuffle()
122 } else if (!HexagonMCInstrInfo::isBundle(MCB)) { in HexagonMCShuffle()
127 return MCS.reshuffleTo(MCB); in HexagonMCShuffle()
131 MCSubtargetInfo const &STI, MCInst &MCB, in HexagonMCShuffle() argument
137 if (!HexagonMCInstrInfo::bundleSize(MCB)) { in HexagonMCShuffle()
147 } else if (!HexagonMCInstrInfo::isBundle(MCB)) { in HexagonMCShuffle()
156 MCInst Attempt(MCB); in HexagonMCShuffle()
161 MCS.copyTo(MCB); in HexagonMCShuffle()
165 doneShuffling = MCS.reshuffleTo(MCB); in HexagonMCShuffle()
172 HexagonMCShuffler MCS(Context, false, MCII, STI, MCB); in HexagonMCShuffle()
173 doneShuffling = MCS.reshuffleTo(MCB); // shuffle in HexagonMCShuffle()
180 MCSubtargetInfo const &STI, MCInst &MCB, in HexagonMCShuffle() argument
182 if (!HexagonMCInstrInfo::isBundle(MCB)) in HexagonMCShuffle()
187 unsigned int bundleSize = HexagonMCInstrInfo::bundleSize(MCB); in HexagonMCShuffle()
190 bool bhasDuplex = HexagonMCInstrInfo::hasDuplex(MCII, MCB); in HexagonMCShuffle()
210 unsigned maxBundleSize = (HexagonMCInstrInfo::hasImmExt(MCB)) in HexagonMCShuffle()
216 HexagonMCShuffler MCS(Context, false, MCII, STI, MCB, AddMI, false); in HexagonMCShuffle()
217 return MCS.reshuffleTo(MCB); in HexagonMCShuffle()