X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb/blobdiff_plain/e492db887af6561dd33aa18e3887efaeb219fd16..HEAD:/symm/rijndael.c diff --git a/symm/rijndael.c b/symm/rijndael.c index 02cfb76b..597ae98f 100644 --- a/symm/rijndael.c +++ b/symm/rijndael.c @@ -34,6 +34,11 @@ #include +#if defined(TEST_RIG) && defined(ENABLE_ASM_DEBUG) +# include "regdump.h" +# define BLKC_TESTHOOK do { regdump_init(); } while (0) +#endif + #include "blkc.h" #include "dispatch.h" #include "gcipher.h" @@ -83,6 +88,8 @@ CPU_DISPATCH(EMPTY, EMPTY, void, rijndael_dblk, #if CPUFAM_X86 || CPUFAM_AMD64 extern rijndael_eblk__functype rijndael_eblk_x86ish_aesni; extern rijndael_dblk__functype rijndael_dblk_x86ish_aesni; +extern rijndael_eblk__functype rijndael_eblk_x86ish_aesni_avx; +extern rijndael_dblk__functype rijndael_dblk_x86ish_aesni_avx; #endif #if CPUFAM_ARMEL && HAVE_AS_ARMV8_CRYPTO extern rijndael_eblk__functype rijndael_eblk_arm_crypto; @@ -96,6 +103,9 @@ extern rijndael_dblk__functype rijndael_dblk_arm64_crypto; static rijndael_eblk__functype *pick_eblk(void) { #if CPUFAM_X86 || CPUFAM_AMD64 + DISPATCH_PICK_COND(rijndael_eblk, rijndael_eblk_x86ish_aesni_avx, + cpu_feature_p(CPUFEAT_X86_AVX) && + cpu_feature_p(CPUFEAT_X86_AESNI)); DISPATCH_PICK_COND(rijndael_eblk, rijndael_eblk_x86ish_aesni, cpu_feature_p(CPUFEAT_X86_AESNI)); #endif @@ -113,6 +123,9 @@ static rijndael_eblk__functype *pick_eblk(void) static rijndael_dblk__functype *pick_dblk(void) { #if CPUFAM_X86 || CPUFAM_AMD64 + DISPATCH_PICK_COND(rijndael_dblk, rijndael_dblk_x86ish_aesni_avx, + cpu_feature_p(CPUFEAT_X86_AVX) && + cpu_feature_p(CPUFEAT_X86_AESNI)); DISPATCH_PICK_COND(rijndael_dblk, rijndael_dblk_x86ish_aesni, cpu_feature_p(CPUFEAT_X86_AESNI)); #endif