mirror of
https://github.com/microsoft/DirectXMath
synced 2024-11-09 14:10:09 +00:00
Use two-argument cpuid when using recent MinGW (#172)
This commit is contained in:
parent
a4f6d7bd78
commit
a55148fc56
@ -28,7 +28,7 @@ inline bool XMVerifyAVXSupport()
|
|||||||
|
|
||||||
// See http://msdn.microsoft.com/en-us/library/hskdteyh.aspx
|
// See http://msdn.microsoft.com/en-us/library/hskdteyh.aspx
|
||||||
int CPUInfo[4] = {-1};
|
int CPUInfo[4] = {-1};
|
||||||
#if defined(__clang__) || defined(__GNUC__)
|
#if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid)
|
||||||
__cpuid(0, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
__cpuid(0, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
||||||
#else
|
#else
|
||||||
__cpuid( CPUInfo, 0 );
|
__cpuid( CPUInfo, 0 );
|
||||||
@ -37,7 +37,7 @@ inline bool XMVerifyAVXSupport()
|
|||||||
if ( CPUInfo[0] < 1 )
|
if ( CPUInfo[0] < 1 )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
#if defined(__clang__) || defined(__GNUC__)
|
#if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid)
|
||||||
__cpuid(1, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
__cpuid(1, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
||||||
#else
|
#else
|
||||||
__cpuid(CPUInfo, 1 );
|
__cpuid(CPUInfo, 1 );
|
||||||
|
@ -29,7 +29,7 @@ inline bool XMVerifyAVX2Support()
|
|||||||
|
|
||||||
// See http://msdn.microsoft.com/en-us/library/hskdteyh.aspx
|
// See http://msdn.microsoft.com/en-us/library/hskdteyh.aspx
|
||||||
int CPUInfo[4] = {-1};
|
int CPUInfo[4] = {-1};
|
||||||
#if defined(__clang__) || defined(__GNUC__)
|
#if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid)
|
||||||
__cpuid(0, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
__cpuid(0, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
||||||
#else
|
#else
|
||||||
__cpuid(CPUInfo, 0);
|
__cpuid(CPUInfo, 0);
|
||||||
@ -38,7 +38,7 @@ inline bool XMVerifyAVX2Support()
|
|||||||
if ( CPUInfo[0] < 7 )
|
if ( CPUInfo[0] < 7 )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
#if defined(__clang__) || defined(__GNUC__)
|
#if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid)
|
||||||
__cpuid(1, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
__cpuid(1, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
||||||
#else
|
#else
|
||||||
__cpuid(CPUInfo, 1);
|
__cpuid(CPUInfo, 1);
|
||||||
|
@ -59,7 +59,7 @@ inline bool XMVerifySSSE3Support()
|
|||||||
|
|
||||||
// See http://msdn.microsoft.com/en-us/library/hskdteyh.aspx
|
// See http://msdn.microsoft.com/en-us/library/hskdteyh.aspx
|
||||||
int CPUInfo[4] = { -1 };
|
int CPUInfo[4] = { -1 };
|
||||||
#if defined(__clang__) || defined(__GNUC__)
|
#if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid)
|
||||||
__cpuid(0, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
__cpuid(0, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
||||||
#else
|
#else
|
||||||
__cpuid(CPUInfo, 0);
|
__cpuid(CPUInfo, 0);
|
||||||
@ -68,7 +68,7 @@ inline bool XMVerifySSSE3Support()
|
|||||||
if ( CPUInfo[0] < 1 )
|
if ( CPUInfo[0] < 1 )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
#if defined(__clang__) || defined(__GNUC__)
|
#if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid)
|
||||||
__cpuid(1, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
__cpuid(1, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
||||||
#else
|
#else
|
||||||
__cpuid(CPUInfo, 1);
|
__cpuid(CPUInfo, 1);
|
||||||
|
@ -29,7 +29,7 @@ inline bool XMVerifyF16CSupport()
|
|||||||
|
|
||||||
// See http://msdn.microsoft.com/en-us/library/hskdteyh.aspx
|
// See http://msdn.microsoft.com/en-us/library/hskdteyh.aspx
|
||||||
int CPUInfo[4] = { -1 };
|
int CPUInfo[4] = { -1 };
|
||||||
#if defined(__clang__) || defined(__GNUC__)
|
#if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid)
|
||||||
__cpuid(0, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
__cpuid(0, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
||||||
#else
|
#else
|
||||||
__cpuid(CPUInfo, 0);
|
__cpuid(CPUInfo, 0);
|
||||||
@ -38,7 +38,7 @@ inline bool XMVerifyF16CSupport()
|
|||||||
if ( CPUInfo[0] < 1 )
|
if ( CPUInfo[0] < 1 )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
#if defined(__clang__) || defined(__GNUC__)
|
#if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid)
|
||||||
__cpuid(1, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
__cpuid(1, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
||||||
#else
|
#else
|
||||||
__cpuid(CPUInfo, 1);
|
__cpuid(CPUInfo, 1);
|
||||||
|
@ -28,7 +28,7 @@ inline bool XMVerifyFMA3Support()
|
|||||||
|
|
||||||
// See http://msdn.microsoft.com/en-us/library/hskdteyh.aspx
|
// See http://msdn.microsoft.com/en-us/library/hskdteyh.aspx
|
||||||
int CPUInfo[4] = {-1};
|
int CPUInfo[4] = {-1};
|
||||||
#if defined(__clang__) || defined(__GNUC__)
|
#if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid)
|
||||||
__cpuid(0, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
__cpuid(0, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
||||||
#else
|
#else
|
||||||
__cpuid(CPUInfo, 0);
|
__cpuid(CPUInfo, 0);
|
||||||
@ -37,7 +37,7 @@ inline bool XMVerifyFMA3Support()
|
|||||||
if ( CPUInfo[0] < 1 )
|
if ( CPUInfo[0] < 1 )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
#if defined(__clang__) || defined(__GNUC__)
|
#if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid)
|
||||||
__cpuid(1, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
__cpuid(1, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
||||||
#else
|
#else
|
||||||
__cpuid(CPUInfo, 1);
|
__cpuid(CPUInfo, 1);
|
||||||
|
@ -33,7 +33,7 @@ inline bool XMVerifyFMA4Support()
|
|||||||
|
|
||||||
// See http://msdn.microsoft.com/en-us/library/hskdteyh.aspx
|
// See http://msdn.microsoft.com/en-us/library/hskdteyh.aspx
|
||||||
int CPUInfo[4] = {-1};
|
int CPUInfo[4] = {-1};
|
||||||
#if defined(__clang__) || defined(__GNUC__)
|
#if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid)
|
||||||
__cpuid(0, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
__cpuid(0, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
||||||
#else
|
#else
|
||||||
__cpuid(CPUInfo, 0);
|
__cpuid(CPUInfo, 0);
|
||||||
@ -42,7 +42,7 @@ inline bool XMVerifyFMA4Support()
|
|||||||
if ( CPUInfo[0] < 1 )
|
if ( CPUInfo[0] < 1 )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
#if defined(__clang__) || defined(__GNUC__)
|
#if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid)
|
||||||
__cpuid(1, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
__cpuid(1, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
||||||
#else
|
#else
|
||||||
__cpuid(CPUInfo, 1);
|
__cpuid(CPUInfo, 1);
|
||||||
@ -52,7 +52,7 @@ inline bool XMVerifyFMA4Support()
|
|||||||
if ( (CPUInfo[2] & 0x18000000) != 0x18000000 )
|
if ( (CPUInfo[2] & 0x18000000) != 0x18000000 )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
#if defined(__clang__) || defined(__GNUC__)
|
#if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid)
|
||||||
__cpuid(0x80000000, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
__cpuid(0x80000000, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
||||||
#else
|
#else
|
||||||
__cpuid(CPUInfo, 0x80000000);
|
__cpuid(CPUInfo, 0x80000000);
|
||||||
@ -62,7 +62,7 @@ inline bool XMVerifyFMA4Support()
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
// We check for FMA4
|
// We check for FMA4
|
||||||
#if defined(__clang__) || defined(__GNUC__)
|
#if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid)
|
||||||
__cpuid(0x80000001, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
__cpuid(0x80000001, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
||||||
#else
|
#else
|
||||||
__cpuid(CPUInfo, 0x80000001);
|
__cpuid(CPUInfo, 0x80000001);
|
||||||
|
@ -29,7 +29,7 @@ inline bool XMVerifySSE3Support()
|
|||||||
|
|
||||||
// See http://msdn.microsoft.com/en-us/library/hskdteyh.aspx
|
// See http://msdn.microsoft.com/en-us/library/hskdteyh.aspx
|
||||||
int CPUInfo[4] = { -1 };
|
int CPUInfo[4] = { -1 };
|
||||||
#if defined(__clang__) || defined(__GNUC__)
|
#if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid)
|
||||||
__cpuid(0, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
__cpuid(0, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
||||||
#else
|
#else
|
||||||
__cpuid(CPUInfo, 0);
|
__cpuid(CPUInfo, 0);
|
||||||
@ -37,7 +37,7 @@ inline bool XMVerifySSE3Support()
|
|||||||
if ( CPUInfo[0] < 1 )
|
if ( CPUInfo[0] < 1 )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
#if defined(__clang__) || defined(__GNUC__)
|
#if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid)
|
||||||
__cpuid(1, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
__cpuid(1, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
||||||
#else
|
#else
|
||||||
__cpuid(CPUInfo, 1);
|
__cpuid(CPUInfo, 1);
|
||||||
|
@ -29,7 +29,7 @@ inline bool XMVerifySSE4Support()
|
|||||||
|
|
||||||
// See http://msdn.microsoft.com/en-us/library/hskdteyh.aspx
|
// See http://msdn.microsoft.com/en-us/library/hskdteyh.aspx
|
||||||
int CPUInfo[4] = { -1 };
|
int CPUInfo[4] = { -1 };
|
||||||
#if defined(__clang__) || defined(__GNUC__)
|
#if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid)
|
||||||
__cpuid(0, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
__cpuid(0, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
||||||
#else
|
#else
|
||||||
__cpuid(CPUInfo, 0);
|
__cpuid(CPUInfo, 0);
|
||||||
@ -37,7 +37,7 @@ inline bool XMVerifySSE4Support()
|
|||||||
if ( CPUInfo[0] < 1 )
|
if ( CPUInfo[0] < 1 )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
#if defined(__clang__) || defined(__GNUC__)
|
#if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid)
|
||||||
__cpuid(1, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
__cpuid(1, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
||||||
#else
|
#else
|
||||||
__cpuid(CPUInfo, 1);
|
__cpuid(CPUInfo, 1);
|
||||||
|
@ -1973,7 +1973,7 @@ inline bool XMVerifyCPUSupport() noexcept
|
|||||||
{
|
{
|
||||||
#if defined(_XM_SSE_INTRINSICS_) && !defined(_XM_NO_INTRINSICS_)
|
#if defined(_XM_SSE_INTRINSICS_) && !defined(_XM_NO_INTRINSICS_)
|
||||||
int CPUInfo[4] = { -1 };
|
int CPUInfo[4] = { -1 };
|
||||||
#if defined(__clang__) || defined(__GNUC__)
|
#if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid)
|
||||||
__cpuid(0, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
__cpuid(0, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
||||||
#else
|
#else
|
||||||
__cpuid(CPUInfo, 0);
|
__cpuid(CPUInfo, 0);
|
||||||
@ -1987,7 +1987,7 @@ inline bool XMVerifyCPUSupport() noexcept
|
|||||||
return false;
|
return false;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__clang__) || defined(__GNUC__)
|
#if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid)
|
||||||
__cpuid(1, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
__cpuid(1, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]);
|
||||||
#else
|
#else
|
||||||
__cpuid(CPUInfo, 1);
|
__cpuid(CPUInfo, 1);
|
||||||
|
Loading…
Reference in New Issue
Block a user