summaryrefslogtreecommitdiffhomepage
path: root/src/crypto/zinc/poly1305
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2018-11-09 18:23:07 +0100
committerJason A. Donenfeld <Jason@zx2c4.com>2018-11-14 23:59:05 -0800
commit5c67177dcc6a23ceccaf8e69daf92a8a12212732 (patch)
tree714164fd114323cb39adcbf22798a0d81dfee364 /src/crypto/zinc/poly1305
parentcc36bde00d67f15d8657c2fa6f450dccf4fb76b7 (diff)
chacha20,poly1305: use CONFIG_KERNEL_MODE_NEON in .pl on arm
While Andy is right to desire a separation between compiler defines and project defines, there are simply too many odd kernel configurations and we require testing for CONFIG_KERNEL_MODE_NEON. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'src/crypto/zinc/poly1305')
-rw-r--r--src/crypto/zinc/poly1305/poly1305-arm.pl2
-rw-r--r--src/crypto/zinc/poly1305/poly1305-arm64.pl12
2 files changed, 8 insertions, 6 deletions
diff --git a/src/crypto/zinc/poly1305/poly1305-arm.pl b/src/crypto/zinc/poly1305/poly1305-arm.pl
index 88a4260..30a2005 100644
--- a/src/crypto/zinc/poly1305/poly1305-arm.pl
+++ b/src/crypto/zinc/poly1305/poly1305-arm.pl
@@ -460,7 +460,7 @@ my ($T0,$T1,$MASK) = map("q$_",(15,4,0));
my ($in2,$zeros,$tbl0,$tbl1) = map("r$_",(4..7));
$code.=<<___;
-#if __ARM_MAX_ARCH__>=7
+#if (defined(__KERNEL__) && defined(CONFIG_KERNEL_MODE_NEON)) || (!defined(__KERNEL__) && __ARM_MAX_ARCH__>=7)
.fpu neon
.type poly1305_init_neon,%function
diff --git a/src/crypto/zinc/poly1305/poly1305-arm64.pl b/src/crypto/zinc/poly1305/poly1305-arm64.pl
index cf0ce9d..d513b45 100644
--- a/src/crypto/zinc/poly1305/poly1305-arm64.pl
+++ b/src/crypto/zinc/poly1305/poly1305-arm64.pl
@@ -68,11 +68,6 @@ $code.=<<___;
// forward "declarations" are required for Apple
.globl poly1305_blocks
.globl poly1305_emit
-#ifdef __KERNEL__
-.globl poly1305_blocks_neon
-.globl poly1305_emit_neon
-#endif
-
.globl poly1305_init
.type poly1305_init,%function
.align 5
@@ -301,6 +296,12 @@ __poly1305_splat:
ret
.size __poly1305_splat,.-__poly1305_splat
+#if !defined(__KERNEL__) || defined(CONFIG_KERNEL_MODE_NEON)
+#ifdef __KERNEL__
+.globl poly1305_blocks_neon
+.globl poly1305_emit_neon
+#endif
+
.type poly1305_blocks_neon,%function
.align 5
poly1305_blocks_neon:
@@ -933,6 +934,7 @@ poly1305_emit_neon:
ret
.size poly1305_emit_neon,.-poly1305_emit_neon
+#endif
.align 5
.Lzeros: