diff options
m--------- | externals/boost | 0 | ||||
-rw-r--r-- | src/common/x64/cpu_detect.cpp | 12 |
2 files changed, 7 insertions, 5 deletions
diff --git a/externals/boost b/externals/boost -Subproject f005c955f8147a29667aa0b65257abc3dd520b0 +Subproject 351972396392c97a659b9a02f34ce9269293d21 diff --git a/src/common/x64/cpu_detect.cpp b/src/common/x64/cpu_detect.cpp index 370ae2c80..2cb3ab9cc 100644 --- a/src/common/x64/cpu_detect.cpp +++ b/src/common/x64/cpu_detect.cpp @@ -8,9 +8,9 @@ #include "common/common_types.h" #include "cpu_detect.h" -namespace Common { - -#ifndef _MSC_VER +#ifdef _MSC_VER +#include <intrin.h> +#else #if defined(__DragonFly__) || defined(__FreeBSD__) // clang-format off @@ -37,13 +37,15 @@ static inline void __cpuid(int info[4], int function_id) { } #define _XCR_XFEATURE_ENABLED_MASK 0 -static u64 _xgetbv(u32 index) { +static inline u64 _xgetbv(u32 index) { u32 eax, edx; __asm__ __volatile__("xgetbv" : "=a"(eax), "=d"(edx) : "c"(index)); return ((u64)edx << 32) | eax; } -#endif // ifndef _MSC_VER +#endif // _MSC_VER + +namespace Common { // Detects the various CPU features static CPUCaps Detect() { |