diff options
author | Jason Molenda <jmolenda@apple.com> | 2011-12-09 07:50:50 +0000 |
---|---|---|
committer | Jason Molenda <jmolenda@apple.com> | 2011-12-09 07:50:50 +0000 |
commit | d74db47a41ae4f92f0d22a5a930d87d3fade91f8 (patch) | |
tree | 78faa4cf053efc2cea8dd51a2ed3d76ebbe65e65 | |
parent | 941aae0e9d5f360f8aa7d3382578e23ebfff8df7 (diff) | |
download | bcm5719-llvm-d74db47a41ae4f92f0d22a5a930d87d3fade91f8.tar.gz bcm5719-llvm-d74db47a41ae4f92f0d22a5a930d87d3fade91f8.zip |
Move the ARM specific arch picker from PlatformRemoteiOS.cpp to
PlatformDarwin.cpp -- call it from both PlatformRemoteiOS.cpp
and the native process PlatformDarwin.cpp when running on an arm
system.
Bump lldb version number to 94.
llvm-svn: 146249
-rw-r--r-- | lldb/lldb.xcodeproj/project.pbxproj | 30 | ||||
-rw-r--r-- | lldb/resources/LLDB-Info.plist | 2 | ||||
-rw-r--r-- | lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp | 111 | ||||
-rw-r--r-- | lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.h | 2 | ||||
-rw-r--r-- | lldb/source/Plugins/Platform/MacOSX/PlatformMacOSX.cpp | 5 | ||||
-rw-r--r-- | lldb/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.cpp | 103 |
6 files changed, 134 insertions, 119 deletions
diff --git a/lldb/lldb.xcodeproj/project.pbxproj b/lldb/lldb.xcodeproj/project.pbxproj index f253f55cdfd..ea98fce3986 100644 --- a/lldb/lldb.xcodeproj/project.pbxproj +++ b/lldb/lldb.xcodeproj/project.pbxproj @@ -3736,9 +3736,9 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 93; + CURRENT_PROJECT_VERSION = 94; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 93; + DYLIB_CURRENT_VERSION = 94; EXPORTED_SYMBOLS_FILE = "resources/lldb-framework-exports"; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -3797,10 +3797,10 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 93; + CURRENT_PROJECT_VERSION = 94; DEAD_CODE_STRIPPING = YES; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 93; + DYLIB_CURRENT_VERSION = 94; EXPORTED_SYMBOLS_FILE = "resources/lldb-framework-exports"; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -3857,8 +3857,8 @@ isa = XCBuildConfiguration; buildSettings = { COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 93; - DYLIB_CURRENT_VERSION = 93; + CURRENT_PROJECT_VERSION = 94; + DYLIB_CURRENT_VERSION = 94; EXECUTABLE_EXTENSION = a; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -3887,8 +3887,8 @@ isa = XCBuildConfiguration; buildSettings = { COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 93; - DYLIB_CURRENT_VERSION = 93; + CURRENT_PROJECT_VERSION = 94; + DYLIB_CURRENT_VERSION = 94; EXECUTABLE_EXTENSION = a; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -3917,8 +3917,8 @@ isa = XCBuildConfiguration; buildSettings = { COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 93; - DYLIB_CURRENT_VERSION = 93; + CURRENT_PROJECT_VERSION = 94; + DYLIB_CURRENT_VERSION = 94; EXECUTABLE_EXTENSION = a; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -3995,7 +3995,7 @@ isa = XCBuildConfiguration; buildSettings = { COPY_PHASE_STRIP = YES; - CURRENT_PROJECT_VERSION = 93; + CURRENT_PROJECT_VERSION = 94; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "\"$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks\"", @@ -4025,10 +4025,10 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; COPY_PHASE_STRIP = YES; - CURRENT_PROJECT_VERSION = 93; + CURRENT_PROJECT_VERSION = 94; DEAD_CODE_STRIPPING = YES; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 93; + DYLIB_CURRENT_VERSION = 94; EXPORTED_SYMBOLS_FILE = "resources/lldb-framework-exports"; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -4272,7 +4272,7 @@ isa = XCBuildConfiguration; buildSettings = { COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 93; + CURRENT_PROJECT_VERSION = 94; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "\"$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks\"", @@ -4303,7 +4303,7 @@ isa = XCBuildConfiguration; buildSettings = { COPY_PHASE_STRIP = YES; - CURRENT_PROJECT_VERSION = 93; + CURRENT_PROJECT_VERSION = 94; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "\"$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks\"", diff --git a/lldb/resources/LLDB-Info.plist b/lldb/resources/LLDB-Info.plist index 836f13a6435..bc98f5caafe 100644 --- a/lldb/resources/LLDB-Info.plist +++ b/lldb/resources/LLDB-Info.plist @@ -17,7 +17,7 @@ <key>CFBundleSignature</key> <string>????</string> <key>CFBundleVersion</key> - <string>93</string> + <string>94</string> <key>CFBundleName</key> <string>${EXECUTABLE_NAME}</string> </dict> diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp index 7e2d3cdffe2..8e139690964 100644 --- a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp +++ b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp @@ -501,3 +501,114 @@ PlatformDarwin::ModuleIsExcludedForNonModuleSpecificSearches (lldb_private::Targ else return false; } + + +// The architecture selection rules for arm processors +// These cpu subtypes have distinct names (e.g. armv7f) but armv7 binaries run fine on an armv7f processor. + +bool +PlatformDarwin::ARMGetSupportedArchitectureAtIndex (uint32_t idx, ArchSpec &arch) +{ + ArchSpec system_arch (GetSystemArchitecture()); + const ArchSpec::Core system_core = system_arch.GetCore(); + switch (system_core) + { + default: + switch (idx) + { + case 0: arch.SetTriple ("armv7-apple-darwin", NULL); return true; + case 1: arch.SetTriple ("armv7f-apple-darwin", NULL); return true; + case 2: arch.SetTriple ("armv7k-apple-darwin", NULL); return true; + case 3: arch.SetTriple ("armv7s-apple-darwin", NULL); return true; + case 4: arch.SetTriple ("armv6-apple-darwin", NULL); return true; + case 5: arch.SetTriple ("armv5-apple-darwin", NULL); return true; + case 6: arch.SetTriple ("armv4-apple-darwin", NULL); return true; + case 7: arch.SetTriple ("arm-apple-darwin", NULL); return true; + default: break; + } + break; + + case ArchSpec::eCore_arm_armv7f: + switch (idx) + { + case 0: arch.SetTriple ("armv7f-apple-darwin", NULL); return true; + case 1: arch.SetTriple ("armv7-apple-darwin", NULL); return true; + case 2: arch.SetTriple ("armv6-apple-darwin", NULL); return true; + case 3: arch.SetTriple ("armv5-apple-darwin", NULL); return true; + case 4: arch.SetTriple ("armv4-apple-darwin", NULL); return true; + case 5: arch.SetTriple ("arm-apple-darwin", NULL); return true; + default: break; + } + break; + + case ArchSpec::eCore_arm_armv7k: + switch (idx) + { + case 0: arch.SetTriple ("armv7k-apple-darwin", NULL); return true; + case 1: arch.SetTriple ("armv7-apple-darwin", NULL); return true; + case 2: arch.SetTriple ("armv6-apple-darwin", NULL); return true; + case 3: arch.SetTriple ("armv5-apple-darwin", NULL); return true; + case 4: arch.SetTriple ("armv4-apple-darwin", NULL); return true; + case 5: arch.SetTriple ("arm-apple-darwin", NULL); return true; + default: break; + } + break; + + case ArchSpec::eCore_arm_armv7s: + switch (idx) + { + case 0: arch.SetTriple ("armv7s-apple-darwin", NULL); return true; + case 1: arch.SetTriple ("armv7-apple-darwin", NULL); return true; + case 2: arch.SetTriple ("armv6-apple-darwin", NULL); return true; + case 3: arch.SetTriple ("armv5-apple-darwin", NULL); return true; + case 4: arch.SetTriple ("armv4-apple-darwin", NULL); return true; + case 5: arch.SetTriple ("arm-apple-darwin", NULL); return true; + default: break; + } + break; + + case ArchSpec::eCore_arm_armv7: + switch (idx) + { + case 0: arch.SetTriple ("armv7-apple-darwin", NULL); return true; + case 1: arch.SetTriple ("armv6-apple-darwin", NULL); return true; + case 2: arch.SetTriple ("armv5-apple-darwin", NULL); return true; + case 3: arch.SetTriple ("armv4-apple-darwin", NULL); return true; + case 4: arch.SetTriple ("arm-apple-darwin", NULL); return true; + default: break; + } + break; + + case ArchSpec::eCore_arm_armv6: + switch (idx) + { + case 0: arch.SetTriple ("armv6-apple-darwin", NULL); return true; + case 1: arch.SetTriple ("armv5-apple-darwin", NULL); return true; + case 2: arch.SetTriple ("armv4-apple-darwin", NULL); return true; + case 3: arch.SetTriple ("arm-apple-darwin", NULL); return true; + default: break; + } + break; + + case ArchSpec::eCore_arm_armv5: + switch (idx) + { + case 0: arch.SetTriple ("armv5-apple-darwin", NULL); return true; + case 1: arch.SetTriple ("armv4-apple-darwin", NULL); return true; + case 2: arch.SetTriple ("arm-apple-darwin", NULL); return true; + default: break; + } + break; + + case ArchSpec::eCore_arm_armv4: + switch (idx) + { + case 0: arch.SetTriple ("armv4-apple-darwin", NULL); return true; + case 1: arch.SetTriple ("arm-apple-darwin", NULL); return true; + default: break; + } + break; + } + arch.Clear(); + return false; +} diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.h b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.h index 5ed533da3a3..0052a8efde4 100644 --- a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.h +++ b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.h @@ -88,6 +88,8 @@ public: virtual bool ModuleIsExcludedForNonModuleSpecificSearches (lldb_private::Target &target, const lldb::ModuleSP &module_sp); + bool ARMGetSupportedArchitectureAtIndex (uint32_t idx, lldb_private::ArchSpec &arch); + protected: lldb::PlatformSP m_remote_platform_sp; // Allow multiple ways to connect to a remote darwin OS diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformMacOSX.cpp b/lldb/source/Plugins/Platform/MacOSX/PlatformMacOSX.cpp index 02d662bc2bc..3a0e036f055 100644 --- a/lldb/source/Plugins/Platform/MacOSX/PlatformMacOSX.cpp +++ b/lldb/source/Plugins/Platform/MacOSX/PlatformMacOSX.cpp @@ -178,6 +178,10 @@ PlatformMacOSX::GetSharedModule (const FileSpec &platform_file, bool PlatformMacOSX::GetSupportedArchitectureAtIndex (uint32_t idx, ArchSpec &arch) { +#if defined (__arm__) + return ARMGetSupportedArchitectureAtIndex (idx, arch); +#endif + if (idx == 0) { arch = Host::GetArchitecture (Host::eSystemDefaultArchitecture); @@ -199,4 +203,3 @@ PlatformMacOSX::GetSupportedArchitectureAtIndex (uint32_t idx, ArchSpec &arch) return false; } - diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.cpp b/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.cpp index 2b83156e759..62d85451249 100644 --- a/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.cpp +++ b/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.cpp @@ -485,106 +485,5 @@ PlatformRemoteiOS::GetProcessInfo (lldb::pid_t pid, ProcessInstanceInfo &process bool PlatformRemoteiOS::GetSupportedArchitectureAtIndex (uint32_t idx, ArchSpec &arch) { - ArchSpec system_arch (GetSystemArchitecture()); - const ArchSpec::Core system_core = system_arch.GetCore(); - switch (system_core) - { - default: - switch (idx) - { - case 0: arch.SetTriple ("armv7-apple-darwin", NULL); return true; - case 1: arch.SetTriple ("armv7f-apple-darwin", NULL); return true; - case 2: arch.SetTriple ("armv7k-apple-darwin", NULL); return true; - case 3: arch.SetTriple ("armv7s-apple-darwin", NULL); return true; - case 4: arch.SetTriple ("armv6-apple-darwin", NULL); return true; - case 5: arch.SetTriple ("armv5-apple-darwin", NULL); return true; - case 6: arch.SetTriple ("armv4-apple-darwin", NULL); return true; - case 7: arch.SetTriple ("arm-apple-darwin", NULL); return true; - default: break; - } - break; - - case ArchSpec::eCore_arm_armv7f: - switch (idx) - { - case 0: arch.SetTriple ("armv7f-apple-darwin", NULL); return true; - case 1: arch.SetTriple ("armv7-apple-darwin", NULL); return true; - case 2: arch.SetTriple ("armv6-apple-darwin", NULL); return true; - case 3: arch.SetTriple ("armv5-apple-darwin", NULL); return true; - case 4: arch.SetTriple ("armv4-apple-darwin", NULL); return true; - case 5: arch.SetTriple ("arm-apple-darwin", NULL); return true; - default: break; - } - break; - - case ArchSpec::eCore_arm_armv7k: - switch (idx) - { - case 0: arch.SetTriple ("armv7k-apple-darwin", NULL); return true; - case 1: arch.SetTriple ("armv7-apple-darwin", NULL); return true; - case 2: arch.SetTriple ("armv6-apple-darwin", NULL); return true; - case 3: arch.SetTriple ("armv5-apple-darwin", NULL); return true; - case 4: arch.SetTriple ("armv4-apple-darwin", NULL); return true; - case 5: arch.SetTriple ("arm-apple-darwin", NULL); return true; - default: break; - } - break; - - case ArchSpec::eCore_arm_armv7s: - switch (idx) - { - case 0: arch.SetTriple ("armv7s-apple-darwin", NULL); return true; - case 1: arch.SetTriple ("armv7-apple-darwin", NULL); return true; - case 2: arch.SetTriple ("armv6-apple-darwin", NULL); return true; - case 3: arch.SetTriple ("armv5-apple-darwin", NULL); return true; - case 4: arch.SetTriple ("armv4-apple-darwin", NULL); return true; - case 5: arch.SetTriple ("arm-apple-darwin", NULL); return true; - default: break; - } - break; - - case ArchSpec::eCore_arm_armv7: - switch (idx) - { - case 0: arch.SetTriple ("armv7-apple-darwin", NULL); return true; - case 1: arch.SetTriple ("armv6-apple-darwin", NULL); return true; - case 2: arch.SetTriple ("armv5-apple-darwin", NULL); return true; - case 3: arch.SetTriple ("armv4-apple-darwin", NULL); return true; - case 4: arch.SetTriple ("arm-apple-darwin", NULL); return true; - default: break; - } - break; - - case ArchSpec::eCore_arm_armv6: - switch (idx) - { - case 0: arch.SetTriple ("armv6-apple-darwin", NULL); return true; - case 1: arch.SetTriple ("armv5-apple-darwin", NULL); return true; - case 2: arch.SetTriple ("armv4-apple-darwin", NULL); return true; - case 3: arch.SetTriple ("arm-apple-darwin", NULL); return true; - default: break; - } - break; - - case ArchSpec::eCore_arm_armv5: - switch (idx) - { - case 0: arch.SetTriple ("armv5-apple-darwin", NULL); return true; - case 1: arch.SetTriple ("armv4-apple-darwin", NULL); return true; - case 2: arch.SetTriple ("arm-apple-darwin", NULL); return true; - default: break; - } - break; - - case ArchSpec::eCore_arm_armv4: - switch (idx) - { - case 0: arch.SetTriple ("armv4-apple-darwin", NULL); return true; - case 1: arch.SetTriple ("arm-apple-darwin", NULL); return true; - default: break; - } - break; - } - arch.Clear(); - return false; + return ARMGetSupportedArchitectureAtIndex (idx, arch); } |