[Lldb-commits] [PATCH] D113159: [lldb] Don't set the OS for ARMGetSupportedArchitectureAtIndex

Jonas Devlieghere via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Wed Nov 3 17:47:48 PDT 2021


JDevlieghere created this revision.
JDevlieghere added reviewers: friss, jasonmolenda.
Herald added subscribers: arphaman, kristof.beyls.
JDevlieghere requested review of this revision.

Don't set the OS when computing supported architectures in PlatformDarwin::ARMGetSupportedArchitectureAtIndex.


https://reviews.llvm.org/D113159

Files:
  lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp


Index: lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
===================================================================
--- lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
+++ lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
@@ -568,6 +568,15 @@
   switch (core) {
   default:
     LLVM_FALLTHROUGH;
+  case ArchSpec::eCore_arm_arm64e: {
+    static const char *g_arm64e_compatible_archs[] = {
+        "arm64e",    "arm64",    "armv7",    "armv7f",   "armv7k",   "armv7s",
+        "armv7m",    "armv7em",  "armv6m",   "armv6",    "armv5",    "armv4",
+        "arm",       "thumbv7",  "thumbv7f", "thumbv7k", "thumbv7s", "thumbv7m",
+        "thumbv7em", "thumbv6m", "thumbv6",  "thumbv5",  "thumbv4t", "thumb",
+    };
+    return COMPATIBLE_ARCHS(g_arm64e_compatible_archs);
+  }
   case ArchSpec::eCore_arm_arm64: {
     static const char *g_arm64_compatible_archs[] = {
         "arm64",    "armv7",    "armv7f",   "armv7k",   "armv7s",   "armv7m",
@@ -663,37 +672,13 @@
 /// processor.
 bool PlatformDarwin::ARMGetSupportedArchitectureAtIndex(uint32_t idx,
                                                         ArchSpec &arch) {
-#if TARGET_OS_OSX
-  if (IsHost()) {
-    if (idx == 0) {
-      arch.SetTriple("arm64e-apple-macosx");
-      return true;
-    } else if (idx == 1) {
-      arch.SetTriple("arm64-apple-macosx");
-      return true;
-    }
-    arch.Clear();
-    return false;
-  }
-#endif
-
-#if defined(TARGET_OS_TV) && TARGET_OS_TV == 1
-#define OSNAME "tvos"
-#elif defined(TARGET_OS_WATCH) && TARGET_OS_WATCH == 1
-#define OSNAME "watchos"
-#elif defined(TARGET_OS_BRIDGE) && TARGET_OS_BRIDGE == 1
-#define OSNAME "bridgeos"
-#elif defined(TARGET_OS_OSX) && TARGET_OS_OSX == 1
-#define OSNAME "macosx"
-#else
-#define OSNAME "ios"
-#endif
-
   const ArchSpec system_arch = GetSystemArchitecture();
   const ArchSpec::Core system_core = system_arch.GetCore();
+
   if (const char *compatible_arch = GetCompatibleArch(system_core, idx)) {
-    std::string triple =
-        llvm::formatv("{0}-apple-" OSNAME, compatible_arch).str();
+    llvm::Triple triple;
+    triple.setArchName(compatible_arch);
+    triple.setVendor(llvm::Triple::VendorType::Apple);
     arch.SetTriple(triple);
   }
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D113159.384624.patch
Type: text/x-patch
Size: 2244 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20211104/8df93018/attachment.bin>


More information about the lldb-commits mailing list