(removing the list to avoid "spamming" them while we're in debug mode)
Actually that should be
static inline bool CPLDetectSSE3()
{
int cpuinfo[4] = { 0, 0, 0, 0 };
CPL_CPUID(0, cpuinfo);
if( cpuinfo[REG_EAX] <= 2 )
return false;
CPL_CPUID(0x80000000, cpuinfo);
if( static_cast<unsigned>(cpuinfo[REG_EAX]) < 1 )
return false;
CPL_CPUID(1, cpuinfo);
fprintf(stderr, "ECX = 0x%X\n", cpuinfo[REG_ECX]);
return (cpuinfo[REG_ECX] & (1 << CPUID_SSSE3_ECX_BIT)) != 0;
}
The static_cast<unsigned>(cpuinfo[REG_EAX]) <= 1 has been changed to < 1
I don't think that would make a difference. Your CPU does support extended
status, but my assumption is that CPL_CPUID(0x80000000, cpuinfo) must be
called before CPL_CPUID(1, cpuinfo) so the later gets correct results (not
super confident that it will change anything...)
If that still doesn't work, I'm a bit short of idea and would need to be able
to test locally if you can provide ssh access.
--
Spatialys - Geospatial professional services
http://www.spatialys.com
_______________________________________________
gdal-dev mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/gdal-dev