[PATCH] D48625: [ARM][AArch64] Armv8.4-A enablement

Oliver Stannard via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 28 02:27:56 PDT 2018


olista01 added inline comments.


================
Comment at: include/llvm/Support/ARMTargetParser.def:137
 ARM_ARCH_EXT_NAME("crypto",   ARM::AEK_CRYPTO,   "+crypto","-crypto")
+ARM_ARCH_EXT_NAME("sm4",      ARM::AEK_SM4,      "+sm4",   "-sm4")
+ARM_ARCH_EXT_NAME("sha3",     ARM::AEK_SHA3,     "+sha3",  "-sha3")
----------------
Why are these needed, if the sha3 and sm4 instructions are AArch64-only?


================
Comment at: include/llvm/Support/TargetParser.h:89
   AEK_DOTPROD =     1 << 14,
+  AEK_SM4     =     1 << 15,
+  AEK_SHA3    =     1 << 16,
----------------
Same here, are these needed?


================
Comment at: lib/Target/AArch64/AArch64.td:35
+    "sha3", "HasSHA3", "true",
+    "Enable SHA512 and SHA3 support", [FeatureNEON]>;
+
----------------
I think SHA3 should also depend on SHA2. From the architecture manual:
> Implementation of ARMv8.2-SHA requires implementation of the ARMv8.0 Cryptographic Extension SHA-1 and SHA256 functionality.


================
Comment at: lib/Target/AArch64/AArch64.td:49
+// Therefore, we rely on Clang, the user interacing tool, to pass on the
+// appropiate crypto options. But here in the backend, crypto has very little
+// meaning anymore. We kept the Crypto defintion here for backward
----------------
Typo: "appropriate".


https://reviews.llvm.org/D48625





More information about the llvm-commits mailing list