From d233de8194db9c7ce5042bb809c88a0b6cb02c83 Mon Sep 17 00:00:00 2001
From: Wunkolo <Wunkolo@gmail.com>
Date: Wed, 23 Feb 2022 10:17:47 -0800
Subject: [PATCH] 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.
---
 src/common/x64/cpu_detect.h | 41 +++++++++++++++++++------------------
 1 file changed, 21 insertions(+), 20 deletions(-)

diff --git a/src/common/x64/cpu_detect.h b/src/common/x64/cpu_detect.h
index e3b63302e..e4f90bee1 100644
--- a/src/common/x64/cpu_detect.h
+++ b/src/common/x64/cpu_detect.h
@@ -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;
 };
 
 /**