Necesito determinar el soporte del procesador para SSE2 antes de instalar un software. Por lo que entiendo, se me ocurrió esto:¿Determina el soporte del procesador para 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;
}
¿Funcionaría? No estoy seguro de cómo probar, ya que mi CPU lo admite, por lo que no obtengo ningún resultado falso de la llamada a la función.
¿Cómo determino el soporte del procesador para SSE2?
¿Algún sistema operativo en particular? –
Windows xp o superior. – DogDog
Su código debería funcionar bien hasta donde yo sé. Preferiría la forma de CPUID porque es un poco más flexible y también le da acceso a muchas otras banderas de capacidades de la CPU. –