llvm-mc: Print encodings after the instruction, and only when we have an asm

printer.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80233 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Daniel Dunbar 2009-08-27 07:58:57 +00:00
parent 1ca3a0bf22
commit a356aea804

View File

@ -295,26 +295,27 @@ static raw_ostream &operator<<(raw_ostream &OS, const MCOperand &Op) {
void MCAsmStreamer::EmitInstruction(const MCInst &Inst) {
assert(CurSection && "Cannot emit contents before setting section!");
// 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 + 1 != e)
OS << ',';
OS << format("%#04x", Code[i]);
}
OS << "]\n";
}
// If we have an AsmPrinter, use that to print.
if (Printer) {
Printer->printMCInst(&Inst);
// 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;
}