Bir yazılım yüklemeden önce SSE2 için işlemci desteğini belirlemem gerekir. Anladığım kadarıyla, bununla geldim:SSE2 için işlemci desteğini belirleyin?
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;
}
Bu işe yarar mı? CPU'nun bunu desteklediğinden, nasıl test edeceğime gerçekten emin değilim, bu yüzden işlev çağrısından yanlış anlamıyorum.
SSE2 için işlemci desteğini nasıl belirlerim?
Herhangi bir işletim sistemi? –
Windows xp veya daha üstü. – DogDog
Kodunuz, söyleyebileceğim kadar iyi çalışmalı. CPUID yöntemini tercih ederim çünkü biraz daha esnek ve size diğer birçok CPU yetenek bayraklarına da erişmenizi sağlıyor. –