Home | History | Annotate | Download | only in TableGen

Lines Matching refs:Operands

74 /// types. It has utility methods for emitting text based on the operands.
118 SmallVector<OpKind, 3> Operands;
121 return Operands < O.Operands;
124 return Operands == O.Operands;
127 bool empty() const { return Operands.empty(); }
130 for (unsigned i = 0, e = Operands.size(); i != e; ++i)
131 if (Operands[i].isImm() && Operands[i].getImmCode() != 0)
140 for (unsigned i = 0, e = Operands.size(); i != e; ++i)
141 if (!Operands[i].isImm())
142 Result.Operands.push_back(Operands[i]);
144 Result.Operands.push_back(OpKind::getImm(0));
150 for (unsigned i = 0, e = Operands.size(); i != e; ++i) {
151 if (!Operands[i].isImm()) continue;
153 unsigned Code = Operands[i].getImmCode();
173 /// of the Operands array accordingly. Return true if all the operands
184 Operands.push_back(OpKind::getImm(0));
189 Operands.push_back(OpKind::getFP());
198 // Handle imm operands specially.
224 Operands.push_back(OpKind::getImm(PredNo));
236 Operands.push_back(OpKind::getFP());
245 // For now, all the operands must have the same type (if they aren't
256 // For now, the only other thing we accept is register operands.
273 // For now, all the operands must have the same register class or be
280 Operands.push_back(OpKind::getReg());
286 for (unsigned i = 0, e = Operands.size(); i != e; ++i) {
287 if (Operands[i].isReg()) {
289 } else if (Operands[i].isImm()) {
291 } else if (Operands[i].isFP()) {
303 assert(PR.size() == Operands.size());
305 for (unsigned i = 0, e = Operands.size(); i != e; ++i) {
312 if (Operands[i].isReg()) {
315 } else if (Operands[i].isImm()) {
318 } else if (Operands[i].isFP()) {
328 for (unsigned i = 0, e = Operands.size(); i != e; ++i) {
329 if (Operands[i].isReg()) {
331 } else if (Operands[i].isImm()) {
333 } else if (Operands[i].isFP()) {
347 for (unsigned i = 0, e = Operands.size(); i != e; ++i) {
355 Operands[i].printManglingSuffix(OS, ImmPredicates, StripImmCodes);
361 for (unsigned i = 0, e = Operands.size(); i != e; ++i)
362 Operands[i].printManglingSuffix(OS, ImmPredicates, StripImmCodes);
403 const OperandsSignature &Operands,
460 if (II.Operands.empty())
482 Record *Op0Rec = II.Operands[0].Rec;
524 // Check all the operands.
525 OperandsSignature Operands;
526 if (!Operands.initialize(InstPatNode, Target, VT, ImmediatePredicates,
561 // Check if the operands match one of the patterns handled by FastISel.
564 Operands.PrintManglingSuffix(SuffixOS, ImmediatePredicates, true);
586 if (SimplePatternsCheck[Operands][OpcodeName][VT]
591 SimplePatternsCheck[Operands][OpcodeName][VT][RetVT].insert(
596 SimplePatterns[Operands][OpcodeName][VT][RetVT].insert(
599 // If any of the operands were immediates with predicates on them, strip
602 if (Operands.hasAnyImmediateCodes()) {
603 SignaturesWithConstantForms[Operands.getWithoutImmCodes()]
604 .push_back(Operands);
624 const OperandsSignature &Operands,
664 Operands.PrintManglingSuffix(OS, *Memo.PhysRegs,
668 if (!Operands.empty())
670 Operands.PrintArguments(OS, *Memo.PhysRegs);
694 const OperandsSignature &Operands = OI->first;
720 Operands.PrintManglingSuffix(OS, ImmediatePredicates);
722 Operands.PrintParameters(OS);
725 emitInstructionCode(OS, Operands, PM, getName(RetVT));
732 Operands.PrintManglingSuffix(OS, ImmediatePredicates);
734 if (!Operands.empty())
736 Operands.PrintParameters(OS);
744 Operands.PrintManglingSuffix(OS, ImmediatePredicates);
746 Operands.PrintArguments(OS);
756 Operands.PrintManglingSuffix(OS, ImmediatePredicates);
758 if (!Operands.empty())
760 Operands.PrintParameters(OS);
768 emitInstructionCode(OS, Operands, PM, "RetVT");
775 Operands.PrintManglingSuffix(OS, ImmediatePredicates);
777 if (!Operands.empty())
779 Operands.PrintParameters(OS);
788 Operands.PrintManglingSuffix(OS, ImmediatePredicates);
790 if (!Operands.empty())
792 Operands.PrintArguments(OS);
807 Operands.PrintManglingSuffix(OS, ImmediatePredicates);
809 if (!Operands.empty())
811 Operands.PrintParameters(OS);
813 if (!Operands.hasAnyImmediateCodes())
822 = SignaturesWithConstantForms.find(Operands);
855 Operands.PrintManglingSuffix(OS, ImmediatePredicates);
857 if (!Operands.empty())
859 Operands.PrintArguments(OS);