diff options
author | Sam Parker <sam.parker@arm.com> | 2017-08-21 08:43:06 +0000 |
---|---|---|
committer | Sam Parker <sam.parker@arm.com> | 2017-08-21 08:43:06 +0000 |
commit | b252ffd2cca9e9f3ed65b8912603abc1f006ac5a (patch) | |
tree | aba57225ef82ce60ea5ea8f1919b9827c65c0f14 /llvm/lib/Support/TargetParser.cpp | |
parent | f7ef2a13f67493bbb1ccaba51502c1fc26d59018 (diff) | |
download | bcm5719-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.cpp | 14 |
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; } |