ARM: support .watchos_version_min and .tvos_version_min.

These MachO file directives are used by linkers and other tools to provide
compatibility information, much like the existing .ios_version_min and
.macosx_version_min.

llvm-svn: 251569
diff --git a/llvm/tools/llvm-readobj/MachODumper.cpp b/llvm/tools/llvm-readobj/MachODumper.cpp
index ab77fdc..58d2c9f 100644
--- a/llvm/tools/llvm-readobj/MachODumper.cpp
+++ b/llvm/tools/llvm-readobj/MachODumper.cpp
@@ -694,38 +694,46 @@
 
 void MachODumper::printMachOVersionMin() {
   for (const auto &Load : Obj->load_commands()) {
-    if (Load.C.cmd == MachO::LC_VERSION_MIN_MACOSX ||
-        Load.C.cmd == MachO::LC_VERSION_MIN_IPHONEOS) {
-      MachO::version_min_command VMC = Obj->getVersionMinLoadCommand(Load);
-      DictScope Group(W, "MinVersion");
-      StringRef Cmd;
-      if (Load.C.cmd == MachO::LC_VERSION_MIN_MACOSX)
-        Cmd = "LC_VERSION_MIN_MACOSX";
-      else
-        Cmd = "LC_VERSION_MIN_IPHONEOS";
-      W.printString("Cmd", Cmd);
-      W.printNumber("Size", VMC.cmdsize);
-      SmallString<32> Version;
-      Version = utostr(MachOObjectFile::getVersionMinMajor(VMC, false)) + "." +
-        utostr(MachOObjectFile::getVersionMinMinor(VMC, false));
-      uint32_t Update = MachOObjectFile::getVersionMinUpdate(VMC, false);
-      if (Update != 0)
-        Version += "." + utostr(MachOObjectFile::getVersionMinUpdate(VMC,
-                                                                     false));
-      W.printString("Version", Version);
-      SmallString<32> SDK;
-      if (VMC.sdk == 0)
-        SDK = "n/a";
-      else {
-        SDK = utostr(MachOObjectFile::getVersionMinMajor(VMC, true)) + "." +
-          utostr(MachOObjectFile::getVersionMinMinor(VMC, true));
-        uint32_t Update = MachOObjectFile::getVersionMinUpdate(VMC, true);
-        if (Update != 0)
-          SDK += "." + utostr(MachOObjectFile::getVersionMinUpdate(VMC,
-                                                                   true));
-      }
-      W.printString("SDK", SDK);
+    StringRef Cmd;
+    switch (Load.C.cmd) {
+    case MachO::LC_VERSION_MIN_MACOSX:
+      Cmd = "LC_VERSION_MIN_MACOSX";
+      break;
+    case MachO::LC_VERSION_MIN_IPHONEOS:
+      Cmd = "LC_VERSION_MIN_IPHONEOS";
+      break;
+    case MachO::LC_VERSION_MIN_TVOS:
+      Cmd = "LC_VERSION_MIN_TVOS";
+      break;
+    case MachO::LC_VERSION_MIN_WATCHOS:
+      Cmd = "LC_VERSION_MIN_WATCHOS";
+      break;
+    default:
+      continue;
     }
+
+    MachO::version_min_command VMC = Obj->getVersionMinLoadCommand(Load);
+    DictScope Group(W, "MinVersion");
+    W.printString("Cmd", Cmd);
+    W.printNumber("Size", VMC.cmdsize);
+    SmallString<32> Version;
+    Version = utostr(MachOObjectFile::getVersionMinMajor(VMC, false)) + "." +
+              utostr(MachOObjectFile::getVersionMinMinor(VMC, false));
+    uint32_t Update = MachOObjectFile::getVersionMinUpdate(VMC, false);
+    if (Update != 0)
+      Version += "." + utostr(MachOObjectFile::getVersionMinUpdate(VMC, false));
+    W.printString("Version", Version);
+    SmallString<32> SDK;
+    if (VMC.sdk == 0)
+      SDK = "n/a";
+    else {
+      SDK = utostr(MachOObjectFile::getVersionMinMajor(VMC, true)) + "." +
+            utostr(MachOObjectFile::getVersionMinMinor(VMC, true));
+      uint32_t Update = MachOObjectFile::getVersionMinUpdate(VMC, true);
+      if (Update != 0)
+        SDK += "." + utostr(MachOObjectFile::getVersionMinUpdate(VMC, true));
+    }
+    W.printString("SDK", SDK);
   }
 }