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
132 MCInst OrigMCB = MCB; in canonicalizePacketImpl()
137 HexagonMCInstrInfo::tryCompound(MCII, STI, Context, MCB); in canonicalizePacketImpl()
138 HexagonMCShuffle(Context, false, MCII, STI, MCB); in canonicalizePacketImpl()
142 ? HexagonMCInstrInfo::getDuplexPossibilties(MCII, STI, MCB) in canonicalizePacketImpl()
147 HexagonMCShuffle(Context, MCII, STI, MCB, possibleDuplexes); in canonicalizePacketImpl()
151 HexagonMCInstrInfo::padEndloop(MCB, Context); in canonicalizePacketImpl()
155 if (HexagonMCInstrInfo::bundleSize(MCB) > HEXAGON_PACKET_SIZE) { in canonicalizePacketImpl()
165 HexagonMCShuffle(Context, true, MCII, STI, MCB); in canonicalizePacketImpl()
173 MCContext &Context, MCInst &MCB, in canonicalizePacket() argument
178 return canonicalizePacketImpl(MCII, STI, Context, MCB, Check); in canonicalizePacket()
181 HexagonMCChecker DefaultCheck(Context, MCII, STI, MCB, *RI, false); in canonicalizePacket()
184 if (canonicalizePacketImpl(MCII, STI, Context, MCB, &PerfCheck)) in canonicalizePacket()
188 return canonicalizePacketImpl(MCII, *ArchSTI, Context, MCB, &ArchCheck); in canonicalizePacket()
222 MCInst const *HexagonMCInstrInfo::extenderForIndex(MCInst const &MCB, in extenderForIndex() argument
224 assert(Index <= bundleSize(MCB)); in extenderForIndex()
228 MCB.getOperand(Index + bundleInstructionsOffset - 1).getInst(); in extenderForIndex()
235 MCInstrInfo const &MCII, MCInst &MCB, in extendIfNeeded() argument
238 addConstExtender(Context, MCII, MCB, MCI); in extendIfNeeded()
496 bool HexagonMCInstrInfo::hasExtenderForIndex(MCInst const &MCB, size_t Index) { in hasExtenderForIndex() argument
497 return extenderForIndex(MCB, Index) != nullptr; in hasExtenderForIndex()
526 MCInst const &HexagonMCInstrInfo::instruction(MCInst const &MCB, size_t Index) { in instruction() argument
527 assert(isBundle(MCB)); in instruction()
529 return *MCB.getOperand(bundleInstructionsOffset + Index).getInst(); in instruction()
921 void HexagonMCInstrInfo::padEndloop(MCInst &MCB, MCContext &Context) { in padEndloop() argument
924 assert(isBundle(MCB)); in padEndloop()
925 while (LoopNeedsPadding(MCB)) in padEndloop()
926 MCB.addOperand(MCOperand::createInst(new (Context) MCInst(Nop))); in padEndloop()
993 void HexagonMCInstrInfo::replaceDuplex(MCContext &Context, MCInst &MCB, in replaceDuplex() argument
995 assert(Candidate.packetIndexI < MCB.size()); in replaceDuplex()
996 assert(Candidate.packetIndexJ < MCB.size()); in replaceDuplex()
997 assert(isBundle(MCB)); in replaceDuplex()
1000 *MCB.getOperand(Candidate.packetIndexJ).getInst(), in replaceDuplex()
1001 *MCB.getOperand(Candidate.packetIndexI).getInst()); in replaceDuplex()
1003 MCB.getOperand(Candidate.packetIndexI).setInst(Duplex); in replaceDuplex()
1004 MCB.erase(MCB.begin() + Candidate.packetIndexJ); in replaceDuplex()
1038 bool HexagonMCInstrInfo::LoopNeedsPadding(MCInst const &MCB) { in LoopNeedsPadding() argument
1040 (HexagonMCInstrInfo::isInnerLoop(MCB) && in LoopNeedsPadding()
1041 (HexagonMCInstrInfo::bundleSize(MCB) < HEXAGON_PACKET_INNER_SIZE)) || in LoopNeedsPadding()
1042 ((HexagonMCInstrInfo::isOuterLoop(MCB) && in LoopNeedsPadding()
1043 (HexagonMCInstrInfo::bundleSize(MCB) < HEXAGON_PACKET_OUTER_SIZE)))); in LoopNeedsPadding()