Skip to content
Permalink
Browse files
Merge pull request #6783 from booto/xgetbv
intrinsics: stop defining _xgetbv/_XCR_XFEATURE_ENABLED_MASK, which a…
  • Loading branch information
leoetlino committed May 8, 2018
2 parents 1ec3a4d + 823fdda commit 2ab51c7
Showing 1 changed file with 16 additions and 5 deletions.
@@ -37,15 +37,26 @@ static inline void __cpuid(int info[4], int function_id)
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;
}

#endif // ifndef _WIN32
constexpr u32 XCR_XFEATURE_ENABLED_MASK = 0;
#endif // ifdef _WIN32

CPUInfo cpu_info;

@@ -139,7 +150,7 @@ void CPUInfo::Detect()
// - 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)

0 comments on commit 2ab51c7

Please sign in to comment.