mirror of
https://github.com/openssl/openssl.git
synced 2024-12-09 05:51:54 +08:00
71396cd048
SM3 hardware instruction is optional feature of crypto extension for aarch64. This implementation accelerates SM3 via SM3 instructions. For the platform not supporting SM3 instruction, the original C implementation still works. Thanks to AliBaba for testing and reporting the following perf numbers for Yitian710: Benchmark on T-Head Yitian-710 2.75GHz: Before: type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes sm3 49297.82k 121062.63k 223106.05k 283371.52k 307574.10k 309400.92k After (33% - 74% faster): type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes sm3 65640.01k 179121.79k 359854.59k 481448.96k 534055.59k 538274.47k Reviewed-by: Paul Dale <pauli@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/17454)
23 lines
588 B
Plaintext
23 lines
588 B
Plaintext
LIBS=../../libcrypto
|
|
|
|
IF[{- !$disabled{sm3} -}]
|
|
IF[{- !$disabled{asm} -}]
|
|
$SM3ASM_aarch64=sm3-armv8.S
|
|
$SM3DEF_aarch64=OPENSSL_SM3_ASM
|
|
|
|
# Now that we have defined all the arch specific variables, use the
|
|
# appropriate ones, and define the appropriate macros
|
|
IF[$SM3ASM_{- $target{asm_arch} -}]
|
|
$SM3ASM=$SM3ASM_{- $target{asm_arch} -}
|
|
$SM3DEF=$SM3DEF_{- $target{asm_arch} -}
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SOURCE[../../libcrypto]=sm3.c legacy_sm3.c $SM3ASM
|
|
DEFINE[../../libcrypto]=$SM3DEF
|
|
|
|
GENERATE[sm3-armv8.S]=asm/sm3-armv8.pl
|
|
INCLUDE[sm3-armv8.o]=..
|
|
ENDIF
|
|
|