summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Support/TargetParser.cpp
diff options
context:
space:
mode:
authorSam Parker <sam.parker@arm.com>2017-08-21 08:43:06 +0000
committerSam Parker <sam.parker@arm.com>2017-08-21 08:43:06 +0000
commitb252ffd2cca9e9f3ed65b8912603abc1f006ac5a (patch)
treeaba57225ef82ce60ea5ea8f1919b9827c65c0f14 /llvm/lib/Support/TargetParser.cpp
parentf7ef2a13f67493bbb1ccaba51502c1fc26d59018 (diff)
downloadbcm5719-llvm-b252ffd2cca9e9f3ed65b8912603abc1f006ac5a.tar.gz
bcm5719-llvm-b252ffd2cca9e9f3ed65b8912603abc1f006ac5a.zip
[ARM][AArch64] Cortex-A75 and Cortex-A55 support
This patch introduces support for Cortex-A75 and Cortex-A55, Arm's latest big.LITTLE A-class cores. They implement the ARMv8.2-A architecture, including the cryptography and RAS extensions, plus the optional dot product extension. They also implement the RCpc AArch64 extension from ARMv8.3-A. Cortex-A75: https://developer.arm.com/products/processors/cortex-a/cortex-a75 Cortex-A55: https://developer.arm.com/products/processors/cortex-a/cortex-a55 Differential Revision: https://reviews.llvm.org/D36667 llvm-svn: 311316
Diffstat (limited to 'llvm/lib/Support/TargetParser.cpp')
-rw-r--r--llvm/lib/Support/TargetParser.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/llvm/lib/Support/TargetParser.cpp b/llvm/lib/Support/TargetParser.cpp
index 35bb7e6b8d0..8edc26fb5e0 100644
--- a/llvm/lib/Support/TargetParser.cpp
+++ b/llvm/lib/Support/TargetParser.cpp
@@ -235,6 +235,16 @@ bool llvm::ARM::getExtensionFeatures(unsigned Extensions,
else
Features.push_back("-dsp");
+ if (Extensions & ARM::AEK_RAS)
+ Features.push_back("+ras");
+ else
+ Features.push_back("-ras");
+
+ if (Extensions & ARM::AEK_DOTPROD)
+ Features.push_back("+dotprod");
+ else
+ Features.push_back("-dotprod");
+
return getHWDivFeatures(Extensions, Features);
}
@@ -438,6 +448,8 @@ bool llvm::AArch64::getExtensionFeatures(unsigned Extensions,
Features.push_back("+crc");
if (Extensions & AArch64::AEK_CRYPTO)
Features.push_back("+crypto");
+ if (Extensions & AArch64::AEK_DOTPROD)
+ Features.push_back("+dotprod");
if (Extensions & AArch64::AEK_FP16)
Features.push_back("+fullfp16");
if (Extensions & AArch64::AEK_PROFILE)
@@ -448,6 +460,8 @@ bool llvm::AArch64::getExtensionFeatures(unsigned Extensions,
Features.push_back("+lse");
if (Extensions & AArch64::AEK_SVE)
Features.push_back("+sve");
+ if (Extensions & AArch64::AEK_RCPC)
+ Features.push_back("+rcpc");
return true;
}
OpenPOWER on IntegriCloud