CodeGenInstruction::CodeGenInstruction(Record *R, const std::string &AsmStr)
: TheDef(R), AsmString(AsmStr) {
- Name = R->getValueAsString("Name");
Namespace = R->getValueAsString("Namespace");
isReturn = R->getValueAsBit("isReturn");
}
}
-/// getName - Return the contents of the instruction Name field if set,
-/// otherwise return the name of the def.
-std::string CodeGenInstruction::getName() const {
- if (!Name.empty()) return Name;
- return TheDef->getName();
-}
-
-
/// getOperandNamed - Return the index of the operand with the specified
/// non-empty name. If the instruction does not have an operand with the
/// specified name, throw an exception.
class CodeGenInstruction {
public:
Record *TheDef; // The actual record defining this instruction.
- std::string Name; // Contents of the 'Name' field.
std::string Namespace; // The namespace the instruction is in.
/// AsmString - The format string used to emit a .s file for the
/// instruction.
std::string AsmString;
- /// getName - Return the contents of the instruction Name field if set,
- /// otherwise return the name of the def.
- std::string getName() const;
-
/// OperandInfo - The information we keep track of for each operand in the
/// operand list for a tablegen instruction.
struct OperandInfo {
fprintf(stderr,
"Warning: mayStore flag explicitly set on instruction '%s'"
" but flag already inferred from pattern.\n",
- Inst.getName().c_str());
+ Inst.TheDef->getName().c_str());
mayStore = true;
}
InferFromPattern(Inst, mayStore, isLoad, NeverHasSideEffects);
if (NeverHasSideEffects && Inst.mayHaveSideEffects) {
- std::cerr << "error: Instruction '" << Inst.getName()
+ std::cerr << "error: Instruction '" << Inst.TheDef->getName()
<< "' is marked with 'mayHaveSideEffects', but it can never have them!\n";
exit(1);
}
OS << " { ";
OS << Num << ",\t" << MinOperands << ",\t"
- << Inst.NumDefs << ",\t\"" << Inst.getName();
+ << Inst.NumDefs << ",\t\"" << Inst.TheDef->getName();
OS << "\",\t" << getItinClassNumber(Inst.TheDef) << ", 0";
// Emit all of the target indepedent flags...