Author: Muhammad Omair Javaid Date: 2019-11-13T05:40:09+05:00 New Revision: 9b958356983afffaf56788f37bdab9213369fa45
URL: https://github.com/llvm/llvm-project/commit/9b958356983afffaf56788f37bdab9213369fa45 DIFF: https://github.com/llvm/llvm-project/commit/9b958356983afffaf56788f37bdab9213369fa45.diff LOG: [LLDB] Add core definition for armv8l and armv7l This patch adds core definitions in lldb ArchSpecs for armv8l and armv7l cores. This was needed because on Linux running on 32-bit Arm v8 we are returned armv8l in case we are running 32-bit sysroot on 64bit kernel. In case of 32-bit kernel and 32-bit sysroot running on arm v8 hardware we are returned armv7l. This is quite common when we run 32 bit arm using docker container. Signed-off-by: Muhammad Omair Javaid <omair.jav...@linaro.org> Differential Revision: https://reviews.llvm.org/D69904 Added: Modified: lldb/include/lldb/Utility/ArchSpec.h lldb/packages/Python/lldbsuite/test/lldbplatformutil.py lldb/packages/Python/lldbsuite/test/make/Makefile.rules lldb/source/Utility/ArchSpec.cpp Removed: ################################################################################ diff --git a/lldb/include/lldb/Utility/ArchSpec.h b/lldb/include/lldb/Utility/ArchSpec.h index bd8c421c3bfc..ae7958376832 100644 --- a/lldb/include/lldb/Utility/ArchSpec.h +++ b/lldb/include/lldb/Utility/ArchSpec.h @@ -101,6 +101,7 @@ class ArchSpec { eCore_arm_armv6, eCore_arm_armv6m, eCore_arm_armv7, + eCore_arm_armv7l, eCore_arm_armv7f, eCore_arm_armv7s, eCore_arm_armv7k, @@ -122,6 +123,7 @@ class ArchSpec { eCore_thumbv7em, eCore_arm_arm64, eCore_arm_armv8, + eCore_arm_armv8l, eCore_arm_arm64_32, eCore_arm_aarch64, diff --git a/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py b/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py index 4ad400564340..3515bc812ac5 100644 --- a/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py +++ b/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py @@ -25,7 +25,7 @@ def check_first_register_readable(test_case): if arch in ['x86_64', 'i386']: test_case.expect("register read eax", substrs=['eax = 0x']) - elif arch in ['arm', 'armv7', 'armv7k']: + elif arch in ['arm', 'armv7', 'armv7k', 'armv8l', 'armv7l']: test_case.expect("register read r0", substrs=['r0 = 0x']) elif arch in ['aarch64', 'arm64', 'arm64e', 'arm64_32']: test_case.expect("register read x0", substrs=['x0 = 0x']) diff --git a/lldb/packages/Python/lldbsuite/test/make/Makefile.rules b/lldb/packages/Python/lldbsuite/test/make/Makefile.rules index 2ad4a486c743..53729548cc4b 100644 --- a/lldb/packages/Python/lldbsuite/test/make/Makefile.rules +++ b/lldb/packages/Python/lldbsuite/test/make/Makefile.rules @@ -239,7 +239,7 @@ else override ARCH := override ARCHFLAG := endif - ifeq "$(ARCH)" "arm" + ifeq "$(findstring arm,$(ARCH))" "arm" override ARCH := override ARCHFLAG := endif diff --git a/lldb/source/Utility/ArchSpec.cpp b/lldb/source/Utility/ArchSpec.cpp index a8781251ef8a..62d9d246255a 100644 --- a/lldb/source/Utility/ArchSpec.cpp +++ b/lldb/source/Utility/ArchSpec.cpp @@ -61,6 +61,8 @@ static const CoreDefinition g_core_definitions[] = { "armv6m"}, {eByteOrderLittle, 4, 2, 4, llvm::Triple::arm, ArchSpec::eCore_arm_armv7, "armv7"}, + {eByteOrderLittle, 4, 2, 4, llvm::Triple::arm, ArchSpec::eCore_arm_armv7l, + "armv7l"}, {eByteOrderLittle, 4, 2, 4, llvm::Triple::arm, ArchSpec::eCore_arm_armv7f, "armv7f"}, {eByteOrderLittle, 4, 2, 4, llvm::Triple::arm, ArchSpec::eCore_arm_armv7s, @@ -101,6 +103,8 @@ static const CoreDefinition g_core_definitions[] = { ArchSpec::eCore_arm_arm64, "arm64"}, {eByteOrderLittle, 8, 4, 4, llvm::Triple::aarch64, ArchSpec::eCore_arm_armv8, "armv8"}, + {eByteOrderLittle, 4, 2, 4, llvm::Triple::arm, + ArchSpec::eCore_arm_armv8l, "armv8l"}, {eByteOrderLittle, 4, 4, 4, llvm::Triple::aarch64_32, ArchSpec::eCore_arm_arm64_32, "arm64_32"}, {eByteOrderLittle, 8, 4, 4, llvm::Triple::aarch64, @@ -1188,6 +1192,8 @@ static bool cores_match(const ArchSpec::Core core1, const ArchSpec::Core core2, case ArchSpec::eCore_arm_armv7f: case ArchSpec::eCore_arm_armv7k: case ArchSpec::eCore_arm_armv7s: + case ArchSpec::eCore_arm_armv7l: + case ArchSpec::eCore_arm_armv8l: if (!enforce_exact_match) { if (core2 == ArchSpec::eCore_arm_generic) return true; _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits