diff --git a/include/msvcrt/intrin.h b/include/msvcrt/intrin.h index 5ad2776450a..38496251d5a 100644 --- a/include/msvcrt/intrin.h +++ b/include/msvcrt/intrin.h @@ -12,9 +12,13 @@ extern "C" { #endif #if defined(__i386__) || defined(__x86_64__) +static inline void __cpuidex(int info[4], int ax, int cx) +{ + __asm__ ("cpuid" : "=a"(info[0]), "=b" (info[1]), "=c"(info[2]), "=d"(info[3]) : "a"(ax), "c"(cx)); +} static inline void __cpuid(int info[4], int ax) { - __asm__ ("cpuid" : "=a"(info[0]), "=b" (info[1]), "=c"(info[2]), "=d"(info[3]) : "a"(ax), "c"(0)); + return __cpuidex(info, ax, 0); } #endif