diff options
author | Chris Lattner <sabre@nondot.org> | 2010-02-03 06:28:13 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-02-03 06:28:13 +0000 |
commit | 8ef2cef6769e4e4945eadc047bfc3c1656fe5002 (patch) | |
tree | 934e5c3bcb7f2224b8c6b9e0b4344dac908097da | |
parent | ce2a725a72bb193f915f6c661144aa165fea0057 (diff) |
print instruction encodings with the existing comment facilities,
so that llvm-mc -show-encoding prints like this:
hlt ## encoding: [0xf4]
instead of like this:
hlt
# encoding: [0xf4]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95207 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/MC/MCAsmStreamer.cpp | 35 |
1 files changed, 17 insertions, 18 deletions
diff --git a/lib/MC/MCAsmStreamer.cpp b/lib/MC/MCAsmStreamer.cpp index f3a2223dc7..5c11db72e2 100644 --- a/lib/MC/MCAsmStreamer.cpp +++ b/lib/MC/MCAsmStreamer.cpp @@ -527,28 +527,27 @@ void MCAsmStreamer::EmitDwarfFileDirective(unsigned FileNo, StringRef Filename){ void MCAsmStreamer::EmitInstruction(const MCInst &Inst) { assert(CurSection && "Cannot emit contents before setting section!"); + // Show the encoding in a comment if we have a code emitter. + if (Emitter) { + SmallString<256> Code; + raw_svector_ostream VecOS(Code); + Emitter->EncodeInstruction(Inst, VecOS); + VecOS.flush(); + + raw_ostream &OS = GetCommentOS(); + OS << "encoding: ["; + for (unsigned i = 0, e = Code.size(); i != e; ++i) { + if (i) + OS << ','; + OS << format("%#04x", uint8_t(Code[i])); + } + OS << "]\n"; + } + // If we have an AsmPrinter, use that to print. if (InstPrinter) { InstPrinter->printInst(&Inst); EmitEOL(); - - // Show the encoding if we have a code emitter. - if (Emitter) { - SmallString<256> Code; - raw_svector_ostream VecOS(Code); - Emitter->EncodeInstruction(Inst, VecOS); - VecOS.flush(); - - OS.indent(20); - OS << " # encoding: ["; - for (unsigned i = 0, e = Code.size(); i != e; ++i) { - if (i) - OS << ','; - OS << format("%#04x", uint8_t(Code[i])); - } - OS << "]\n"; - } - return; } |