diff --git a/src/xenia/cpu/backend/x64/x64_emitter.cc b/src/xenia/cpu/backend/x64/x64_emitter.cc index 2e36b2285..8884b9a56 100644 --- a/src/xenia/cpu/backend/x64/x64_emitter.cc +++ b/src/xenia/cpu/backend/x64/x64_emitter.cc @@ -81,6 +81,14 @@ X64Emitter::X64Emitter(X64Backend* backend, XbyakAllocator* allocator) 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; + feature_flags_ |= + cpu_.has(Xbyak::util::Cpu::tAVX512F) ? kX64EmitAVX512F : 0; + feature_flags_ |= + cpu_.has(Xbyak::util::Cpu::tAVX512VL) ? kX64EmitAVX512VL : 0; + feature_flags_ |= + cpu_.has(Xbyak::util::Cpu::tAVX512BW) ? kX64EmitAVX512BW : 0; + feature_flags_ |= + cpu_.has(Xbyak::util::Cpu::tAVX512DQ) ? kX64EmitAVX512DQ : 0; } if (!cpu_.has(Xbyak::util::Cpu::tAVX)) { diff --git a/src/xenia/cpu/backend/x64/x64_emitter.h b/src/xenia/cpu/backend/x64/x64_emitter.h index 088a56d6d..a00a68306 100644 --- a/src/xenia/cpu/backend/x64/x64_emitter.h +++ b/src/xenia/cpu/backend/x64/x64_emitter.h @@ -131,6 +131,14 @@ enum X64EmitterFeatureFlags { kX64EmitBMI2 = 1 << 4, kX64EmitF16C = 1 << 5, kX64EmitMovbe = 1 << 6, + + kX64EmitAVX512F = 1 << 7, + kX64EmitAVX512VL = 1 << 8, + kX64EmitAVX512Ortho = kX64EmitAVX512F | kX64EmitAVX512VL, + + kX64EmitAVX512BW = 1 << 9, + kX64EmitAVX512DQ = 1 << 10, + kX64EmitAVX512Ortho64 = kX64EmitAVX512Ortho | kX64EmitAVX512DQ }; class X64Emitter : public Xbyak::CodeGenerator {