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
This commit is contained in:
Ed Maste 2020-10-10 01:13:14 +00:00
parent 2ffad162f3
commit 49d48f45c8

View File

@ -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