@@ -63,10 +63,19 @@ static LTC_INLINE int s_aesni_is_supported(void)
a = 1;
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"
:"=a"(a), "=b"(b), "=c"(c), "=d"(d)
:"a"(a), "c"(c)
);
+#endif
is_supported = ((c >> 19) & 1) && ((c >> 25) & 1);
initialized = 1;