diff options
Diffstat (limited to 'lib/MC')
-rw-r--r-- | lib/MC/MCAsmStreamer.cpp | 2 | ||||
-rw-r--r-- | lib/MC/MCDisassembler/Disassembler.cpp | 24 | ||||
-rw-r--r-- | lib/MC/MCDisassembler/EDDisassembler.cpp | 4 | ||||
-rw-r--r-- | lib/MC/MCInst.cpp | 21 | ||||
-rw-r--r-- | lib/MC/MCInstPrinter.cpp | 8 |
5 files changed, 11 insertions, 48 deletions
diff --git a/lib/MC/MCAsmStreamer.cpp b/lib/MC/MCAsmStreamer.cpp index 68154345c8..3fcbb05907 100644 --- a/lib/MC/MCAsmStreamer.cpp +++ b/lib/MC/MCAsmStreamer.cpp @@ -1244,7 +1244,7 @@ void MCAsmStreamer::EmitInstruction(const MCInst &Inst) { // If we have an AsmPrinter, use that to print, otherwise print the MCInst. if (InstPrinter) - InstPrinter->printInst(&Inst, OS); + InstPrinter->printInst(&Inst, OS, ""); else Inst.print(OS, &MAI); EmitEOL(); diff --git a/lib/MC/MCDisassembler/Disassembler.cpp b/lib/MC/MCDisassembler/Disassembler.cpp index 858a58cf35..14fab08b87 100644 --- a/lib/MC/MCDisassembler/Disassembler.cpp +++ b/lib/MC/MCDisassembler/Disassembler.cpp @@ -144,7 +144,7 @@ size_t LLVMDisasmInstruction(LLVMDisasmContextRef DCR, uint8_t *Bytes, MCInstPrinter *IP = DC->getIP(); MCDisassembler::DecodeStatus S; S = DisAsm->getInstruction(Inst, Size, MemoryObject, PC, - /*REMOVE*/ nulls()); + /*REMOVE*/ nulls(), DC->CommentStream); switch (S) { case MCDisassembler::Fail: case MCDisassembler::SoftFail: @@ -152,28 +152,16 @@ size_t LLVMDisasmInstruction(LLVMDisasmContextRef DCR, uint8_t *Bytes, return 0; case MCDisassembler::Success: { - SmallVector<char, 64> InsnStr; - raw_svector_ostream OS(InsnStr); - IP->printInst(&Inst, OS); - OS.flush(); - DC->CommentStream.flush(); - assert(DC->CommentsToEmit.back() == '\n'); - - DC->CommentsToEmit.push_back('\n'); StringRef Comments = DC->CommentsToEmit.str(); - do { - // Emit a line of comments. - size_t Position = Comments.find('\n'); - OS << ' ' << DC->getAsmInfo()->getCommentString() - << ' ' << Comments.substr(0, Position) << '\n'; - - Comments = Comments.substr(Position+1); - } while (!Comments.empty()); + SmallVector<char, 64> InsnStr; + raw_svector_ostream OS(InsnStr); + IP->printInst(&Inst, OS, Comments); + OS.flush(); - DC->CommentsToEmit.clear(); // Tell the comment stream that the vector changed underneath it. + DC->CommentsToEmit.clear(); DC->CommentStream.resync(); assert(OutStringSize != 0 && "Output buffer cannot be zero size"); diff --git a/lib/MC/MCDisassembler/EDDisassembler.cpp b/lib/MC/MCDisassembler/EDDisassembler.cpp index 70b6300d74..83362a21f7 100644 --- a/lib/MC/MCDisassembler/EDDisassembler.cpp +++ b/lib/MC/MCDisassembler/EDDisassembler.cpp @@ -246,7 +246,7 @@ EDInst *EDDisassembler::createInst(EDByteReaderCallback byteReader, MCDisassembler::DecodeStatus S; S = Disassembler->getInstruction(*inst, byteSize, memoryObject, address, - ErrorStream); + ErrorStream, nulls()); switch (S) { case MCDisassembler::Fail: case MCDisassembler::SoftFail: @@ -327,7 +327,7 @@ bool EDDisassembler::registerIsProgramCounter(unsigned registerID) { int EDDisassembler::printInst(std::string &str, MCInst &inst) { PrinterMutex.acquire(); - InstPrinter->printInst(&inst, *InstStream); + InstPrinter->printInst(&inst, *InstStream, ""); InstStream->flush(); str = *InstString; InstString->clear(); diff --git a/lib/MC/MCInst.cpp b/lib/MC/MCInst.cpp index ec97acc554..4cb628b395 100644 --- a/lib/MC/MCInst.cpp +++ b/lib/MC/MCInst.cpp @@ -41,16 +41,6 @@ void MCInst::print(raw_ostream &OS, const MCAsmInfo *MAI) const { OS << " "; getOperand(i).print(OS, MAI); } - - if (getNumAnnotations()) { - OS << " # Annots: "; - for (unsigned i = 0, e = getNumAnnotations(); i != e; ++i) { - OS << " \""; - OS << getAnnotation(i); - OS << '"'; - } - } - OS << ">"; } @@ -67,17 +57,6 @@ void MCInst::dump_pretty(raw_ostream &OS, const MCAsmInfo *MAI, OS << Separator; getOperand(i).print(OS, MAI); } - - if (getNumAnnotations()) { - OS << " # Annots: "; - for (unsigned i = 0, e = getNumAnnotations(); i != e; ++i) { - OS << Separator; - OS << '"'; - OS << getAnnotation(i); - OS << '"'; - } - } - OS << ">"; } diff --git a/lib/MC/MCInstPrinter.cpp b/lib/MC/MCInstPrinter.cpp index f0fa2cda4a..e15e107616 100644 --- a/lib/MC/MCInstPrinter.cpp +++ b/lib/MC/MCInstPrinter.cpp @@ -8,8 +8,6 @@ //===----------------------------------------------------------------------===// #include "llvm/MC/MCInstPrinter.h" -#include "llvm/MC/MCAsmInfo.h" -#include "llvm/MC/MCInst.h" #include "llvm/ADT/StringRef.h" #include "llvm/Support/raw_ostream.h" using namespace llvm; @@ -27,8 +25,6 @@ void MCInstPrinter::printRegName(raw_ostream &OS, unsigned RegNo) const { assert(0 && "Target should implement this"); } -void MCInstPrinter::printAnnotations(const MCInst *MI, raw_ostream &OS) { - for (unsigned i = 0, e = MI->getNumAnnotations(); i != e; ++i) { - OS << MI->getAnnotation(i) << "\n"; - } +void MCInstPrinter::printAnnotation(raw_ostream &OS, StringRef Annot) { + if (!Annot.empty()) OS << Annot << "\n"; } |