Browse Source

Fix build of aesni on msvc

Vivyy 2 weeks ago
parent
commit
89b37c3606
1 changed files with 9 additions and 0 deletions
  1. 9 0
      src/ciphers/aes/aes_desc.c

+ 9 - 0
src/ciphers/aes/aes_desc.c

@@ -63,10 +63,19 @@ static LTC_INLINE int s_aesni_is_supported(void)
       a = 1;
       a = 1;
       c = 0;
       c = 0;
 
 
+#if defined(_MSC_VER) && !defined(__clang__)
+      int arr[4];
+      __cpuidex(arr, a, c);
+      a = arr[0];
+      b = arr[1];
+      c = arr[2];
+      d = arr[3];
+#else
       __asm__ volatile ("cpuid"
       __asm__ volatile ("cpuid"
            :"=a"(a), "=b"(b), "=c"(c), "=d"(d)
            :"=a"(a), "=b"(b), "=c"(c), "=d"(d)
            :"a"(a), "c"(c)
            :"a"(a), "c"(c)
           );
           );
+#endif
 
 
       is_supported = ((c >> 19) & 1) && ((c >> 25) & 1);
       is_supported = ((c >> 19) & 1) && ((c >> 25) & 1);
       initialized = 1;
       initialized = 1;