Lines Matching refs:MCB
88 MCInstrInfo const &MCII, MCInst &MCB, in addConstExtender() argument
90 assert(HexagonMCInstrInfo::isBundle(MCB)); in addConstExtender()
99 MCB.addOperand(MCOperand::createInst(XMCI)); in addConstExtender()
125 MCContext &Context, MCInst &MCB, in canonicalizePacketImpl() argument
134 HexagonMCInstrInfo::tryCompound(MCII, STI, Context, MCB); in canonicalizePacketImpl()
135 HexagonMCShuffle(Context, false, MCII, STI, MCB); in canonicalizePacketImpl()
142 HexagonMCInstrInfo::getDuplexPossibilties(MCII, STI, MCB); in canonicalizePacketImpl()
143 HexagonMCShuffle(Context, MCII, STI, MCB, possibleDuplexes); in canonicalizePacketImpl()
147 HexagonMCInstrInfo::padEndloop(MCB, Context); in canonicalizePacketImpl()
150 if (HexagonMCInstrInfo::bundleSize(MCB) > HEXAGON_PACKET_SIZE) { in canonicalizePacketImpl()
159 HexagonMCShuffle(Context, true, MCII, STI, MCB); in canonicalizePacketImpl()
166 MCContext &Context, MCInst &MCB, in canonicalizePacket() argument
171 return canonicalizePacketImpl(MCII, STI, Context, MCB, Check); in canonicalizePacket()
174 HexagonMCChecker DefaultCheck(Context, MCII, STI, MCB, *RI, false); in canonicalizePacket()
177 if (canonicalizePacketImpl(MCII, STI, Context, MCB, &PerfCheck)) in canonicalizePacket()
181 return canonicalizePacketImpl(MCII, *ArchSTI, Context, MCB, &ArchCheck); in canonicalizePacket()
215 MCInst const *HexagonMCInstrInfo::extenderForIndex(MCInst const &MCB, in extenderForIndex() argument
217 assert(Index <= bundleSize(MCB)); in extenderForIndex()
221 MCB.getOperand(Index + bundleInstructionsOffset - 1).getInst(); in extenderForIndex()
228 MCInstrInfo const &MCII, MCInst &MCB, in extendIfNeeded() argument
231 addConstExtender(Context, MCII, MCB, MCI); in extendIfNeeded()
489 bool HexagonMCInstrInfo::hasExtenderForIndex(MCInst const &MCB, size_t Index) { in hasExtenderForIndex() argument
490 return extenderForIndex(MCB, Index) != nullptr; in hasExtenderForIndex()
519 MCInst const &HexagonMCInstrInfo::instruction(MCInst const &MCB, size_t Index) { in instruction() argument
520 assert(isBundle(MCB)); in instruction()
522 return *MCB.getOperand(bundleInstructionsOffset + Index).getInst(); in instruction()
914 void HexagonMCInstrInfo::padEndloop(MCInst &MCB, MCContext &Context) { in padEndloop() argument
917 assert(isBundle(MCB)); in padEndloop()
918 while ((HexagonMCInstrInfo::isInnerLoop(MCB) && in padEndloop()
919 (HexagonMCInstrInfo::bundleSize(MCB) < HEXAGON_PACKET_INNER_SIZE)) || in padEndloop()
920 ((HexagonMCInstrInfo::isOuterLoop(MCB) && in padEndloop()
921 (HexagonMCInstrInfo::bundleSize(MCB) < HEXAGON_PACKET_OUTER_SIZE)))) in padEndloop()
922 MCB.addOperand(MCOperand::createInst(new (Context) MCInst(Nop))); in padEndloop()
975 void HexagonMCInstrInfo::replaceDuplex(MCContext &Context, MCInst &MCB, in replaceDuplex() argument
977 assert(Candidate.packetIndexI < MCB.size()); in replaceDuplex()
978 assert(Candidate.packetIndexJ < MCB.size()); in replaceDuplex()
979 assert(isBundle(MCB)); in replaceDuplex()
982 *MCB.getOperand(Candidate.packetIndexJ).getInst(), in replaceDuplex()
983 *MCB.getOperand(Candidate.packetIndexI).getInst()); in replaceDuplex()
985 MCB.getOperand(Candidate.packetIndexI).setInst(Duplex); in replaceDuplex()
986 MCB.erase(MCB.begin() + Candidate.packetIndexJ); in replaceDuplex()