diff options
| author | Bradley Smith <bradley.smith@arm.com> | 2014-05-02 15:17:51 +0000 |
|---|---|---|
| committer | Bradley Smith <bradley.smith@arm.com> | 2014-05-02 15:17:51 +0000 |
| commit | 418c5935f88e973bd44e04f5ca3edbbf31f7d624 (patch) | |
| tree | d85a7c0c8d9de0aa666179d1089dc56d8c5849ac /clang/lib/Basic | |
| parent | d7360900a8d6a2616400bd35620cca481ef2b718 (diff) | |
| download | bcm5719-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.cpp | 14 |
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; } |

