Support standard DWARF TLS opcode; Darwin and PS4 use it.
[oota-llvm.git] / lib / MC / MCInstPrinter.cpp
index c729d498044befb6030e83e9a910c55ef347dbbd..0dc31215ce916b46f8e7a16da0fa78e2e05c7248 100644 (file)
@@ -31,9 +31,13 @@ void MCInstPrinter::printRegName(raw_ostream &OS, unsigned RegNo) const {
 
 void MCInstPrinter::printAnnotation(raw_ostream &OS, StringRef Annot) {
   if (!Annot.empty()) {
-    if (CommentStream)
+    if (CommentStream) {
       (*CommentStream) << Annot;
-    else
+      // By definition (see MCInstPrinter.h), CommentStream must end with
+      // a newline after each comment.
+      if (Annot.back() != '\n')
+        (*CommentStream) << '\n';
+    } else
       OS << " " << MAI.getCommentString() << " " << Annot;
   }
 }
@@ -65,11 +69,11 @@ static bool needsLeadingZero(uint64_t Value)
   return false;
 }
 
-format_object1<int64_t> MCInstPrinter::formatDec(const int64_t Value) const {
+format_object<int64_t> MCInstPrinter::formatDec(int64_t Value) const {
   return format("%" PRId64, Value);
 }
 
-format_object1<int64_t> MCInstPrinter::formatHex(const int64_t Value) const {
+format_object<int64_t> MCInstPrinter::formatHex(int64_t Value) const {
   switch(PrintHexStyle) {
   case HexStyle::C:
     if (Value < 0)
@@ -89,9 +93,10 @@ format_object1<int64_t> MCInstPrinter::formatHex(const int64_t Value) const {
         return format("%" PRIx64 "h", Value);
     }
   }
+  llvm_unreachable("unsupported print style");
 }
 
-format_object1<uint64_t> MCInstPrinter::formatHex(const uint64_t Value) const {
+format_object<uint64_t> MCInstPrinter::formatHex(uint64_t Value) const {
   switch(PrintHexStyle) {
   case HexStyle::C:
      return format("0x%" PRIx64, Value);
@@ -101,4 +106,5 @@ format_object1<uint64_t> MCInstPrinter::formatHex(const uint64_t Value) const {
     else
       return format("%" PRIx64 "h", Value);
   }
+  llvm_unreachable("unsupported print style");
 }