Home | History | Annotate | Download | only in TableGen

Lines Matching refs:Operands

11 // assembly operands in the MCInst structures. It also emits a matcher for
14 // Converting assembly operands into MCInst structures
18 // operands. The target specific parser should generally eliminate any syntax
22 // operands.
59 // arbitrary operands, we expect the user to define the classes and their
63 // By partitioning the operands in this way, we guarantee that for any
65 // of the sets of operands which could classify to that tuple.
78 // Some targets need a custom way to parse operands, some specific instructions
125 /// class of operands which can be matched.
148 /// sake user operands only record their immediate super class, while register
149 /// operands include all superclasses.
211 // Otherwise we have two users operands; they are related if they are in the
332 /// MINumOperands - The number of MCInst operands populated by this
394 /// AsmOperands - The textual operands that this instruction matches,
404 /// ConvertToMCInst to convert parsed operands into an MCInst for this
472 /// ambiguously match the same set of operands as \arg RHS (without being a
479 // The number of operands is unambiguous.
496 // Otherwise, this operand could commute if all operands are equivalent, or
497 // there is a pair of operands that compare less than and a pair that
569 /// Info for custom matching operands by user defined methods.
770 // handle, the target should be refactored to use operands instead of
1089 CI->RenderMethod = "add" + CI->ClassName + "Operands";
1113 /// Map containing a mask with all operands indicies that can be found for
1123 // Keep track of all operands of this instructions which belong to the
1180 for (unsigned i = 0, e = CGI.Operands.size(); i != e; ++i) {
1181 const CGIOperandList::OperandInfo &OI = CGI.Operands[i];
1183 // Validate tied operands.
1311 const CGIOperandList &Operands = CGI.Operands;
1316 if (!Operands.hasOperandNamed(OperandName, Idx))
1323 if (Op->SubOpIdx == -1 && Operands[Idx].MINumOperands > 1) {
1324 Record *Rec = Operands[Idx].Rec;
1330 for (unsigned SI = 1, SE = Operands[Idx].MINumOperands; SI != SE; ++SI) {
1342 Op->Class = getOperandClass(Operands[Idx], Op->SubOpIdx);
1352 int OITied = Operands[Idx].getTiedRegister();
1356 std::pair<unsigned, unsigned> Idx = Operands.getSubOperandNumber(OITied);
1357 OperandName = Operands[Idx.first].Name;
1377 // validates that all operands with the same name have the same record.
1380 Op.Class = getOperandClass(CGA.ResultInst->Operands[ResultIdx],
1393 // Loop over all operands of the result instruction, determining how to
1395 for (unsigned i = 0, e = ResultInst->Operands.size(); i != e; ++i) {
1396 const CGIOperandList::OperandInfo &OpInfo = ResultInst->Operands[i];
1433 // Loop over all operands of the result instruction, determining how to
1437 for (unsigned i = 0, e = ResultInst->Operands.size(); i != e; ++i) {
1438 const CGIOperandList::OperandInfo *OpInfo = &ResultInst->Operands[i];
1500 << "> &Operands) {\n";
1507 OS << "// Unified function for converting operands to MCInst instances.\n\n";
1533 << "(Inst, Opcode, Operands);\n";
1562 CaseOS << " ((" << TargetOperandClass << "*)Operands["
1668 // Check for Token operands first.
1672 // Check for register operands, including sub-classes.
2049 << " &Operands,\n unsigned MCK) {\n\n"
2058 << " return " << CI->ParserMethod << "(Operands);\n";
2073 << " &Operands,\n StringRef Mnemonic) {\n";
2080 OS << " unsigned NextOpNum = Operands.size()-1;\n";
2114 OS << "TryCustomParseOperand(Operands, it->Class);\n";
2185 << "&Operands);\n";
2188 OS << " const SmallVectorImpl<MCParsedAsmOperand*> &Operands,\n";
2198 OS << " SmallVectorImpl<MCParsedAsmOperand*> &Operands,\n";
2202 OS << " SmallVectorImpl<MCParsedAsmOperand*> &Operands,\n";
2226 // Generate the unified function to convert operands into an MCInst.
2332 << " &Operands,\n";
2341 << "Operand*)Operands[0])->getToken();\n\n";
2350 OS << " if (Operands.size() > " << (MaxNumOperands+1) << ") {\n";
2383 OS << " if (i + 1 >= Operands.size()) {\n";
2387 OS << " if (ValidateOperandClass(Operands[i+1], it->Classes[i]))\n";
2408 << " // operands into the appropriate MCInst.\n";
2410 << " it->Opcode, Operands))\n";