Enable s2n-bignum word_clz() on amd64.
authorjsing <jsing@openbsd.org>
Thu, 16 Feb 2023 11:13:05 +0000 (11:13 +0000)
committerjsing <jsing@openbsd.org>
Thu, 16 Feb 2023 11:13:05 +0000 (11:13 +0000)
commite9b52428a6f6b4f4b066defb2833e0a68b2f5f44
tree7281072179e748009592d44a24d5bea2b7d050ea
parent93321b808dc9a3e09dff7bbe48b324aa478154d9
Enable s2n-bignum word_clz() on amd64.

The BN_num_bits_word() function is a hot path, being called more than
80 million times during a libcrypto regress run. The word_clz()
implementation uses five instructions to do the same as the generic code
that uses more than 60 instructions.

Discussed with tb@
lib/libcrypto/arch/amd64/Makefile.inc
lib/libcrypto/bn/arch/amd64/bn_arch.c
lib/libcrypto/bn/arch/amd64/bn_arch.h
lib/libcrypto/bn/bn_local.h