Lines Matching refs:MCB
32 MCInstrInfo const &MCII, MCInst &MCB, in addConstExtender() argument
34 assert(HexagonMCInstrInfo::isBundle(MCB)); in addConstExtender()
42 MCB.addOperand(MCOperand::createInst(XMCI)); in addConstExtender()
60 MCContext &Context, MCInst &MCB, in canonicalizePacket() argument
65 HexagonMCInstrInfo::tryCompound(MCII, Context, MCB); in canonicalizePacket()
70 HexagonMCShuffle(MCII, STI, MCB); in canonicalizePacket()
73 MCInst InstBundlePreDuplex = MCInst(MCB); in canonicalizePacket()
76 possibleDuplexes = HexagonMCInstrInfo::getDuplexPossibilties(MCII, MCB); in canonicalizePacket()
77 HexagonMCShuffle(MCII, STI, Context, MCB, possibleDuplexes); in canonicalizePacket()
81 HexagonMCInstrInfo::padEndloop(Context, MCB); in canonicalizePacket()
84 if (HexagonMCInstrInfo::bundleSize(MCB) > HEXAGON_PACKET_SIZE) in canonicalizePacket()
86 HexagonMCShuffle(MCII, STI, MCB); in canonicalizePacket()
149 MCInst const *HexagonMCInstrInfo::extenderForIndex(MCInst const &MCB, in extenderForIndex() argument
151 assert(Index <= bundleSize(MCB)); in extenderForIndex()
155 MCB.getOperand(Index + bundleInstructionsOffset - 1).getInst(); in extenderForIndex()
162 MCInstrInfo const &MCII, MCInst &MCB, in extendIfNeeded() argument
165 addConstExtender(Context, MCII, MCB, MCI); in extendIfNeeded()
397 bool HexagonMCInstrInfo::hasExtenderForIndex(MCInst const &MCB, size_t Index) { in hasExtenderForIndex() argument
398 return extenderForIndex(MCB, Index) != nullptr; in hasExtenderForIndex()
415 MCInst const &HexagonMCInstrInfo::instruction(MCInst const &MCB, size_t Index) { in instruction() argument
416 assert(isBundle(MCB)); in instruction()
418 return *MCB.getOperand(bundleInstructionsOffset + Index).getInst(); in instruction()
712 void HexagonMCInstrInfo::padEndloop(MCContext &Context, MCInst &MCB) { in padEndloop() argument
715 assert(isBundle(MCB)); in padEndloop()
716 while ((HexagonMCInstrInfo::isInnerLoop(MCB) && in padEndloop()
717 (HexagonMCInstrInfo::bundleSize(MCB) < HEXAGON_PACKET_INNER_SIZE)) || in padEndloop()
718 ((HexagonMCInstrInfo::isOuterLoop(MCB) && in padEndloop()
719 (HexagonMCInstrInfo::bundleSize(MCB) < HEXAGON_PACKET_OUTER_SIZE)))) in padEndloop()
720 MCB.addOperand(MCOperand::createInst(new (Context) MCInst(Nop))); in padEndloop()
743 void HexagonMCInstrInfo::replaceDuplex(MCContext &Context, MCInst &MCB, in replaceDuplex() argument
745 assert(Candidate.packetIndexI < MCB.size()); in replaceDuplex()
746 assert(Candidate.packetIndexJ < MCB.size()); in replaceDuplex()
747 assert(isBundle(MCB)); in replaceDuplex()
750 *MCB.getOperand(Candidate.packetIndexJ).getInst(), in replaceDuplex()
751 *MCB.getOperand(Candidate.packetIndexI).getInst()); in replaceDuplex()
753 MCB.getOperand(Candidate.packetIndexI).setInst(Duplex); in replaceDuplex()
754 MCB.erase(MCB.begin() + Candidate.packetIndexJ); in replaceDuplex()