summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic
diff options
context:
space:
mode:
authorBradley Smith <bradley.smith@arm.com>2014-05-02 15:17:51 +0000
committerBradley Smith <bradley.smith@arm.com>2014-05-02 15:17:51 +0000
commit418c5935f88e973bd44e04f5ca3edbbf31f7d624 (patch)
treed85a7c0c8d9de0aa666179d1089dc56d8c5849ac /clang/lib/Basic
parentd7360900a8d6a2616400bd35620cca481ef2b718 (diff)
downloadbcm5719-llvm-418c5935f88e973bd44e04f5ca3edbbf31f7d624.tar.gz
bcm5719-llvm-418c5935f88e973bd44e04f5ca3edbbf31f7d624.zip
[ARM64/AArch64] Hook up CRC32 subtarget feature to the driver
llvm-svn: 207841
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r--clang/lib/Basic/Targets.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index a5144663281..c9670a41af9 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -3399,6 +3399,7 @@ class AArch64TargetInfo : public TargetInfo {
};
unsigned FPU;
+ unsigned CRC;
unsigned Crypto;
static const Builtin::Info BuiltinInfo[];
@@ -3475,6 +3476,9 @@ public:
Builder.defineMacro("__ARM_NEON_FP", "7");
}
+ if (CRC)
+ Builder.defineMacro("__ARM_FEATURE_CRC32");
+
if (Crypto) {
Builder.defineMacro("__ARM_FEATURE_CRYPTO");
}
@@ -3498,10 +3502,13 @@ public:
bool handleTargetFeatures(std::vector<std::string> &Features,
DiagnosticsEngine &Diags) override {
FPU = FPUMode;
+ CRC = 0;
Crypto = 0;
for (unsigned i = 0, e = Features.size(); i != e; ++i) {
if (Features[i] == "+neon")
FPU = NeonMode;
+ if (Features[i] == "+crc")
+ CRC = 1;
if (Features[i] == "+crypto")
Crypto = 1;
}
@@ -4492,6 +4499,7 @@ class ARM64TargetInfo : public TargetInfo {
};
unsigned FPU;
+ unsigned CRC;
unsigned Crypto;
static const Builtin::Info BuiltinInfo[];
@@ -4589,6 +4597,9 @@ public:
Builder.defineMacro("__ARM_NEON_FP", "7");
}
+ if (CRC)
+ Builder.defineMacro("__ARM_FEATURE_CRC32");
+
if (Crypto)
Builder.defineMacro("__ARM_FEATURE_CRYPTO");
}
@@ -4608,10 +4619,13 @@ public:
bool handleTargetFeatures(std::vector<std::string> &Features,
DiagnosticsEngine &Diags) override {
FPU = FPUMode;
+ CRC = 0;
Crypto = 0;
for (unsigned i = 0, e = Features.size(); i != e; ++i) {
if (Features[i] == "+neon")
FPU = NeonMode;
+ if (Features[i] == "+crc")
+ CRC = 1;
if (Features[i] == "+crypto")
Crypto = 1;
}
OpenPOWER on IntegriCloud