[x64] Add `kX64EmitBMI1` feature-flag and detection
The `BMI1 feature` fits into the current pattern of `use_haswell_instructions` as BMI1 was only introduced in haswell. Also moved the aliases to the end of the enum rather than interleave it with the bit definitions.
This commit is contained in:
parent
0fdb855a11
commit
3ab43d480d
|
@ -78,6 +78,7 @@ X64Emitter::X64Emitter(X64Backend* backend, XbyakAllocator* allocator)
|
|||
feature_flags_ |= cpu_.has(Xbyak::util::Cpu::tAVX2) ? kX64EmitAVX2 : 0;
|
||||
feature_flags_ |= cpu_.has(Xbyak::util::Cpu::tFMA) ? kX64EmitFMA : 0;
|
||||
feature_flags_ |= cpu_.has(Xbyak::util::Cpu::tLZCNT) ? kX64EmitLZCNT : 0;
|
||||
feature_flags_ |= cpu_.has(Xbyak::util::Cpu::tBMI1) ? kX64EmitBMI1 : 0;
|
||||
feature_flags_ |= cpu_.has(Xbyak::util::Cpu::tBMI2) ? kX64EmitBMI2 : 0;
|
||||
feature_flags_ |= cpu_.has(Xbyak::util::Cpu::tF16C) ? kX64EmitF16C : 0;
|
||||
feature_flags_ |= cpu_.has(Xbyak::util::Cpu::tMOVBE) ? kX64EmitMovbe : 0;
|
||||
|
|
|
@ -128,16 +128,18 @@ enum X64EmitterFeatureFlags {
|
|||
kX64EmitAVX2 = 1 << 1,
|
||||
kX64EmitFMA = 1 << 2,
|
||||
kX64EmitLZCNT = 1 << 3,
|
||||
kX64EmitBMI2 = 1 << 4,
|
||||
kX64EmitF16C = 1 << 5,
|
||||
kX64EmitMovbe = 1 << 6,
|
||||
kX64EmitBMI1 = 1 << 4,
|
||||
kX64EmitBMI2 = 1 << 5,
|
||||
kX64EmitF16C = 1 << 6,
|
||||
kX64EmitMovbe = 1 << 7,
|
||||
|
||||
kX64EmitAVX512F = 1 << 8,
|
||||
kX64EmitAVX512VL = 1 << 9,
|
||||
|
||||
kX64EmitAVX512BW = 1 << 10,
|
||||
kX64EmitAVX512DQ = 1 << 11,
|
||||
|
||||
kX64EmitAVX512F = 1 << 7,
|
||||
kX64EmitAVX512VL = 1 << 8,
|
||||
kX64EmitAVX512Ortho = kX64EmitAVX512F | kX64EmitAVX512VL,
|
||||
|
||||
kX64EmitAVX512BW = 1 << 9,
|
||||
kX64EmitAVX512DQ = 1 << 10,
|
||||
kX64EmitAVX512Ortho64 = kX64EmitAVX512Ortho | kX64EmitAVX512DQ
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue