Lines Matching full:operands

86 /// types. It has utility methods for emitting text based on the operands.
142 SmallVector<OpKind, 3> Operands;
145 return Operands < O.Operands;
148 return Operands == O.Operands;
151 bool empty() const { return Operands.empty(); }
154 for (unsigned i = 0, e = Operands.size(); i != e; ++i)
155 if (Operands[i].isImm() && Operands[i].getImmCode() != 0)
164 for (unsigned i = 0, e = Operands.size(); i != e; ++i)
165 if (!Operands[i].isImm())
166 Result.Operands.push_back(Operands[i]);
168 Result.Operands.push_back(OpKind::getImm(0));
174 for (unsigned i = 0, e = Operands.size(); i != e; ++i) {
175 if (!Operands[i].isImm())
178 unsigned Code = Operands[i].getImmCode();
200 /// of the Operands array accordingly. Return true if all the operands
210 Operands.push_back(OpKind::getImm(0));
215 Operands.push_back(OpKind::getFP());
222 // Handle imm operands specially.
244 Operands.push_back(OpKind::getImm(PredNo));
255 Operands.push_back(OpKind::getFP());
264 // For now, all the operands must have the same type (if they aren't
275 // For now, the only other thing we accept is register operands.
292 // For now, all the operands must have the same register class or be
299 Operands.push_back(OpKind::getReg());
306 for (unsigned i = 0, e = Operands.size(); i != e; ++i) {
308 if (Operands[i].isReg()) {
310 } else if (Operands[i].isImm()) {
312 } else if (Operands[i].isFP()) {
322 assert(PR.size() == Operands.size());
324 for (unsigned i = 0, e = Operands.size(); i != e; ++i) {
330 if (Operands[i].isReg()) {
332 } else if (Operands[i].isImm()) {
334 } else if (Operands[i].isFP()) {
344 for (unsigned i = 0, e = Operands.size(); i != e; ++i) {
346 if (Operands[i].isReg()) {
348 } else if (Operands[i].isImm()) {
350 } else if (Operands[i].isFP()) {
361 for (unsigned i = 0, e = Operands.size(); i != e; ++i) {
369 Operands[i].printManglingSuffix(OS, ImmPredicates, StripImmCodes);
375 for (unsigned i = 0, e = Operands.size(); i != e; ++i)
376 Operands[i].printManglingSuffix(OS, ImmPredicates, StripImmCodes);
413 void emitInstructionCode(raw_ostream &OS, const OperandsSignature &Operands,
467 if (II.Operands.empty())
495 const Record *Op0Rec = II.Operands[0].Rec;
540 // Check all the operands.
541 OperandsSignature Operands;
542 if (!Operands.initialize(InstPatNode, Target, VT, ImmediatePredicates,
576 // Check if the operands match one of the patterns handled by FastISel.
579 Operands.PrintManglingSuffix(SuffixOS, ImmediatePredicates, true);
596 {Operands, OpcodeName, VT, RetVT, PredicateCheck});
604 SimplePatterns[Operands][OpcodeName][VT][RetVT].emplace(complexity,
607 // If any of the operands were immediates with predicates on them, strip
610 if (Operands.hasAnyImmediateCodes()) {
611 SignaturesWithConstantForms[Operands.getWithoutImmCodes()].push_back(
612 Operands);
632 const OperandsSignature &Operands,
670 Operands.PrintManglingSuffix(OS, Memo.PhysRegs, ImmediatePredicates,
674 if (!Operands.empty())
676 Operands.PrintArguments(OS, Memo.PhysRegs);
698 const OperandsSignature &Operands = SimplePattern.first;
720 Operands.PrintManglingSuffix(OS, ImmediatePredicates);
722 Operands.PrintParameters(OS);
725 emitInstructionCode(OS, Operands, PM,
732 Operands.PrintManglingSuffix(OS, ImmediatePredicates);
734 if (!Operands.empty())
736 Operands.PrintParameters(OS);
744 Operands.PrintManglingSuffix(OS, ImmediatePredicates);
746 Operands.PrintArguments(OS);
755 Operands.PrintManglingSuffix(OS, ImmediatePredicates);
757 if (!Operands.empty())
759 Operands.PrintParameters(OS);
767 emitInstructionCode(OS, Operands, PM, "RetVT");
773 Operands.PrintManglingSuffix(OS, ImmediatePredicates);
775 if (!Operands.empty())
777 Operands.PrintParameters(OS);
785 Operands.PrintManglingSuffix(OS, ImmediatePredicates);
787 if (!Operands.empty())
789 Operands.PrintArguments(OS);
804 Operands.PrintManglingSuffix(OS, ImmediatePredicates);
806 if (!Operands.empty())
808 Operands.PrintParameters(OS);
810 if (!Operands.hasAnyImmediateCodes())
819 SignaturesWithConstantForms.find(Operands);
850 Operands.PrintManglingSuffix(OS, ImmediatePredicates);
852 if (!Operands.empty())
854 Operands.PrintArguments(OS);