diff --git a/Extensions/DirectXMathAVX.h b/Extensions/DirectXMathAVX.h index b9ae7eb..ace043b 100644 --- a/Extensions/DirectXMathAVX.h +++ b/Extensions/DirectXMathAVX.h @@ -28,7 +28,7 @@ namespace DirectX // See https://msdn.microsoft.com/en-us/library/hskdteyh.aspx int CPUInfo[4] = { -1 }; - #if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid) + #if (defined(__clang__) || defined(__GNUC__)) && !defined(_MSC_VER) __cpuid(0, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]); #else __cpuid(CPUInfo, 0); @@ -37,7 +37,7 @@ namespace DirectX if (CPUInfo[0] < 1) return false; - #if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid) + #if (defined(__clang__) || defined(__GNUC__)) && !defined(_MSC_VER) __cpuid(1, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]); #else __cpuid(CPUInfo, 1); diff --git a/Extensions/DirectXMathAVX2.h b/Extensions/DirectXMathAVX2.h index 57a7b26..c149762 100644 --- a/Extensions/DirectXMathAVX2.h +++ b/Extensions/DirectXMathAVX2.h @@ -29,7 +29,7 @@ namespace DirectX // See https://msdn.microsoft.com/en-us/library/hskdteyh.aspx int CPUInfo[4] = { -1 }; - #if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid) + #if (defined(__clang__) || defined(__GNUC__)) && !defined(_MSC_VER) __cpuid(0, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]); #else __cpuid(CPUInfo, 0); @@ -38,7 +38,7 @@ namespace DirectX if (CPUInfo[0] < 7) return false; - #if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid) + #if (defined(__clang__) || defined(__GNUC__)) && !defined(_MSC_VER) __cpuid(1, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]); #else __cpuid(CPUInfo, 1); @@ -48,7 +48,7 @@ namespace DirectX if ((CPUInfo[2] & 0x38081001) != 0x38081001) return false; - #if defined(__clang__) || defined(__GNUC__) + #if (defined(__clang__) || defined(__GNUC__)) && !defined(_MSC_VER) __cpuid_count(7, 0, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]); #else __cpuidex(CPUInfo, 7, 0); diff --git a/Extensions/DirectXMathBE.h b/Extensions/DirectXMathBE.h index e5fedda..4e30a18 100644 --- a/Extensions/DirectXMathBE.h +++ b/Extensions/DirectXMathBE.h @@ -59,7 +59,7 @@ namespace DirectX // See https://msdn.microsoft.com/en-us/library/hskdteyh.aspx int CPUInfo[4] = { -1 }; - #if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid) + #if (defined(__clang__) || defined(__GNUC__)) && !defined(_MSC_VER) __cpuid(0, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]); #else __cpuid(CPUInfo, 0); @@ -68,7 +68,7 @@ namespace DirectX if (CPUInfo[0] < 1) return false; - #if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid) + #if (defined(__clang__) || defined(__GNUC__)) && !defined(_MSC_VER) __cpuid(1, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]); #else __cpuid(CPUInfo, 1); diff --git a/Extensions/DirectXMathF16C.h b/Extensions/DirectXMathF16C.h index eb6c47c..80a1c5e 100644 --- a/Extensions/DirectXMathF16C.h +++ b/Extensions/DirectXMathF16C.h @@ -29,7 +29,7 @@ namespace DirectX // See https://msdn.microsoft.com/en-us/library/hskdteyh.aspx int CPUInfo[4] = { -1 }; - #if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid) + #if (defined(__clang__) || defined(__GNUC__)) && !defined(_MSC_VER) __cpuid(0, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]); #else __cpuid(CPUInfo, 0); @@ -38,7 +38,7 @@ namespace DirectX if (CPUInfo[0] < 1) return false; - #if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid) + #if (defined(__clang__) || defined(__GNUC__)) && !defined(_MSC_VER) __cpuid(1, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]); #else __cpuid(CPUInfo, 1); diff --git a/Extensions/DirectXMathFMA3.h b/Extensions/DirectXMathFMA3.h index 9f8f30e..db24bc3 100644 --- a/Extensions/DirectXMathFMA3.h +++ b/Extensions/DirectXMathFMA3.h @@ -28,7 +28,7 @@ namespace DirectX // See https://msdn.microsoft.com/en-us/library/hskdteyh.aspx int CPUInfo[4] = { -1 }; - #if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid) + #if (defined(__clang__) || defined(__GNUC__)) && !defined(_MSC_VER) __cpuid(0, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]); #else __cpuid(CPUInfo, 0); @@ -37,7 +37,7 @@ namespace DirectX if (CPUInfo[0] < 1) return false; - #if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid) + #if (defined(__clang__) || defined(__GNUC__)) && !defined(_MSC_VER) __cpuid(1, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]); #else __cpuid(CPUInfo, 1); diff --git a/Extensions/DirectXMathFMA4.h b/Extensions/DirectXMathFMA4.h index 1c35751..1fc15c4 100644 --- a/Extensions/DirectXMathFMA4.h +++ b/Extensions/DirectXMathFMA4.h @@ -33,7 +33,7 @@ namespace DirectX // See https://msdn.microsoft.com/en-us/library/hskdteyh.aspx int CPUInfo[4] = { -1 }; - #if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid) + #if (defined(__clang__) || defined(__GNUC__)) && !defined(_MSC_VER) __cpuid(0, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]); #else __cpuid(CPUInfo, 0); @@ -42,7 +42,7 @@ namespace DirectX if (CPUInfo[0] < 1) return false; - #if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid) + #if (defined(__clang__) || defined(__GNUC__)) && !defined(_MSC_VER) __cpuid(1, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]); #else __cpuid(CPUInfo, 1); @@ -52,20 +52,20 @@ namespace DirectX if ((CPUInfo[2] & 0x18000000) != 0x18000000) return false; - #if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid) + #if (defined(__clang__) || defined(__GNUC__)) && !defined(_MSC_VER) __cpuid(0x80000000, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]); #else - __cpuid(CPUInfo, 0x80000000); + __cpuid(CPUInfo, static_cast(0x80000000)); #endif if (uint32_t(CPUInfo[0]) < 0x80000001u) return false; // We check for FMA4 - #if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid) + #if (defined(__clang__) || defined(__GNUC__)) && !defined(_MSC_VER) __cpuid(0x80000001, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]); #else - __cpuid(CPUInfo, 0x80000001); + __cpuid(CPUInfo, static_cast(0x80000001)); #endif return (CPUInfo[2] & 0x10000); diff --git a/Extensions/DirectXMathSSE3.h b/Extensions/DirectXMathSSE3.h index 8f2ec71..1e57916 100644 --- a/Extensions/DirectXMathSSE3.h +++ b/Extensions/DirectXMathSSE3.h @@ -29,7 +29,7 @@ namespace DirectX // See https://msdn.microsoft.com/en-us/library/hskdteyh.aspx int CPUInfo[4] = { -1 }; - #if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid) + #if (defined(__clang__) || defined(__GNUC__)) && !defined(_MSC_VER) __cpuid(0, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]); #else __cpuid(CPUInfo, 0); @@ -37,7 +37,7 @@ namespace DirectX if (CPUInfo[0] < 1) return false; - #if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid) + #if (defined(__clang__) || defined(__GNUC__)) && !defined(_MSC_VER) __cpuid(1, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]); #else __cpuid(CPUInfo, 1); diff --git a/Extensions/DirectXMathSSE4.h b/Extensions/DirectXMathSSE4.h index 2f45905..5c51131 100644 --- a/Extensions/DirectXMathSSE4.h +++ b/Extensions/DirectXMathSSE4.h @@ -29,7 +29,7 @@ namespace DirectX // See https://msdn.microsoft.com/en-us/library/hskdteyh.aspx int CPUInfo[4] = { -1 }; - #if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid) + #if (defined(__clang__) || defined(__GNUC__)) && !defined(_MSC_VER) __cpuid(0, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]); #else __cpuid(CPUInfo, 0); @@ -37,7 +37,7 @@ namespace DirectX if (CPUInfo[0] < 1) return false; - #if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid) + #if (defined(__clang__) || defined(__GNUC__)) && !defined(_MSC_VER) __cpuid(1, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]); #else __cpuid(CPUInfo, 1); diff --git a/Inc/DirectXMath.h b/Inc/DirectXMath.h index cd6dfcc..417f34f 100644 --- a/Inc/DirectXMath.h +++ b/Inc/DirectXMath.h @@ -124,7 +124,7 @@ #pragma warning(pop) #endif -#if (defined(__clang__) || defined(__GNUC__)) && (__x86_64__ || __i386__) && !defined(__MINGW32__) +#if (defined(__clang__) || defined(__GNUC__)) && (__x86_64__ || __i386__) && !defined(__MINGW32__) && !defined(_MSC_VER) #include #endif diff --git a/Inc/DirectXMathMisc.inl b/Inc/DirectXMathMisc.inl index 5a38db1..49c449b 100644 --- a/Inc/DirectXMathMisc.inl +++ b/Inc/DirectXMathMisc.inl @@ -1973,7 +1973,7 @@ inline bool XMVerifyCPUSupport() noexcept { #if defined(_XM_SSE_INTRINSICS_) && !defined(__powerpc64__) && !defined(_XM_NO_INTRINSICS_) int CPUInfo[4] = { -1 }; -#if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid) +#if (defined(__clang__) || defined(__GNUC__)) && !defined(_MSC_VER) __cpuid(0, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]); #else __cpuid(CPUInfo, 0); @@ -1987,7 +1987,7 @@ inline bool XMVerifyCPUSupport() noexcept return false; #endif -#if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid) +#if (defined(__clang__) || defined(__GNUC__)) && !defined(_MSC_VER) __cpuid(1, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]); #else __cpuid(CPUInfo, 1); @@ -2022,7 +2022,7 @@ inline bool XMVerifyCPUSupport() noexcept return false; // No SSE2/SSE support #if defined(__AVX2__) || defined(_XM_AVX2_INTRINSICS_) -#if defined(__clang__) || defined(__GNUC__) +#if (defined(__clang__) || defined(__GNUC__)) && !defined(_MSC_VER) __cpuid_count(7, 0, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]); #else __cpuidex(CPUInfo, 7, 0);