summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Support/ARMTargetParser.cpp
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2019-05-14 11:25:44 +0000
committerTim Northover <tnorthover@apple.com>2019-05-14 11:25:44 +0000
commitff6875acd909960c5e85cd0e581a97c28f98cfb4 (patch)
tree5b098fd1740e82f9feff9290ce4adbe13a20a270 /llvm/lib/Support/ARMTargetParser.cpp
parented9117f88d0f2282b6c994fc3a5f4818c4046e84 (diff)
downloadbcm5719-llvm-ff6875acd909960c5e85cd0e581a97c28f98cfb4.tar.gz
bcm5719-llvm-ff6875acd909960c5e85cd0e581a97c28f98cfb4.zip
AArch64: support binutils-like things on arm64_32.
This adds support for the arm64_32 watchOS ABI to LLVM's low level tools, teaching them about the specific MachO choices and constants needed to disassemble things. llvm-svn: 360663
Diffstat (limited to 'llvm/lib/Support/ARMTargetParser.cpp')
-rw-r--r--llvm/lib/Support/ARMTargetParser.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/llvm/lib/Support/ARMTargetParser.cpp b/llvm/lib/Support/ARMTargetParser.cpp
index 7b8ec2f3390..c57da4cb202 100644
--- a/llvm/lib/Support/ARMTargetParser.cpp
+++ b/llvm/lib/Support/ARMTargetParser.cpp
@@ -248,7 +248,7 @@ ARM::EndianKind ARM::parseArchEndian(StringRef Arch) {
return EndianKind::LITTLE;
}
- if (Arch.startswith("aarch64"))
+ if (Arch.startswith("aarch64") || Arch.startswith("aarch64_32"))
return EndianKind::LITTLE;
return EndianKind::INVALID;
@@ -289,8 +289,12 @@ StringRef ARM::getCanonicalArchName(StringRef Arch) {
StringRef Error = "";
// Begins with "arm" / "thumb", move past it.
- if (A.startswith("arm64"))
+ if (A.startswith("arm64_32"))
+ offset = 8;
+ else if (A.startswith("arm64"))
offset = 5;
+ else if (A.startswith("aarch64_32"))
+ offset = 10;
else if (A.startswith("arm"))
offset = 3;
else if (A.startswith("thumb"))
OpenPOWER on IntegriCloud