[x64] Add kX64EmitGFNI emitter feature-flag

This determines support for the `gf2p8affineqb` instruction. Even though `GFNI` is typically found with AVX512-enabled chips, it _is_ possible for there to be a chip with `GFNI` but does not support `AVX` or `AVX2` of any sort. An example of this is Tremont(Lakefield) chips as well as Jasper Lake.

13df339fe7/GenuineIntel/GenuineIntel00806A1_Lakefield_LC_InstLatX64.txt (L1297-L1299)

13df339fe7/GenuineIntel/GenuineIntel00906C0_JasperLake_InstLatX64.txt (L1252-L1254)
This commit is contained in:
Wunkolo
2021-12-28 20:08:48 -08:00
committed by Rick Gibbed
parent 5d1b53cd6f
commit fba23e3e75
3 changed files with 12 additions and 8 deletions

View File

@@ -88,6 +88,8 @@ X64Emitter::X64Emitter(X64Backend* backend, XbyakAllocator* allocator)
feature_flags_ |= cpu_.has(Xbyak::util::Cpu::tF16C) ? kX64EmitF16C : 0;
if (cvars::x64_extension_mask & kX64EmitMovbe)
feature_flags_ |= cpu_.has(Xbyak::util::Cpu::tMOVBE) ? kX64EmitMovbe : 0;
if (cvars::x64_extension_mask & kX64EmitGFNI)
feature_flags_ |= cpu_.has(Xbyak::util::Cpu::tGFNI) ? kX64EmitGFNI : 0;
if (cvars::x64_extension_mask & kX64EmitAVX512F)
feature_flags_ |=
cpu_.has(Xbyak::util::Cpu::tAVX512F) ? kX64EmitAVX512F : 0;