Home | History | Annotate | Download | only in TableGen

Lines Matching defs: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
136 /// class of operands which can be matched.
159 /// sake user operands only record their immediate super class, while register
160 /// operands include all superclasses.
224 // Otherwise we have two users operands; they are related if they are in the
344 /// MINumOperands - The number of MCInst operands populated by this
409 /// AsmOperands - The textual operands that this instruction matches,
419 /// convertToMCInst to convert parsed operands into an MCInst for this
504 /// ambiguously match the same set of operands as \arg RHS (without being a
511 // The number of operands is unambiguous.
528 // Otherwise, this operand could commute if all operands are equivalent, or
529 // there is a pair of operands that compare less than and a pair that
598 /// Info for custom matching operands by user defined methods.
701 // Figure out which operands are aliased and mark them as tied.
705 // Find the AsmOperands that refer to the operands we're aliasing.
735 // Nothing to do for operands that don't reference AsmOperands.
881 // handle, the target should be refactored to use operands instead of
1209 CI->RenderMethod = "add" + CI->ClassName + "Operands";
1238 /// Map containing a mask with all operands indices that can be found for
1248 // Keep track of all operands of this instructions which belong to the
1311 for (unsigned i = 0, e = CGI.Operands.size(); i != e; ++i) {
1312 const CGIOperandList::OperandInfo &OI = CGI.Operands[i];
1314 // Validate tied operands.
1476 const CGIOperandList &Operands = CGI.Operands;
1481 if (!Operands.hasOperandNamed(OperandName, Idx))
1488 if (Op->SubOpIdx == -1 && Operands[Idx].MINumOperands > 1) {
1489 Record *Rec = Operands[Idx].Rec;
1495 for (unsigned SI = 1, SE = Operands[Idx].MINumOperands; SI != SE; ++SI) {
1507 Op->Class = getOperandClass(Operands[Idx], Op->SubOpIdx);
1517 int OITied = Operands[Idx].getTiedRegister();
1521 std::pair<unsigned, unsigned> Idx = Operands.getSubOperandNumber(OITied);
1522 OperandName = Operands[Idx.first].Name;
1542 // validates that all operands with the same name have the same record.
1560 // Loop over all operands of the result instruction, determining how to
1562 for (unsigned i = 0, e = ResultInst->Operands.size(); i != e; ++i) {
1563 const CGIOperandList::OperandInfo &OpInfo = ResultInst->Operands[i];
1600 // Loop over all operands of the result instruction, determining how to
1604 for (unsigned i = 0, e = ResultInst->Operands.size(); i != e; ++i) {
1605 const CGIOperandList::OperandInfo *OpInfo = &ResultInst->Operands[i];
1685 << "> &Operands) {\n"
1694 << "*>(Operands[*(p + 1)])->addRegOperands(Inst, 1);\n"
1706 << "&Operands,\n unsigned OperandNum, unsigned "
1725 << " assert (0 && \"getMCInstOperandNumImpl() doesn't support tied operands, yet!\");\n"
1761 << " " << AsmMatchConverter << "(Inst, Operands);\n"
1814 << "*>(Operands[*(p + 1)])->"
1838 // FIXME: Handle the operand number lookup for tied operands.
1905 // If there were no operands, add to the signature to that effect
2013 // Check for Token operands first.
2039 // Check for register operands, including sub-classes.
2055 // Generic fallthrough match failure case for operands that don't have
2467 << " &Operands,\n unsigned MCK) {\n\n"
2476 << " return " << CI->ParserMethod << "(Operands);\n";
2491 << " &Operands,\n StringRef Mnemonic) {\n";
2498 OS << " unsigned NextOpNum = Operands.size()-1;\n";
2532 OS << "tryCustomParseOperand(Operands, it->Class);\n";
2601 << "&Operands);\n";
2604 << "SmallVectorImpl<MCParsedAsmOperand*> &Operands,\n "
2608 << " const SmallVectorImpl<MCParsedAsmOperand*> &Operands,\n"
2619 OS << " SmallVectorImpl<MCParsedAsmOperand*> &Operands,\n";
2623 OS << " SmallVectorImpl<MCParsedAsmOperand*> &Operands,\n";
2663 // Generate the unified function to convert operands into an MCInst.
2789 << " &Operands,\n";
2794 OS << " if (Operands.size() > " << (MaxNumOperands+1) << ") {\n";
2805 << "Operand*)Operands[0])->getToken();\n\n";
2845 OS << " if (i + 1 >= Operands.size()) {\n";
2850 OS << " unsigned Diag = validateOperandClass(Operands[i+1],\n";
2886 << " // operands into the appropriate MCInst.\n";
2887 OS << " convertToMCInst(it->ConvertFn, Inst, it->Opcode, Operands);\n";