llvm-mc: Print encodings after the instruction, and only when we have an asm
authorDaniel Dunbar <daniel@zuster.org>
Thu, 27 Aug 2009 07:58:57 +0000 (07:58 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Thu, 27 Aug 2009 07:58:57 +0000 (07:58 +0000)
printer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80233 91177308-0d34-0410-b5e6-96231b3b80d8

lib/MC/MCAsmStreamer.cpp

index 9ea9b4342ca916342ced53fa89849ecda65301de..60c737a948897fe2c5f430db0d7158d50ebf1626 100644 (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;
   }