在安裝軟件之前,我需要確定處理器對SSE2的支持。據我所知,我想出了這個:確定處理器對SSE2的支持?
bool TestSSE2(char * szErrorMsg)
{
__try
{
__asm
{
xorpd xmm0, xmm0 // executing SSE2 instruction
}
}
#pragma warning (suppress: 6320)
__except (EXCEPTION_EXECUTE_HANDLER)
{
if (_exception_code() == STATUS_ILLEGAL_INSTRUCTION)
{
_tcscpy_s(szErrorMsg,MSGSIZE, _T("Streaming SIMD Extensions 2(SSE2) is not supported by the CPU.\r\n Unable to launch APP"));
return false;
}
_tcscpy_s(szErrorMsg,MSGSIZE, _T("Streaming SIMD Extensions 2(SSE2) is not supported by the CPU.\r\n Unable to launch APP"));
return false;
}
return true;
}
這項工作?我不太確定如何測試,因爲我的CPU支持它,所以我不會從函數調用中弄錯。
如何確定處理器對SSE2的支持?
任何特定的操作系統? –
Windows xp或更高版本。 – DogDog
就我所知,您的代碼應該正常工作。我更喜歡CPUID方式,因爲它更靈活一些,並且還可以訪問大量其他CPU能力標誌。 –