mirror of
https://github.com/openssl/openssl.git
synced 2024-12-03 05:41:46 +08:00
31b59078c8
Comparing to current implementation, this change can get more performance improved by tunning the loop-unrolling factor in interleave implementation as well as by enabling high level parallelism. Performance(A72) new type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes aes-128-gcm 113065.51k 375743.00k 848359.51k 1517865.98k 1964040.19k 1986663.77k aes-192-gcm 110679.32k 364470.63k 799322.88k 1428084.05k 1826917.03k 1848967.17k aes-256-gcm 104919.86k 352939.29k 759477.76k 1330683.56k 1663175.34k 1670430.72k old type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes aes-128-gcm 115595.32k 382348.65k 855891.29k 1236452.35k 1425670.14k 1429793.45k aes-192-gcm 112227.02k 369543.47k 810046.55k 1147948.37k 1286288.73k 1296941.06k aes-256-gcm 111543.90k 361902.36k 769543.59k 1070693.03k 1208576.68k 1207511.72k Change-Id: I28a2dca85c001a63a2a942e80c7c64f7a4fdfcf7 Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/9818)
84 lines
2.5 KiB
Plaintext
84 lines
2.5 KiB
Plaintext
LIBS=../../libcrypto
|
|
|
|
$MODESASM=
|
|
IF[{- !$disabled{asm} -}]
|
|
$MODESASM_x86=ghash-x86.s
|
|
$MODESDEF_x86=GHASH_ASM
|
|
$MODESASM_x86_64=ghash-x86_64.s aesni-gcm-x86_64.s
|
|
$MODESDEF_x86_64=GHASH_ASM
|
|
|
|
# ghash-ia64.s doesn't work on VMS
|
|
IF[{- $config{target} !~ /^vms-/ -}]
|
|
$MODESASM_ia64=ghash-ia64.s
|
|
$MODESDEF_ia64=GHASH_ASM
|
|
ENDIF
|
|
|
|
$MODESASM_sparcv9=ghash-sparcv9.S
|
|
$MODESDEF_sparcv9=GHASH_ASM
|
|
|
|
$MODESASM_alpha=ghash-alpha.S
|
|
$MODESDEF_alpha=GHASH_ASM
|
|
|
|
$MODESASM_s390x=ghash-s390x.S
|
|
$MODESDEF_s390x=GHASH_ASM
|
|
|
|
$MODESASM_armv4=ghash-armv4.S ghashv8-armx.S
|
|
$MODESDEF_armv4=GHASH_ASM
|
|
$MODESASM_aarch64=ghashv8-armx.S aes-gcm-armv8_64.S
|
|
$MODESDEF_aarch64=
|
|
|
|
$MODESASM_parisc11=ghash-parisc.s
|
|
$MODESDEF_parisc11=GHASH_ASM
|
|
$MODESASM_parisc20_64=$MODESASM_parisc11
|
|
$MODESDEF_parisc20_64=$MODESDEF_parisc11
|
|
|
|
$MODESASM_ppc32=ghashp8-ppc.s
|
|
$MODESDEF_ppc32=
|
|
$MODESASM_ppc64=$MODESASM_ppc32
|
|
$MODESDEF_ppc64=$MODESDEF_ppc32
|
|
|
|
$MODESASM_c64xplus=ghash-c64xplus.s
|
|
$MODESDEF_c64xplus=GHASH_ASM
|
|
|
|
# Now that we have defined all the arch specific variables, use the
|
|
# appropriate one, and define the appropriate macros
|
|
IF[$MODESASM_{- $target{asm_arch} -}]
|
|
$MODESASM=$MODESASM_{- $target{asm_arch} -}
|
|
$MODESDEF=$MODESDEF_{- $target{asm_arch} -}
|
|
ENDIF
|
|
ENDIF
|
|
|
|
$COMMON=cbc128.c ctr128.c cfb128.c ofb128.c gcm128.c ccm128.c xts128.c \
|
|
wrap128.c $MODESASM
|
|
SOURCE[../../libcrypto]=$COMMON \
|
|
cts128.c ocb128.c siv128.c
|
|
SOURCE[../../providers/libfips.a]=$COMMON
|
|
|
|
# Implementations are now spread across several libraries, so the defines
|
|
# need to be applied to all affected libraries and modules.
|
|
DEFINE[../../libcrypto]=$MODESDEF
|
|
DEFINE[../../providers/libfips.a]=$MODESDEF
|
|
DEFINE[../../providers/libimplementations.a]=$MODESDEF
|
|
|
|
|
|
INCLUDE[gcm128.o]=..
|
|
|
|
GENERATE[ghash-ia64.s]=asm/ghash-ia64.pl
|
|
GENERATE[ghash-x86.s]=asm/ghash-x86.pl
|
|
GENERATE[ghash-x86_64.s]=asm/ghash-x86_64.pl
|
|
GENERATE[aesni-gcm-x86_64.s]=asm/aesni-gcm-x86_64.pl
|
|
GENERATE[ghash-sparcv9.S]=asm/ghash-sparcv9.pl
|
|
INCLUDE[ghash-sparcv9.o]=..
|
|
GENERATE[ghash-alpha.S]=asm/ghash-alpha.pl
|
|
GENERATE[ghash-parisc.s]=asm/ghash-parisc.pl
|
|
GENERATE[ghashp8-ppc.s]=asm/ghashp8-ppc.pl
|
|
GENERATE[ghash-armv4.S]=asm/ghash-armv4.pl
|
|
INCLUDE[ghash-armv4.o]=..
|
|
GENERATE[ghashv8-armx.S]=asm/ghashv8-armx.pl
|
|
INCLUDE[ghashv8-armx.o]=..
|
|
GENERATE[aes-gcm-armv8_64.S]=asm/aes-gcm-armv8_64.pl
|
|
INCLUDE[aes-gcm-armv8_64.o]=..
|
|
GENERATE[ghash-s390x.S]=asm/ghash-s390x.pl
|
|
INCLUDE[ghash-s390x.o]=..
|
|
GENERATE[ghash-c64xplus.S]=asm/ghash-c64xplus.pl
|