Origin: https://github.com/dolphin-emu/dolphin/commit/2ab51c73c6e384b55ac8b95891bcecc455fae0da.patch Subject: [PATCH] intrinsics: stop defining _xgetbv/_XCR_XFEATURE_ENABLED_MASK, which are reserved --- --- Source/Core/Common/x64CPUDetect.cpp 2016-06-24 10:09:07.000000000 +0200 +++ - 2018-08-19 19:43:35.737800299 +0200 @@ -41,15 +41,27 @@ return __cpuidex(info, function_id, 0); } -#define _XCR_XFEATURE_ENABLED_MASK 0 -static u64 _xgetbv(u32 index) +#endif // ifndef _WIN32 + +#ifdef _WIN32 + +static u64 xgetbv(u32 index) +{ + return _xgetbv(index); +} +constexpr u32 XCR_XFEATURE_ENABLED_MASK = _XCR_XFEATURE_ENABLED_MASK; + +#else + +static u64 xgetbv(u32 index) { u32 eax, edx; __asm__ __volatile__("xgetbv" : "=a"(eax), "=d"(edx) : "c"(index)); return ((u64)edx << 32) | eax; } +constexpr u32 XCR_XFEATURE_ENABLED_MASK = 0; +#endif // ifdef _WIN32 -#endif // ifndef _WIN32 CPUInfo cpu_info; @@ -134,7 +146,7 @@ // - XGETBV result has the XCR bit set. if (((cpu_id[2] >> 28) & 1) && ((cpu_id[2] >> 27) & 1)) { - if ((_xgetbv(_XCR_XFEATURE_ENABLED_MASK) & 0x6) == 0x6) + if ((xgetbv(XCR_XFEATURE_ENABLED_MASK) & 0x6) == 0x6) { bAVX = true; if ((cpu_id[2] >> 12) & 1)