cpu_detect: Compact capability fields

As this structure gets more explicit, bools can be bitfields and
small enums can use smaller types for their span of values.
This commit is contained in:
Wunkolo 2022-02-23 10:17:47 -08:00
parent add2cfcb96
commit d233de8194

View file

@ -1,12 +1,13 @@
// Copyright 2013 Dolphin Emulator Project / 2015 Citra Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
// Copyright 2013 Dolphin Emulator Project / 2015 Citra Emulator Project / 2022 Yuzu Emulator
// Project Project Licensed under GPLv2 or any later version Refer to the license.txt file included.
#pragma once
#include "common/common_types.h"
namespace Common {
enum class Manufacturer : u32 {
enum class Manufacturer : u8 {
Intel = 0,
AMD = 1,
Hygon = 2,
@ -18,25 +19,25 @@ struct CPUCaps {
Manufacturer manufacturer;
char cpu_string[0x21];
char brand_string[0x41];
bool sse;
bool sse2;
bool sse3;
bool ssse3;
bool sse4_1;
bool sse4_2;
bool lzcnt;
bool avx;
bool avx2;
bool avx512;
bool bmi1;
bool bmi2;
bool fma;
bool fma4;
bool aes;
bool invariant_tsc;
u32 base_frequency;
u32 max_frequency;
u32 bus_frequency;
bool sse : 1;
bool sse2 : 1;
bool sse3 : 1;
bool ssse3 : 1;
bool sse4_1 : 1;
bool sse4_2 : 1;
bool lzcnt : 1;
bool avx : 1;
bool avx2 : 1;
bool avx512 : 1;
bool bmi1 : 1;
bool bmi2 : 1;
bool fma : 1;
bool fma4 : 1;
bool aes : 1;
bool invariant_tsc : 1;
};
/**