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

References

utils/TableGen/FastISelEmitter.cpp
  708       OS << "// FastEmit functions for " << Opcode << ".\n";
  709       OS << "\n";
  722             OS << "unsigned fastEmit_"
  726             Operands.PrintManglingSuffix(OS, ImmediatePredicates);
  727             OS << "(";
  728             Operands.PrintParameters(OS);
  729             OS << ") {\n";
  731             emitInstructionCode(OS, Operands, PM, getName(RetVT));
  735           OS << "unsigned fastEmit_"
  738           Operands.PrintManglingSuffix(OS, ImmediatePredicates);
  739           OS << "(MVT RetVT";
  741             OS << ", ";
  742           Operands.PrintParameters(OS);
  743           OS << ") {\nswitch (RetVT.SimpleTy) {\n";
  747             OS << "  case " << getName(RetVT) << ": return fastEmit_"
  750             Operands.PrintManglingSuffix(OS, ImmediatePredicates);
  751             OS << "(";
  752             Operands.PrintArguments(OS);
  753             OS << ");\n";
  755           OS << "  default: return 0;\n}\n}\n\n";
  759           OS << "unsigned fastEmit_"
  762           Operands.PrintManglingSuffix(OS, ImmediatePredicates);
  763           OS << "(MVT RetVT";
  765             OS << ", ";
  766           Operands.PrintParameters(OS);
  767           OS << ") {\n";
  769           OS << "  if (RetVT.SimpleTy != " << getName(RM.begin()->first)
  774           emitInstructionCode(OS, Operands, PM, "RetVT");
  779       OS << "unsigned fastEmit_"
  781       Operands.PrintManglingSuffix(OS, ImmediatePredicates);
  782       OS << "(MVT VT, MVT RetVT";
  784         OS << ", ";
  785       Operands.PrintParameters(OS);
  786       OS << ") {\n";
  787       OS << "  switch (VT.SimpleTy) {\n";
  792         OS << "  case " << TypeName << ": return fastEmit_"
  794         Operands.PrintManglingSuffix(OS, ImmediatePredicates);
  795         OS << "(RetVT";
  797           OS << ", ";
  798         Operands.PrintArguments(OS);
  799         OS << ");\n";
  801       OS << "  default: return 0;\n";
  802       OS << "  }\n";
  803       OS << "}\n";
  804       OS << "\n";
  807     OS << "// Top-level FastEmit function.\n";
  808     OS << "\n";
  812     OS << "unsigned fastEmit_";
  813     Operands.PrintManglingSuffix(OS, ImmediatePredicates);
  814     OS << "(MVT VT, MVT RetVT, unsigned Opcode";
  816       OS << ", ";
  817     Operands.PrintParameters(OS);
  818     OS << ") ";
  820       OS << "override ";
  821     OS << "{\n";
  839         OS << "  if (";
  840         MI->second[i].emitImmediatePredicate(OS, ImmediatePredicates);
  841         OS << ")\n    if (unsigned Reg = fastEmit_";
  842         MI->second[i].PrintManglingSuffix(OS, ImmediatePredicates);
  843         OS << "(VT, RetVT, Opcode";
  845           OS << ", ";
  846         MI->second[i].PrintArguments(OS);
  847         OS << "))\n      return Reg;\n\n";
  854     OS << "  switch (Opcode) {\n";
  859       OS << "  case " << Opcode << ": return fastEmit_"
  861       Operands.PrintManglingSuffix(OS, ImmediatePredicates);
  862       OS << "(VT, RetVT";
  864         OS << ", ";
  865       Operands.PrintArguments(OS);
  866       OS << ");\n";
  868     OS << "  default: return 0;\n";
  869     OS << "  }\n";
  870     OS << "}\n";
  871     OS << "\n";