diff options
| author | Chris Lattner <sabre@nondot.org> | 2003-08-12 05:19:49 +0000 | 
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2003-08-12 05:19:49 +0000 | 
| commit | e5b8234685261d5f26a450669a9a5e1ca88c1490 (patch) | |
| tree | 8fcd584f17ad9cdfd503b3ede02a98886a29004a /llvm/support/tools/TableGen/InstrSelectorEmitter.cpp | |
| parent | 9f09954df9cd0ef68f311a1bc3363cd82dad524b (diff) | |
| download | bcm5719-llvm-e5b8234685261d5f26a450669a9a5e1ca88c1490.tar.gz bcm5719-llvm-e5b8234685261d5f26a450669a9a5e1ca88c1490.zip | |
Fix emission of instructions that directly reference MBBs
llvm-svn: 7771
Diffstat (limited to 'llvm/support/tools/TableGen/InstrSelectorEmitter.cpp')
| -rw-r--r-- | llvm/support/tools/TableGen/InstrSelectorEmitter.cpp | 14 | 
1 files changed, 10 insertions, 4 deletions
| diff --git a/llvm/support/tools/TableGen/InstrSelectorEmitter.cpp b/llvm/support/tools/TableGen/InstrSelectorEmitter.cpp index 9bc50cee715..28c7de11403 100644 --- a/llvm/support/tools/TableGen/InstrSelectorEmitter.cpp +++ b/llvm/support/tools/TableGen/InstrSelectorEmitter.cpp @@ -1205,15 +1205,21 @@ void InstrSelectorEmitter::run(std::ostream &OS) {            if (P->getResult()) OS << ", NewReg";            OS << ")"; -          for (unsigned i = 0, e = Operands.size(); i != e; ++i) -            if (Operands[i].first->isLeaf()) { -              Record *RV = Operands[i].first->getValueRecord(); +          for (unsigned i = 0, e = Operands.size(); i != e; ++i) { +            TreePatternNode *Op = Operands[i].first; +            if (Op->isLeaf()) { +              Record *RV = Op->getValueRecord();                assert(RV->isSubClassOf("RegisterClass") &&                       "Only handles registers here so far!");                OS << ".addReg(" << Operands[i].second << "->Val)"; -            } else { +            } else if (Op->getOperator()->getName() == "imm") {                OS << ".addZImm(" << Operands[i].second << "->Val)"; +            } else if (Op->getOperator()->getName() == "basicblock") { +              OS << ".addMBB(" << Operands[i].second << "->Val)"; +            } else { +              assert(0 && "Unknown value type!");              } +          }            OS << ";\n";            break;          case Pattern::Expander: { | 

