• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/contrib/llvm-project/llvm/lib/Target/Hexagon/MCTargetDesc/

Lines Matching defs:MCI

88                                           MCInst const &MCI) {
91 MCI.getOperand(HexagonMCInstrInfo::getExtendableOp(MCII, MCI));
95 new (Context) MCInst(HexagonMCInstrInfo::deriveExtender(MCII, MCI, exOp));
96 XMCI->setLoc(MCI.getLoc());
103 MCInst const &MCI) {
104 assert(isBundle(MCI));
105 return make_range(Hexagon::PacketIterator(MCII, MCI),
106 Hexagon::PacketIterator(MCII, MCI, nullptr));
110 HexagonMCInstrInfo::bundleInstructions(MCInst const &MCI) {
111 assert(isBundle(MCI));
112 return make_range(MCI.begin() + bundleInstructionsOffset, MCI.end());
115 size_t HexagonMCInstrInfo::bundleSize(MCInst const &MCI) {
116 if (HexagonMCInstrInfo::isBundle(MCI))
117 return (MCI.size() - bundleInstructionsOffset);
204 MCInst const &MCI) {
205 if (isConstExtended(MCII, MCI))
206 addConstExtender(Context, MCII, MCB, MCI);
210 MCInst const &MCI) {
211 uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags;
217 MCInst const &MCI) {
218 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags;
224 MCInst const &MCI) {
225 return MCII.get(MCI.getOpcode());
285 MCInst const &MCI) {
286 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags;
292 MCInst const &MCI) {
293 unsigned O = HexagonMCInstrInfo::getExtendableOp(MCII, MCI);
294 MCOperand const &MO = MCI.getOperand(O);
296 assert((HexagonMCInstrInfo::isExtendable(MCII, MCI) ||
297 HexagonMCInstrInfo::isExtended(MCII, MCI)) &&
303 MCInst const &MCI) {
304 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags;
309 MCInst const &MCI) {
310 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags;
315 MCInst const &MCI) {
316 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags;
322 MCInst const &MCI) {
323 assert(HexagonMCInstrInfo::isExtendable(MCII, MCI) ||
324 HexagonMCInstrInfo::isExtended(MCII, MCI));
326 if (HexagonMCInstrInfo::isExtentSigned(MCII, MCI)) // if value is signed
327 return (1 << (HexagonMCInstrInfo::getExtentBits(MCII, MCI) - 1)) - 1;
328 return (1 << HexagonMCInstrInfo::getExtentBits(MCII, MCI)) - 1;
333 MCInst const &MCI) {
334 assert(HexagonMCInstrInfo::isExtendable(MCII, MCI) ||
335 HexagonMCInstrInfo::isExtended(MCII, MCI));
337 if (HexagonMCInstrInfo::isExtentSigned(MCII, MCI)) // if value is signed
338 return -(1 << (HexagonMCInstrInfo::getExtentBits(MCII, MCI) - 1));
343 MCInst const &MCI) {
344 return MCII.getName(MCI.getOpcode());
348 MCInst const &MCI) {
349 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags;
354 MCInst const &MCI) {
355 if (HexagonMCInstrInfo::hasTmpDst(MCII, MCI)) {
361 unsigned O = HexagonMCInstrInfo::getNewValueOp(MCII, MCI);
362 MCOperand const &MCO = MCI.getOperand(O);
364 assert((HexagonMCInstrInfo::isNewValue(MCII, MCI) ||
365 HexagonMCInstrInfo::hasNewValue(MCII, MCI)) &&
373 MCInst const &MCI) {
374 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags;
380 MCInst const &MCI) {
381 unsigned O = HexagonMCInstrInfo::getNewValueOp2(MCII, MCI);
382 MCOperand const &MCO = MCI.getOperand(O);
384 assert((HexagonMCInstrInfo::isNewValue(MCII, MCI) ||
385 HexagonMCInstrInfo::hasNewValue2(MCII, MCI)) &&
392 MCInst const &MCI) {
393 const uint64_t F = MCII.get(MCI.getOpcode()).TSFlags;
400 MCInst const &MCI) {
402 int SchedClass = HexagonMCInstrInfo::getDesc(MCII, MCI).getSchedClass();
411 MCInst const &MCI) {
413 int SchedClass = HexagonMCInstrInfo::getDesc(MCII, MCI).getSchedClass();
432 bool HexagonMCInstrInfo::hasDuplex(MCInstrInfo const &MCII, MCInst const &MCI) {
433 if (!HexagonMCInstrInfo::isBundle(MCI))
436 for (auto const &I : HexagonMCInstrInfo::bundleInstructions(MCI)) {
448 bool HexagonMCInstrInfo::hasImmExt(MCInst const &MCI) {
449 if (!HexagonMCInstrInfo::isBundle(MCI))
452 for (const auto &I : HexagonMCInstrInfo::bundleInstructions(MCI)) {
462 MCInst const &MCI) {
463 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags;
469 MCInst const &MCI) {
470 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags;
482 MCInst const &MCI) {
483 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags;
487 bool HexagonMCInstrInfo::isBundle(MCInst const &MCI) {
488 auto Result = Hexagon::BUNDLE == MCI.getOpcode();
489 assert(!Result || (MCI.size() > 0 && MCI.getOperand(0).isImm()));
494 MCInst const &MCI) {
495 if (HexagonMCInstrInfo::isExtended(MCII, MCI))
497 if (!HexagonMCInstrInfo::isExtendable(MCII, MCI))
499 MCOperand const &MO = HexagonMCInstrInfo::getExtendableOperand(MCII, MCI);
504 if ((HexagonMCInstrInfo::getType(MCII, MCI) == HexagonII::TypeJ) ||
505 (HexagonMCInstrInfo::getType(MCII, MCI) == HexagonII::TypeCJ &&
506 HexagonMCInstrInfo::getDesc(MCII, MCI).isBranch()) ||
507 (HexagonMCInstrInfo::getType(MCII, MCI) == HexagonII::TypeNCJ &&
508 HexagonMCInstrInfo::getDesc(MCII, MCI).isBranch()))
511 else if ((HexagonMCInstrInfo::getType(MCII, MCI) == HexagonII::TypeCR) &&
512 (MCI.getOpcode() != Hexagon::C4_addipc))
522 int MinValue = HexagonMCInstrInfo::getMinValue(MCII, MCI);
523 int MaxValue = HexagonMCInstrInfo::getMaxValue(MCII, MCI);
527 bool HexagonMCInstrInfo::isCanon(MCInstrInfo const &MCII, MCInst const &MCI) {
528 return !HexagonMCInstrInfo::getDesc(MCII, MCI).isPseudo() &&
529 !HexagonMCInstrInfo::isPrefix(MCII, MCI);
532 bool HexagonMCInstrInfo::isCofMax1(MCInstrInfo const &MCII, MCInst const &MCI) {
533 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags;
538 MCInst const &MCI) {
539 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags;
544 MCInst const &MCI) {
545 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags;
550 MCInst const &MCI) {
551 return (getType(MCII, MCI) == HexagonII::TypeCJ);
554 bool HexagonMCInstrInfo::isCVINew(MCInstrInfo const &MCII, MCInst const &MCI) {
555 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags;
564 bool HexagonMCInstrInfo::isDuplex(MCInstrInfo const &MCII, MCInst const &MCI) {
565 return HexagonII::TypeDUPLEX == HexagonMCInstrInfo::getType(MCII, MCI);
569 MCInst const &MCI) {
570 uint64_t const F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags;
575 MCInst const &MCI) {
576 uint64_t const F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags;
580 bool HexagonMCInstrInfo::isFloat(MCInstrInfo const &MCII, MCInst const &MCI) {
581 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags;
585 bool HexagonMCInstrInfo::isHVX(MCInstrInfo const &MCII, MCInst const &MCI) {
586 const uint64_t V = getType(MCII, MCI);
590 bool HexagonMCInstrInfo::isImmext(MCInst const &MCI) {
591 return MCI.getOpcode() == Hexagon::A4_ext;
594 bool HexagonMCInstrInfo::isInnerLoop(MCInst const &MCI) {
595 assert(isBundle(MCI));
596 int64_t Flags = MCI.getOperand(0).getImm();
611 MCInst const &MCI) {
612 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags;
618 MCInst const &MCI, unsigned short O) {
619 return (O == HexagonMCInstrInfo::getExtendableOp(MCII, MCI));
622 bool HexagonMCInstrInfo::isOuterLoop(MCInst const &MCI) {
623 assert(isBundle(MCI));
624 int64_t Flags = MCI.getOperand(0).getImm();
629 MCInst const &MCI) {
630 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags;
634 bool HexagonMCInstrInfo::isPrefix(MCInstrInfo const &MCII, MCInst const &MCI) {
635 return HexagonII::TypeEXTENDER == HexagonMCInstrInfo::getType(MCII, MCI);
639 MCInst const &MCI) {
640 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags;
646 MCInst const &MCI) {
647 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags;
652 MCInst const &MCI) {
653 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags;
663 bool HexagonMCInstrInfo::isSoloAX(MCInstrInfo const &MCII, MCInst const &MCI) {
664 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags;
670 MCInst const &MCI) {
671 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags;
677 MCInst const &MCI) {
678 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags;
684 bool HexagonMCInstrInfo::isSolo(MCInstrInfo const &MCII, MCInst const &MCI) {
685 const uint64_t F = MCII.get(MCI.getOpcode()).TSFlags;
689 bool HexagonMCInstrInfo::isMemReorderDisabled(MCInst const &MCI) {
690 assert(isBundle(MCI));
691 auto Flags = MCI.getOperand(0).getImm();
695 bool HexagonMCInstrInfo::isSubInstruction(MCInst const &MCI) {
696 switch (MCI.getOpcode()) {
755 bool HexagonMCInstrInfo::isVector(MCInstrInfo const &MCII, MCInst const &MCI) {
756 if ((getType(MCII, MCI) <= HexagonII::TypeCVI_LAST) &&
757 (getType(MCII, MCI) >= HexagonII::TypeCVI_FIRST))
762 int64_t HexagonMCInstrInfo::minConstant(MCInst const &MCI, size_t Index) {
765 if (MCI.size() <= Index)
767 MCOperand const &MCO = MCI.getOperand(Index);
817 HexagonMCInstrInfo::predicateInfo(MCInstrInfo const &MCII, MCInst const &MCI) {
818 if (!isPredicated(MCII, MCI))
820 MCInstrDesc const &Desc = getDesc(MCII, MCI);
823 return {MCI.getOperand(I).getReg(), I, isPredicatedTrue(MCII, MCI)};
828 MCInst const &MCI) {
829 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags;
834 bool HexagonMCInstrInfo::hasTmpDst(MCInstrInfo const &MCII, MCInst const &MCI) {
835 const uint64_t F = HexagonMCInstrInfo::getDesc(MCII, MCI).TSFlags;
853 void HexagonMCInstrInfo::setInnerLoop(MCInst &MCI) {
854 assert(isBundle(MCI));
855 MCOperand &Operand = MCI.getOperand(0);
859 void HexagonMCInstrInfo::setMemReorderDisabled(MCInst &MCI) {
860 assert(isBundle(MCI));
861 MCOperand &Operand = MCI.getOperand(0);
863 assert(isMemReorderDisabled(MCI));
866 void HexagonMCInstrInfo::setOuterLoop(MCInst &MCI) {
867 assert(isBundle(MCI));
868 MCOperand &Operand = MCI.getOperand(0);