MC/ARM: Fill in ARMOperand::dump a bit.
authorDaniel Dunbar <daniel@zuster.org>
Wed, 11 Aug 2010 06:37:12 +0000 (06:37 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Wed, 11 Aug 2010 06:37:12 +0000 (06:37 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110792 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/AsmParser/ARMAsmParser.cpp

index 2f6ac8d86d4c808c3a976250879a886e66eedcc5..fec3c8287660a4c3cc428d302110993e17942938 100644 (file)
@@ -19,6 +19,7 @@
 #include "llvm/Target/TargetAsmParser.h"
 #include "llvm/Support/Compiler.h"
 #include "llvm/Support/SourceMgr.h"
+#include "llvm/Support/raw_ostream.h"
 #include "llvm/ADT/OwningPtr.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/Twine.h"
@@ -234,7 +235,7 @@ public:
     addExpr(Inst, getImm());
   }
 
-  virtual void dump(raw_ostream &OS) const {}
+  virtual void dump(raw_ostream &OS) const;
 
   static void CreateToken(OwningPtr<ARMOperand> &Op, StringRef Str,
                           SMLoc S) {
@@ -295,6 +296,25 @@ public:
 
 } // end anonymous namespace.
 
+void ARMOperand::dump(raw_ostream &OS) const {
+  switch (Kind) {
+  case CondCode:
+    OS << ARMCondCodeToString(getCondCode());
+    break;
+  case Immediate:
+    getImm()->print(OS);
+    break;
+  case Memory:
+    OS << "<memory>";
+    break;
+  case Register:
+    OS << "<register " << getReg() << ">";
+    break;
+  case Token:
+    OS << "'" << getToken() << "'";
+    break;
+  }
+}
 
 /// @name Auto-generated Match Functions
 /// {