mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-30 06:19:45 +00:00
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:
@@ -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';
|
||||
SmallVector<char, 64> InsnStr;
|
||||
raw_svector_ostream OS(InsnStr);
|
||||
IP->printInst(&Inst, OS, Comments);
|
||||
OS.flush();
|
||||
|
||||
Comments = Comments.substr(Position+1);
|
||||
} while (!Comments.empty());
|
||||
|
||||
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");
|
||||
|
Reference in New Issue
Block a user