]> git.saurik.com Git - apple/xnu.git/blobdiff - osfmk/corecrypto/ccsha2/src/ccsha256_di.c
xnu-4903.221.2.tar.gz
[apple/xnu.git] / osfmk / corecrypto / ccsha2 / src / ccsha256_di.c
index c0b031a0d0d1013710f56e844efee1d77d41675e..c702b9736c7ab499ede23187f35a1e4f7452aa73 100644 (file)
@@ -33,6 +33,7 @@
  */
 
 #include <corecrypto/ccsha2.h>
+#include "ccsha2_internal.h"
 #include <corecrypto/cc_runtime_config.h>
 
 #include "corecrypto/fipspost_trace.h"
@@ -43,8 +44,11 @@ const struct ccdigest_info *ccsha256_di(void)
 
 #if  CCSHA2_VNG_INTEL
 #if defined (__x86_64__)
-    return ( (CC_HAS_AVX2() ? &ccsha256_vng_intel_AVX2_di : 
-               ( (CC_HAS_AVX1() ? &ccsha256_vng_intel_AVX1_di : 
+    if (CC_HAS_AVX512_AND_IN_KERNEL())
+        return &ccsha256_vng_intel_SupplementalSSE3_di;
+    else
+    return ( (CC_HAS_AVX2() ? &ccsha256_vng_intel_AVX2_di :
+               ( (CC_HAS_AVX1() ? &ccsha256_vng_intel_AVX1_di :
                        &ccsha256_vng_intel_SupplementalSSE3_di ) ) ) ) ;
 #else
     return &ccsha256_vng_intel_SupplementalSSE3_di;