diff options
author | Jason Molenda <jmolenda@apple.com> | 2019-10-16 19:14:49 +0000 |
---|---|---|
committer | Jason Molenda <jmolenda@apple.com> | 2019-10-16 19:14:49 +0000 |
commit | 7dd7a3607596a51044b8706ebf6df2e613ce1e9b (patch) | |
tree | ceaacaa39ab7238f81442a520fc67f7c17b7294f /lldb/source/Utility/ArchSpec.cpp | |
parent | 930ada91ce8ff9715e2ca7309bc946dbb9162dfb (diff) | |
download | bcm5719-llvm-7dd7a3607596a51044b8706ebf6df2e613ce1e9b.tar.gz bcm5719-llvm-7dd7a3607596a51044b8706ebf6df2e613ce1e9b.zip |
Add arm64_32 support to lldb, an ILP32 codegen
that runs on arm64 ISA targets, specifically
Apple watches.
Differential Revision: https://reviews.llvm.org/D68858
llvm-svn: 375032
Diffstat (limited to 'lldb/source/Utility/ArchSpec.cpp')
-rw-r--r-- | lldb/source/Utility/ArchSpec.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/lldb/source/Utility/ArchSpec.cpp b/lldb/source/Utility/ArchSpec.cpp index 9907ca9b240..a71a5dcb3d4 100644 --- a/lldb/source/Utility/ArchSpec.cpp +++ b/lldb/source/Utility/ArchSpec.cpp @@ -101,6 +101,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, 4, 4, llvm::Triple::aarch64_32, + ArchSpec::eCore_arm_arm64_32, "arm64_32"}, {eByteOrderLittle, 8, 4, 4, llvm::Triple::aarch64, ArchSpec::eCore_arm_aarch64, "aarch64"}, @@ -296,6 +298,10 @@ static const ArchDefinitionEntry g_macho_arch_entries[] = { SUBTYPE_MASK}, {ArchSpec::eCore_arm_arm64, llvm::MachO::CPU_TYPE_ARM64, 13, UINT32_MAX, SUBTYPE_MASK}, + {ArchSpec::eCore_arm_arm64_32, llvm::MachO::CPU_TYPE_ARM64_32, 0, + UINT32_MAX, SUBTYPE_MASK}, + {ArchSpec::eCore_arm_arm64_32, llvm::MachO::CPU_TYPE_ARM64_32, 1, + UINT32_MAX, SUBTYPE_MASK}, {ArchSpec::eCore_arm_arm64, llvm::MachO::CPU_TYPE_ARM64, CPU_ANY, UINT32_MAX, SUBTYPE_MASK}, {ArchSpec::eCore_thumb, llvm::MachO::CPU_TYPE_ARM, 0, UINT32_MAX, @@ -752,6 +758,7 @@ bool ArchSpec::CharIsSignedByDefault() const { return true; case llvm::Triple::aarch64: + case llvm::Triple::aarch64_32: case llvm::Triple::aarch64_be: case llvm::Triple::arm: case llvm::Triple::armeb: @@ -1239,6 +1246,14 @@ static bool cores_match(const ArchSpec::Core core1, const ArchSpec::Core core2, } break; + case ArchSpec::eCore_arm_arm64_32: + if (!enforce_exact_match) { + if (core2 == ArchSpec::eCore_arm_generic) + return true; + try_inverse = false; + } + break; + case ArchSpec::eCore_mips32: if (!enforce_exact_match) { if (core2 >= ArchSpec::kCore_mips32_first && |