X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb/blobdiff_plain/26e182fc3ae2a40dc7d52bab2318d8d1837dfeee..HEAD:/symm/rijndael-base.c diff --git a/symm/rijndael-base.c b/symm/rijndael-base.c index 01f781df..2f651918 100644 --- a/symm/rijndael-base.c +++ b/symm/rijndael-base.c @@ -118,14 +118,21 @@ CPU_DISPATCH(static, EMPTY, void, setup, #if CPUFAM_X86 || CPUFAM_AMD64 extern setup__functype rijndael_setup_x86ish_aesni; +extern setup__functype rijndael_setup_x86ish_aesni_avx; #endif #if CPUFAM_ARMEL && HAVE_AS_ARMV8_CRYPTO extern setup__functype rijndael_setup_arm_crypto; #endif +#if CPUFAM_ARM64 +extern setup__functype rijndael_setup_arm64_crypto; +#endif static setup__functype *pick_setup(void) { #if CPUFAM_X86 || CPUFAM_AMD64 + DISPATCH_PICK_COND(rijndael_setup, rijndael_setup_x86ish_aesni_avx, + cpu_feature_p(CPUFEAT_X86_AVX) && + cpu_feature_p(CPUFEAT_X86_AESNI)); DISPATCH_PICK_COND(rijndael_setup, rijndael_setup_x86ish_aesni, cpu_feature_p(CPUFEAT_X86_AESNI)); #endif @@ -133,6 +140,10 @@ static setup__functype *pick_setup(void) DISPATCH_PICK_COND(rijndael_setup, rijndael_setup_arm_crypto, cpu_feature_p(CPUFEAT_ARM_AES)); #endif +#if CPUFAM_ARM64 + DISPATCH_PICK_COND(rijndael_setup, rijndael_setup_arm64_crypto, + cpu_feature_p(CPUFEAT_ARM_AES)); +#endif DISPATCH_PICK_FALLBACK(rijndael_setup, simple_setup); }