< prev index next >

src/hotspot/cpu/x86/vm_version_x86.cpp

Print this page

        

*** 746,756 **** (supports_bmi1() ? ", bmi1" : ""), (supports_bmi2() ? ", bmi2" : ""), (supports_adx() ? ", adx" : ""), (supports_evex() ? ", evex" : ""), (supports_sha() ? ", sha" : ""), ! (supports_fma() ? ", fma" : "")); _features_string = os::strdup(buf); // UseSSE is set to the smaller of what hardware supports and what // the command line requires. I.e., you cannot set UseSSE to 2 on // older Pentiums which do not support it. --- 746,759 ---- (supports_bmi1() ? ", bmi1" : ""), (supports_bmi2() ? ", bmi2" : ""), (supports_adx() ? ", adx" : ""), (supports_evex() ? ", evex" : ""), (supports_sha() ? ", sha" : ""), ! (supports_fma() ? ", fma" : ""), ! (supports_vbmi2() ? ", vbmi2" : ""), ! (supports_vaes() ? ", vaes" : ""), ! (supports_vnni() ? ", vnni" : "")); _features_string = os::strdup(buf); // UseSSE is set to the smaller of what hardware supports and what // the command line requires. I.e., you cannot set UseSSE to 2 on // older Pentiums which do not support it.
*** 1427,1436 **** --- 1430,1449 ---- } else if (UseBMI2Instructions) { warning("BMI2 instructions are not available on this CPU (AVX is also required)"); FLAG_SET_DEFAULT(UseBMI2Instructions, false); } + // To enable VBMI2 we require that processor supports it and also that EVEX encoding is supported and enabled. + if (supports_vbmi2() && UseAVX > 2) { + if (FLAG_IS_DEFAULT(UseVBMI2)) { + UseVBMI2 = true; + } + } else if (UseVBMI2) { + warning("VBMI2 instructions are not available on this CPU"); + FLAG_SET_DEFAULT(UseVBMI2, false); + } + // Use population count instruction if available. if (supports_popcnt()) { if (FLAG_IS_DEFAULT(UsePopCountInstruction)) { UsePopCountInstruction = true; }
< prev index next >