8059139: It should be possible to explicitly disable usage of TZCNT instr w/ -XX:-UseBMI1Instructions
Reviewed-by: iveresov
This commit is contained in:
parent
4b046500b7
commit
44d1787a26
@ -865,14 +865,19 @@ void VM_Version::get_processor_features() {
|
||||
if (supports_bmi1()) {
|
||||
// tzcnt does not require VEX prefix
|
||||
if (FLAG_IS_DEFAULT(UseCountTrailingZerosInstruction)) {
|
||||
UseCountTrailingZerosInstruction = true;
|
||||
if (!UseBMI1Instructions && !FLAG_IS_DEFAULT(UseBMI1Instructions)) {
|
||||
// Don't use tzcnt if BMI1 is switched off on command line.
|
||||
UseCountTrailingZerosInstruction = false;
|
||||
} else {
|
||||
UseCountTrailingZerosInstruction = true;
|
||||
}
|
||||
}
|
||||
} else if (UseCountTrailingZerosInstruction) {
|
||||
warning("tzcnt instruction is not available on this CPU");
|
||||
FLAG_SET_DEFAULT(UseCountTrailingZerosInstruction, false);
|
||||
}
|
||||
|
||||
// BMI instructions use an encoding with VEX prefix.
|
||||
// BMI instructions (except tzcnt) use an encoding with VEX prefix.
|
||||
// VEX prefix is generated only when AVX > 0.
|
||||
if (supports_bmi1() && supports_avx()) {
|
||||
if (FLAG_IS_DEFAULT(UseBMI1Instructions)) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user