Lines Matching refs:MCI

33                                           MCInst const &MCI) {  in addConstExtender()  argument
36 MCI.getOperand(HexagonMCInstrInfo::getExtendableOp(MCII, MCI)); in addConstExtender()
40 new (Context) MCInst(HexagonMCInstrInfo::deriveExtender(MCII, MCI, exOp)); in addConstExtender()
46 HexagonMCInstrInfo::bundleInstructions(MCInst const &MCI) { in bundleInstructions() argument
47 assert(isBundle(MCI)); in bundleInstructions()
48 return make_range(MCI.begin() + bundleInstructionsOffset, MCI.end()); in bundleInstructions()
51 size_t HexagonMCInstrInfo::bundleSize(MCInst const &MCI) { in bundleSize() argument
52 if (HexagonMCInstrInfo::isBundle(MCI)) in bundleSize()
53 return (MCI.size() - bundleInstructionsOffset); in bundleSize()
91 MCContext &Context, MCInst &MCI) { in clampExtended() argument
92 assert(HexagonMCInstrInfo::isExtendable(MCII, MCI) || in clampExtended()
93 HexagonMCInstrInfo::isExtended(MCII, MCI)); in clampExtended()
95 MCI.getOperand(HexagonMCInstrInfo::getExtendableOp(MCII, MCI)); in clampExtended()
101 unsigned Shift = HexagonMCInstrInfo::getExtentAlignment(MCII, MCI); in clampExtended()
163 MCInst const &MCI) { in extendIfNeeded() argument
164 if (isConstExtended(MCII, MCI)) in extendIfNeeded()
165 addConstExtender(Context, MCII, MCB, MCI); in extendIfNeeded()
169 HexagonMCInstrInfo::getAccessSize(MCInstrInfo const &MCII, MCInst const &MCI) { in getAccessSize() argument
170 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags; in getAccessSize()
177 MCInst const &MCI) { in getBitCount() argument
178 uint64_t const F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags; in getBitCount()
184 MCInst const &MCI) { in getCExtOpNum() argument
185 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags; in getCExtOpNum()
190 MCInst const &MCI) { in getDesc() argument
191 return (MCII.get(MCI.getOpcode())); in getDesc()
250 MCInst const &MCI) { in getExtendableOp() argument
251 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags; in getExtendableOp()
257 MCInst const &MCI) { in getExtendableOperand() argument
258 unsigned O = HexagonMCInstrInfo::getExtendableOp(MCII, MCI); in getExtendableOperand()
259 MCOperand const &MO = MCI.getOperand(O); in getExtendableOperand()
261 assert((HexagonMCInstrInfo::isExtendable(MCII, MCI) || in getExtendableOperand()
262 HexagonMCInstrInfo::isExtended(MCII, MCI)) && in getExtendableOperand()
268 MCInst const &MCI) { in getExtentAlignment() argument
269 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags; in getExtentAlignment()
274 MCInst const &MCI) { in getExtentBits() argument
275 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags; in getExtentBits()
282 MCInst const &MCI) { in getMaxValue() argument
283 uint64_t const F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags; in getMaxValue()
297 MCInst const &MCI) { in getMinValue() argument
298 uint64_t const F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags; in getMinValue()
310 MCInst const &MCI) { in getName() argument
311 return MCII.getName(MCI.getOpcode()); in getName()
315 MCInst const &MCI) { in getNewValueOp() argument
316 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags; in getNewValueOp()
321 MCInst const &MCI) { in getNewValueOperand() argument
322 uint64_t const F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags; in getNewValueOperand()
325 MCOperand const &MCO = MCI.getOperand(O); in getNewValueOperand()
327 assert((HexagonMCInstrInfo::isNewValue(MCII, MCI) || in getNewValueOperand()
328 HexagonMCInstrInfo::hasNewValue(MCII, MCI)) && in getNewValueOperand()
335 MCInst const &MCI) { in getNewValueOp2() argument
336 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags; in getNewValueOp2()
342 MCInst const &MCI) { in getNewValueOperand2() argument
343 unsigned O = HexagonMCInstrInfo::getNewValueOp2(MCII, MCI); in getNewValueOperand2()
344 MCOperand const &MCO = MCI.getOperand(O); in getNewValueOperand2()
346 assert((HexagonMCInstrInfo::isNewValue(MCII, MCI) || in getNewValueOperand2()
347 HexagonMCInstrInfo::hasNewValue2(MCII, MCI)) && in getNewValueOperand2()
353 MCInst const &MCI) { in getSubTarget() argument
354 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags; in getSubTarget()
369 MCInst const &MCI) { in getType() argument
370 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags; in getType()
377 MCInst const &MCI) { in getUnits() argument
380 int SchedClass = HexagonMCInstrInfo::getDesc(MCII, MCI).getSchedClass(); in getUnits()
384 bool HexagonMCInstrInfo::hasImmExt(MCInst const &MCI) { in hasImmExt() argument
385 if (!HexagonMCInstrInfo::isBundle(MCI)) in hasImmExt()
388 for (const auto &I : HexagonMCInstrInfo::bundleInstructions(MCI)) { in hasImmExt()
403 MCInst const &MCI) { in hasNewValue() argument
404 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags; in hasNewValue()
410 MCInst const &MCI) { in hasNewValue2() argument
411 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags; in hasNewValue2()
421 bool HexagonMCInstrInfo::isBundle(MCInst const &MCI) { in isBundle() argument
422 auto Result = Hexagon::BUNDLE == MCI.getOpcode(); in isBundle()
423 assert(!Result || (MCI.size() > 0 && MCI.getOperand(0).isImm())); in isBundle()
428 bool HexagonMCInstrInfo::isCanon(MCInstrInfo const &MCII, MCInst const &MCI) { in isCanon() argument
429 return (!HexagonMCInstrInfo::getDesc(MCII, MCI).isPseudo() && in isCanon()
430 !HexagonMCInstrInfo::isPrefix(MCII, MCI) && in isCanon()
431 HexagonMCInstrInfo::getType(MCII, MCI) != HexagonII::TypeENDLOOP); in isCanon()
435 MCInst const &MCI) { in isCompound() argument
436 return (getType(MCII, MCI) == HexagonII::TypeCOMPOUND); in isCompound()
444 bool HexagonMCInstrInfo::isDuplex(MCInstrInfo const &MCII, MCInst const &MCI) { in isDuplex() argument
445 return HexagonII::TypeDUPLEX == HexagonMCInstrInfo::getType(MCII, MCI); in isDuplex()
457 MCInst const &MCI) { in isConstExtended() argument
458 if (HexagonMCInstrInfo::isExtended(MCII, MCI)) in isConstExtended()
460 if (!HexagonMCInstrInfo::isExtendable(MCII, MCI)) in isConstExtended()
462 MCOperand const &MO = HexagonMCInstrInfo::getExtendableOperand(MCII, MCI); in isConstExtended()
467 if ((HexagonMCInstrInfo::getType(MCII, MCI) == HexagonII::TypeJ) || in isConstExtended()
468 (HexagonMCInstrInfo::getType(MCII, MCI) == HexagonII::TypeCOMPOUND && in isConstExtended()
469 HexagonMCInstrInfo::getDesc(MCII, MCI).isBranch()) || in isConstExtended()
470 (HexagonMCInstrInfo::getType(MCII, MCI) == HexagonII::TypeNV && in isConstExtended()
471 HexagonMCInstrInfo::getDesc(MCII, MCI).isBranch())) in isConstExtended()
474 else if ((HexagonMCInstrInfo::getType(MCII, MCI) == HexagonII::TypeCR) && in isConstExtended()
475 (MCI.getOpcode() != Hexagon::C4_addipc)) in isConstExtended()
485 int MinValue = HexagonMCInstrInfo::getMinValue(MCII, MCI); in isConstExtended()
486 int MaxValue = HexagonMCInstrInfo::getMaxValue(MCII, MCI); in isConstExtended()
491 MCInst const &MCI) { in isExtendable() argument
492 uint64_t const F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags; in isExtendable()
497 MCInst const &MCI) { in isExtended() argument
498 uint64_t const F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags; in isExtended()
502 bool HexagonMCInstrInfo::isFloat(MCInstrInfo const &MCII, MCInst const &MCI) { in isFloat() argument
503 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags; in isFloat()
507 bool HexagonMCInstrInfo::isImmext(MCInst const &MCI) { in isImmext() argument
508 auto Op = MCI.getOpcode(); in isImmext()
513 bool HexagonMCInstrInfo::isInnerLoop(MCInst const &MCI) { in isInnerLoop() argument
514 assert(isBundle(MCI)); in isInnerLoop()
515 int64_t Flags = MCI.getOperand(0).getImm(); in isInnerLoop()
530 MCInst const &MCI) { in isNewValue() argument
531 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags; in isNewValue()
537 MCInst const &MCI, in isOperandExtended() argument
539 uint64_t const F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags; in isOperandExtended()
544 bool HexagonMCInstrInfo::isOuterLoop(MCInst const &MCI) { in isOuterLoop() argument
545 assert(isBundle(MCI)); in isOuterLoop()
546 int64_t Flags = MCI.getOperand(0).getImm(); in isOuterLoop()
551 MCInst const &MCI) { in isPredicated() argument
552 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags; in isPredicated()
557 MCInst const &MCI) { in isPredicateLate() argument
558 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags; in isPredicateLate()
564 MCInst const &MCI) { in isPredicatedNew() argument
565 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags; in isPredicatedNew()
570 MCInst const &MCI) { in isPredicatedTrue() argument
571 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags; in isPredicatedTrue()
580 bool HexagonMCInstrInfo::isPrefix(MCInstrInfo const &MCII, MCInst const &MCI) { in isPrefix() argument
581 return (HexagonMCInstrInfo::getType(MCII, MCI) == HexagonII::TypePREFIX); in isPrefix()
584 bool HexagonMCInstrInfo::isSolo(MCInstrInfo const &MCII, MCInst const &MCI) { in isSolo() argument
585 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags; in isSolo()
589 bool HexagonMCInstrInfo::isMemReorderDisabled(MCInst const &MCI) { in isMemReorderDisabled() argument
590 assert(isBundle(MCI)); in isMemReorderDisabled()
591 auto Flags = MCI.getOperand(0).getImm(); in isMemReorderDisabled()
595 bool HexagonMCInstrInfo::isMemStoreReorderEnabled(MCInst const &MCI) { in isMemStoreReorderEnabled() argument
596 assert(isBundle(MCI)); in isMemStoreReorderEnabled()
597 auto Flags = MCI.getOperand(0).getImm(); in isMemStoreReorderEnabled()
601 bool HexagonMCInstrInfo::isSubInstruction(MCInst const &MCI) { in isSubInstruction() argument
602 switch (MCI.getOpcode()) { in isSubInstruction()
661 bool HexagonMCInstrInfo::isSoloAX(MCInstrInfo const &MCII, MCInst const &MCI) { in isSoloAX() argument
662 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags; in isSoloAX()
667 MCInst const &MCI) { in isSoloAin1() argument
668 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags; in isSoloAin1()
672 bool HexagonMCInstrInfo::isVector(MCInstrInfo const &MCII, MCInst const &MCI) { in isVector() argument
673 if ((getType(MCII, MCI) <= HexagonII::TypeCVI_LAST) && in isVector()
674 (getType(MCII, MCI) >= HexagonII::TypeCVI_FIRST)) in isVector()
679 int64_t HexagonMCInstrInfo::minConstant(MCInst const &MCI, size_t Index) { in minConstant() argument
682 if (MCI.size() <= Index) in minConstant()
684 MCOperand const &MCO = MCI.getOperand(Index); in minConstant()
724 MCInst const &MCI) { in prefersSlot3() argument
725 if (HexagonMCInstrInfo::getType(MCII, MCI) == HexagonII::TypeCR) in prefersSlot3()
728 unsigned SchedClass = HexagonMCInstrInfo::getDesc(MCII, MCI).getSchedClass(); in prefersSlot3()
757 void HexagonMCInstrInfo::setInnerLoop(MCInst &MCI) { in setInnerLoop() argument
758 assert(isBundle(MCI)); in setInnerLoop()
759 MCOperand &Operand = MCI.getOperand(0); in setInnerLoop()
763 void HexagonMCInstrInfo::setMemReorderDisabled(MCInst &MCI) { in setMemReorderDisabled() argument
764 assert(isBundle(MCI)); in setMemReorderDisabled()
765 MCOperand &Operand = MCI.getOperand(0); in setMemReorderDisabled()
767 assert(isMemReorderDisabled(MCI)); in setMemReorderDisabled()
770 void HexagonMCInstrInfo::setMemStoreReorderEnabled(MCInst &MCI) { in setMemStoreReorderEnabled() argument
771 assert(isBundle(MCI)); in setMemStoreReorderEnabled()
772 MCOperand &Operand = MCI.getOperand(0); in setMemStoreReorderEnabled()
774 assert(isMemStoreReorderEnabled(MCI)); in setMemStoreReorderEnabled()
786 void HexagonMCInstrInfo::setOuterLoop(MCInst &MCI) { in setOuterLoop() argument
787 assert(isBundle(MCI)); in setOuterLoop()
788 MCOperand &Operand = MCI.getOperand(0); in setOuterLoop()