summaryrefslogtreecommitdiff
path: root/src/common/x64/cpu_detect.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2017-03-15 21:01:24 -0400
committerGitHub <noreply@github.com>2017-03-15 21:01:24 -0400
commitbc510f942cb561a7ae213132dbd1f7ebffe78d5b (patch)
tree193aa9b360b2c48cff97d3c2fbaa298fa6be0ccd /src/common/x64/cpu_detect.cpp
parenteb435816e37ce3ce66c0907ac335c78e01964fbf (diff)
parent24e0b1ed8d4a24c814496e1b36236687fc0d442f (diff)
Merge pull request #2626 from yuriks/msvc2017
Fix building with MSVC 2017
Diffstat (limited to 'src/common/x64/cpu_detect.cpp')
-rw-r--r--src/common/x64/cpu_detect.cpp12
1 files changed, 7 insertions, 5 deletions
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() {