summaryrefslogtreecommitdiffstats
path: root/clang/utils/TableGen
diff options
context:
space:
mode:
authorJiangning Liu <jiangning.liu@arm.com>2013-11-19 01:38:19 +0000
committerJiangning Liu <jiangning.liu@arm.com>2013-11-19 01:38:19 +0000
commit3311f374a889b36b47c2994aa77a27f53cdbe578 (patch)
tree5a1dcf6f23bc7c586d8240abdbfcdd09b508718b /clang/utils/TableGen
parentc8b0a1ad951bf8d52213f7ce7699b26305f898ec (diff)
downloadbcm5719-llvm-3311f374a889b36b47c2994aa77a27f53cdbe578.tar.gz
bcm5719-llvm-3311f374a889b36b47c2994aa77a27f53cdbe578.zip
Add predicate for AArch64 crypto instructions.
llvm-svn: 195069
Diffstat (limited to 'clang/utils/TableGen')
-rw-r--r--clang/utils/TableGen/NeonEmitter.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/clang/utils/TableGen/NeonEmitter.cpp b/clang/utils/TableGen/NeonEmitter.cpp
index 86cd429b173..23c3b17666c 100644
--- a/clang/utils/TableGen/NeonEmitter.cpp
+++ b/clang/utils/TableGen/NeonEmitter.cpp
@@ -2560,8 +2560,28 @@ void NeonEmitter::run(raw_ostream &OS) {
if (!isA64)
continue;
+ // Skip crypto temporarily, and will emit them all together at the end.
+ bool isCrypto = R->getValueAsBit("isCrypto");
+ if (isCrypto)
+ continue;
+
+ emitIntrinsic(OS, R, EmittedMap);
+ }
+
+ OS << "#ifdef __ARM_FEATURE_CRYPTO\n";
+
+ for (unsigned i = 0, e = RV.size(); i != e; ++i) {
+ Record *R = RV[i];
+
+ // Skip crypto temporarily, and will emit them all together at the end.
+ bool isCrypto = R->getValueAsBit("isCrypto");
+ if (!isCrypto)
+ continue;
+
emitIntrinsic(OS, R, EmittedMap);
}
+
+ OS << "#endif\n\n";
OS << "#endif\n\n";
OpenPOWER on IntegriCloud