reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

utils/TableGen/AsmMatcherEmitter.cpp
 1953     CvtOS << "void " << Target.getName() << ClassName << "::\n"
 1959     CvtOS << "void " << Target.getName() << ClassName << "::\n"
 1964   CvtOS << "  assert(Kind < CVT_NUM_SIGNATURES && \"Invalid signature!\");\n";
 1965   CvtOS << "  const uint8_t *Converter = ConversionTable[Kind];\n";
 1971     CvtOS << "  unsigned DefaultsOffset[" << (MaxNumOperands + 1)
 1973     CvtOS << "  assert(OptionalOperandsMask.size() == " << (MaxNumOperands)
 1975     CvtOS << "  for (unsigned i = 0, NumDefaults = 0; i < " << (MaxNumOperands)
 1977     CvtOS << "    DefaultsOffset[i + 1] = NumDefaults;\n";
 1978     CvtOS << "    NumDefaults += (OptionalOperandsMask[i] ? 1 : 0);\n";
 1979     CvtOS << "  }\n";
 1981   CvtOS << "  unsigned OpIdx;\n";
 1982   CvtOS << "  Inst.setOpcode(Opcode);\n";
 1983   CvtOS << "  for (const uint8_t *p = Converter; *p; p+= 2) {\n";
 1985     CvtOS << "    OpIdx = *(p + 1) - DefaultsOffset[*(p + 1)];\n";
 1987     CvtOS << "    OpIdx = *(p + 1);\n";
 1989   CvtOS << "    switch (*p) {\n";
 1990   CvtOS << "    default: llvm_unreachable(\"invalid conversion entry!\");\n";
 1991   CvtOS << "    case CVT_Reg:\n";
 1992   CvtOS << "      static_cast<" << TargetOperandClass
 1994   CvtOS << "      break;\n";
 1995   CvtOS << "    case CVT_Tied: {\n";
 1996   CvtOS << "      assert(OpIdx < (size_t)(std::end(TiedAsmOperandTable) -\n";
 1997   CvtOS << "                          std::begin(TiedAsmOperandTable)) &&\n";
 1998   CvtOS << "             \"Tied operand not found\");\n";
 1999   CvtOS << "      unsigned TiedResOpnd = TiedAsmOperandTable[OpIdx][0];\n";
 2000   CvtOS << "      if (TiedResOpnd != (uint8_t) -1)\n";
 2001   CvtOS << "        Inst.addOperand(Inst.getOperand(TiedResOpnd));\n";
 2002   CvtOS << "      break;\n";
 2003   CvtOS << "    }\n";
 2061       CvtOS << "    case CVT_"
 2121         CvtOS << "    case " << Name << ":\n";
 2126           CvtOS << "      if (OptionalOperandsMask[*(p + 1) - 1]) {\n"
 2136           CvtOS << "      static_cast<" << TargetOperandClass
 2140         CvtOS << "      break;\n";
 2195         CvtOS << "    case " << Name << ":\n"
 2226         CvtOS << "    case " << Name << ":\n"
 2255   CvtOS << "    }\n  }\n}\n\n";
 2339   OS << CvtOS.str();