summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-05-01 17:01:17 +0000
committerChris Lattner <sabre@nondot.org>2006-05-01 17:01:17 +0000
commit017b93dd7c701037f8d130b80f6b6aeb792a0788 (patch)
tree05589cdaa695c7b1367b850bf59670f0697802f4
parent85e99097552f8a86c783ae833047b9d5ffbc97cc (diff)
downloadbcm5719-llvm-017b93dd7c701037f8d130b80f6b6aeb792a0788.tar.gz
bcm5719-llvm-017b93dd7c701037f8d130b80f6b6aeb792a0788.zip
instructions can be in different namespaces. Make sure to use the right
one for each instruction. llvm-svn: 28038
-rw-r--r--llvm/utils/TableGen/AsmWriterEmitter.cpp12
1 files changed, 4 insertions, 8 deletions
diff --git a/llvm/utils/TableGen/AsmWriterEmitter.cpp b/llvm/utils/TableGen/AsmWriterEmitter.cpp
index ad3ffa5810b..ab595ca9fbc 100644
--- a/llvm/utils/TableGen/AsmWriterEmitter.cpp
+++ b/llvm/utils/TableGen/AsmWriterEmitter.cpp
@@ -287,12 +287,10 @@ static void EmitInstructions(std::vector<AsmWriterInst> &Insts,
}
}
- std::string Namespace = FirstInst.CGI->Namespace;
-
- O << " case " << Namespace << "::"
+ O << " case " << FirstInst.CGI->Namespace << "::"
<< FirstInst.CGI->TheDef->getName() << ":\n";
for (unsigned i = 0, e = SimilarInsts.size(); i != e; ++i)
- O << " case " << Namespace << "::"
+ O << " case " << SimilarInsts[i].CGI->Namespace << "::"
<< SimilarInsts[i].CGI->TheDef->getName() << ":\n";
for (unsigned i = 0, e = FirstInst.Operands.size(); i != e; ++i) {
if (i != DifferingOperand) {
@@ -304,13 +302,13 @@ static void EmitInstructions(std::vector<AsmWriterInst> &Insts,
// emit a switch for just this operand now.
O << " switch (MI->getOpcode()) {\n";
std::vector<std::pair<std::string, AsmWriterOperand> > OpsToPrint;
- OpsToPrint.push_back(std::make_pair(Namespace+"::"+
+ OpsToPrint.push_back(std::make_pair(FirstInst.CGI->Namespace + "::" +
FirstInst.CGI->TheDef->getName(),
FirstInst.Operands[i]));
for (unsigned si = 0, e = SimilarInsts.size(); si != e; ++si) {
AsmWriterInst &AWI = SimilarInsts[si];
- OpsToPrint.push_back(std::make_pair(Namespace+"::"+
+ OpsToPrint.push_back(std::make_pair(AWI.CGI->Namespace+"::"+
AWI.CGI->TheDef->getName(),
AWI.Operands[i]));
}
@@ -341,8 +339,6 @@ void AsmWriterEmitter::run(std::ostream &O) {
"bool " << Target.getName() << ClassName
<< "::printInstruction(const MachineInstr *MI) {\n";
- std::string Namespace = Target.inst_begin()->second.Namespace;
-
std::vector<AsmWriterInst> Instructions;
for (CodeGenTarget::inst_iterator I = Target.inst_begin(),
OpenPOWER on IntegriCloud