From 0e384b66a781fc0ff005f475a7ab151afa054fb0 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 19 Aug 2005 16:57:28 +0000 Subject: For now, just emit empty operand info structures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22910 91177308-0d34-0410-b5e6-96231b3b80d8 --- utils/TableGen/InstrInfoEmitter.cpp | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) (limited to 'utils/TableGen/InstrInfoEmitter.cpp') diff --git a/utils/TableGen/InstrInfoEmitter.cpp b/utils/TableGen/InstrInfoEmitter.cpp index ae7c4d1998..667a4df8b8 100644 --- a/utils/TableGen/InstrInfoEmitter.cpp +++ b/utils/TableGen/InstrInfoEmitter.cpp @@ -103,6 +103,21 @@ void InstrInfoEmitter::run(std::ostream &OS) { } } + // Emit all of the operand info records. + OS << "\n"; + for (CodeGenTarget::inst_iterator II = Target.inst_begin(), + E = Target.inst_end(); II != E; ++II) { + const CodeGenInstruction &Inst = II->second; + if (!Inst.hasVariableNumberOfOperands) { + OS << "static const TargetOperandInfo " << Inst.TheDef->getName() + << "_Operands[] = {"; + // FIXME: Emit operand info. + OS << "};\n"; + } + } + + // Emit all of the TargetInstrDescriptor records. + // OS << "\nstatic const TargetInstrDescriptor " << TargetName << "Insts[] = {\n"; emitRecord(Target.getPHIInstruction(), 0, InstrInfo, ListNumbers, OS); @@ -173,10 +188,16 @@ void InstrInfoEmitter::emitRecord(const CodeGenInstruction &Inst, unsigned Num, LI = Inst.TheDef->getValueAsListInit("Defs"); if (!LI->getSize()) - OS << "EmptyImpList "; + OS << "EmptyImpList, "; else - OS << "ImplicitList" << ListNumbers[LI] << " "; + OS << "ImplicitList" << ListNumbers[LI] << ", "; + // Emit the operand info. + if (NumOperands == -1) + OS << "0 "; + else + OS << Inst.TheDef->getName() << "_Operands "; + OS << " }, // Inst #" << Num << " = " << Inst.TheDef->getName() << "\n"; } -- cgit v1.2.3-70-g09d2