Add {MCInst,MCOperand}::{print,dump}


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80231 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/MC/MCInst.cpp b/lib/MC/MCInst.cpp
new file mode 100644
index 0000000..469dc79
--- /dev/null
+++ b/lib/MC/MCInst.cpp
@@ -0,0 +1,52 @@
+//===- lib/MC/MCInst.cpp - MCInst implementation --------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "llvm/MC/MCInst.h"
+#include "llvm/Support/raw_ostream.h"
+
+using namespace llvm;
+
+void MCOperand::print(raw_ostream &OS) const {
+  OS << "<MCOperand ";
+  if (!isValid())
+    OS << "INVALID";
+  else if (isReg())
+    OS << "Reg:" << getReg();
+  else if (isImm())
+    OS << "Imm:" << getImm();
+  else if (isMBBLabel())
+    OS << "MBB:(" << getMBBLabelFunction() << ","
+       << getMBBLabelBlock() << ")";
+  else if (isMCValue()) {
+    OS << "Value:(";
+    getMCValue().print(OS);
+    OS << ")";
+  } else
+    OS << "UNDEFINED";
+  OS << ">";
+}
+
+void MCOperand::dump() const {
+  print(errs());
+  errs() << "\n";
+}
+
+void MCInst::print(raw_ostream &OS) const {
+  OS << "<MCInst " << getOpcode();
+  for (unsigned i = 0, e = getNumOperands(); i != e; ++i) {
+    OS << " ";
+    getOperand(i).print(OS);
+  }
+  OS << ">";
+}
+
+void MCInst::dump() const {
+  print(errs());
+  errs() << "\n";
+}