aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEd Maste <emaste@FreeBSD.org>2020-10-10 01:13:14 +0000
committerEd Maste <emaste@FreeBSD.org>2020-10-10 01:13:14 +0000
commit49d48f45c8f728956cc2d982bf33ae79cd6fd8e9 (patch)
tree52c1dd8eb4d93e52be979fa37c55d1ae3a5b0890
parent2ffad162f3e81947060c96651a6a8e2b03fbd1e2 (diff)
downloadsrc-49d48f45c8f728956cc2d982bf33ae79cd6fd8e9.tar.gz
src-49d48f45c8f728956cc2d982bf33ae79cd6fd8e9.zip
modules/crypto: reenable assembly optimized skein implementation
r366344 corrected the optimized amd64 skein assembly implementation, so we can now enable it again. Also add a dependency on this Makefile for the skein_block object, so that it will be rebuit (similar to r366362). PR: 248221 Sponsored by: The FreeBSD Foundation
Notes
Notes: svn path=/head/; revision=366596
-rw-r--r--sys/modules/crypto/Makefile20
1 files changed, 12 insertions, 8 deletions
diff --git a/sys/modules/crypto/Makefile b/sys/modules/crypto/Makefile
index 8af02c35ce0e..01ade43a0e51 100644
--- a/sys/modules/crypto/Makefile
+++ b/sys/modules/crypto/Makefile
@@ -28,14 +28,18 @@ SRCS += sha1.c sha256c.c sha512c.c
SRCS += skein.c skein_block.c
# unroll the 256 and 512 loops, half unroll the 1024
CFLAGS.skein_block.c += -DSKEIN_LOOP=995
-#.if exists(${MACHINE_ARCH}/skein_block_asm.S)
-#.PATH: ${SRCTOP}/sys/crypto/skein/${MACHINE_ARCH}
-#SRCS += skein_block_asm.S
-#CFLAGS += -DSKEIN_ASM -DSKEIN_USE_ASM=1792 # list of block functions to replace with assembly: 256+512+1024 = 1792
-#ACFLAGS += -DELF -Wa,--noexecstack
-## Fully unroll all loops in the assembly optimized version
-#ACFLAGS += -DSKEIN_LOOP=0
-#.endif
+.if exists(${MACHINE_ARCH}/skein_block_asm.S)
+.PATH: ${SRCTOP}/sys/crypto/skein/${MACHINE_ARCH}
+SRCS += skein_block_asm.S
+CFLAGS += -DSKEIN_ASM -DSKEIN_USE_ASM=1792 # list of block functions to replace with assembly: 256+512+1024 = 1792
+ACFLAGS += -DELF -Wa,--noexecstack
+# Fully unroll all loops in the assembly optimized version
+ACFLAGS += -DSKEIN_LOOP=0
+# 20201002 Add explict Makefile dependency for reenabled assembly optimized
+# version. SKEIN_USE_ASM determines which routines should come from the assembly
+# vs C versions, and skein_block needs to be rebuilt if it changes.
+skein_block.o: Makefile
+.endif
SRCS += siphash.c
SRCS += gmac.c gfmult.c
SRCS += blake2b-ref.c