Don't attach annotations to MCInst's. Instead, have the disassembler return, and the printer accept, an annotation string which can be passed through if the client cares about annotations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139876 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Owen Anderson
2011-09-15 23:38:46 +00:00
parent 71280b55a3
commit 98c5ddabca
31 changed files with 88 additions and 114 deletions

View File

@ -262,13 +262,14 @@ static void DisassembleInput(const StringRef &Filename) {
if (!CFG) {
for (Index = Start; Index < End; Index += Size) {
MCInst Inst;
if (DisAsm->getInstruction(Inst, Size, memoryObject, Index,
DebugOut)) {
DebugOut, nulls())) {
uint64_t addr;
if (error(i->getAddress(addr))) break;
outs() << format("%8x:\t", addr + Index);
DumpBytes(StringRef(Bytes.data() + Index, Size));
IP->printInst(&Inst, outs());
IP->printInst(&Inst, outs(), "");
outs() << "\n";
} else {
errs() << ToolName << ": warning: invalid instruction encoding\n";
@ -323,7 +324,7 @@ static void DisassembleInput(const StringRef &Filename) {
// Simple loops.
if (fi->second.contains(&fi->second))
outs() << '\t';
IP->printInst(&Inst.Inst, outs());
IP->printInst(&Inst.Inst, outs(), "");
outs() << '\n';
}
}
@ -359,7 +360,7 @@ static void DisassembleInput(const StringRef &Filename) {
// Escape special chars and print the instruction in mnemonic form.
std::string Str;
raw_string_ostream OS(Str);
IP->printInst(&i->second.getInsts()[ii].Inst, OS);
IP->printInst(&i->second.getInsts()[ii].Inst, OS, "");
Out << DOT::EscapeString(OS.str()) << '|';
}
Out << "<o>\" shape=\"record\" ];\n";