}
#ifdef OPENSSL_IA32_SSE2
- if ((OPENSSL_ia32cap & (1<<25|1<<26)) != (1<<25|1<<26))
+ {
+ extern unsigned int OPENSSL_ia32cap_P[2];
+ if ((OPENSSL_ia32cap_P[0] & (1<<25|1<<26)) != (1<<25|1<<26))
{
FIPSerr(FIPS_F_FIPS_MODULE_MODE_SET,FIPS_R_UNSUPPORTED_PLATFORM);
fips_selftest_fail = 1;
ret = 0;
goto end;
}
+ OPENSSL_ia32cap_P[0] |= (1<<28); /* set "shared cache" */
+ OPENSSL_ia32cap_P[1] &= ~(1<<(60-32)); /* clear AVX */
+ }
#endif
if(fips_signature_witness() != FIPS_signature)