From 7c3c4baa3fbae3b4302a989000f5049b6db6c0e0 Mon Sep 17 00:00:00 2001 From: Oliver Stannard Date: Wed, 26 Sep 2018 12:48:21 +0000 Subject: [ARM/AArch64][v8.5A] Add Armv8.5-A target This patch allows targeting Armv8.5-A, adding the architecture to tablegen and setting the options to be identical to Armv8.4-A for the time being. Subsequent patches will add support for the different features included in the Armv8.5-A Reference Manual. Patch by Pablo Barrio! Differential revision: https://reviews.llvm.org/D52470 llvm-svn: 343102 --- llvm/lib/Support/TargetParser.cpp | 5 +++++ llvm/lib/Support/Triple.cpp | 2 ++ 2 files changed, 7 insertions(+) (limited to 'llvm/lib/Support') diff --git a/llvm/lib/Support/TargetParser.cpp b/llvm/lib/Support/TargetParser.cpp index 2f154a55e05..f2fdc23ad85 100644 --- a/llvm/lib/Support/TargetParser.cpp +++ b/llvm/lib/Support/TargetParser.cpp @@ -502,6 +502,8 @@ bool llvm::AArch64::getArchFeatures(AArch64::ArchKind AK, Features.push_back("+v8.3a"); if (AK == AArch64::ArchKind::ARMV8_4A) Features.push_back("+v8.4a"); + if (AK == AArch64::ArchKind::ARMV8_5A) + Features.push_back("+v8.5a"); return AK != AArch64::ArchKind::INVALID; } @@ -608,6 +610,7 @@ static StringRef getArchSynonym(StringRef Arch) { .Case("v8.2a", "v8.2-a") .Case("v8.3a", "v8.3-a") .Case("v8.4a", "v8.4-a") + .Case("v8.5a", "v8.5-a") .Case("v8r", "v8-r") .Case("v8m.base", "v8-m.base") .Case("v8m.main", "v8-m.main") @@ -776,6 +779,7 @@ ARM::ProfileKind ARM::parseArchProfile(StringRef Arch) { case ARM::ArchKind::ARMV8_2A: case ARM::ArchKind::ARMV8_3A: case ARM::ArchKind::ARMV8_4A: + case ARM::ArchKind::ARMV8_5A: return ARM::ProfileKind::A; case ARM::ArchKind::ARMV2: case ARM::ArchKind::ARMV2A: @@ -839,6 +843,7 @@ unsigned llvm::ARM::parseArchVersion(StringRef Arch) { case ARM::ArchKind::ARMV8_2A: case ARM::ArchKind::ARMV8_3A: case ARM::ArchKind::ARMV8_4A: + case ARM::ArchKind::ARMV8_5A: case ARM::ArchKind::ARMV8R: case ARM::ArchKind::ARMV8MBaseline: case ARM::ArchKind::ARMV8MMainline: diff --git a/llvm/lib/Support/Triple.cpp b/llvm/lib/Support/Triple.cpp index b56d1d9eff2..38f72c93bd7 100644 --- a/llvm/lib/Support/Triple.cpp +++ b/llvm/lib/Support/Triple.cpp @@ -596,6 +596,8 @@ static Triple::SubArchType parseSubArch(StringRef SubArchName) { return Triple::ARMSubArch_v8_3a; case ARM::ArchKind::ARMV8_4A: return Triple::ARMSubArch_v8_4a; + case ARM::ArchKind::ARMV8_5A: + return Triple::ARMSubArch_v8_5a; case ARM::ArchKind::ARMV8R: return Triple::ARMSubArch_v8r; case ARM::ArchKind::ARMV8MBaseline: -- cgit v1.2.3