Skip to content

Commit b0e61a3

Browse files
committed
💩 I have just finished the part of the cpuid instruction.
I have just finished the part of the cpuid instruction that works but is bad and not optimised. I have found few solutions to optimise it.
1 parent ff25987 commit b0e61a3

File tree

6 files changed

+586
-109
lines changed

6 files changed

+586
-109
lines changed

Taskfile.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ tasks:
3535
- sh: '{{if eq OS "windows"}} powershell.exe -Command Test-Path dist {{else}} test ! -d dist {{end}}'
3636
msg: "Nothing to be done."
3737
cmds:
38-
- meson setup build --buildtype=debugoptimized --prefix=$(pwd)
38+
- meson setup build --buildtype=debug --prefix=$(pwd)
3939
- ninja -C build install
4040
silent: true
4141
desc: "Build the project in dev build"

inc/eth-cpuid-flag.h

Lines changed: 207 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -59,18 +59,17 @@ typedef enum eth_cpuid_eax_flag_t
5959

6060
typedef enum eth_cpuid_ecx_flag_t
6161
{
62-
ETH_CPUID_EXT_FEAT_ECX_PAGE_1 = 0x0,
63-
ETH_CPUID_EXT_FEAT_ECX_PAGE_2 = 0x1,
64-
ETH_CPUID_EXT_FEAT_ECX_PAGE_3 = 0x2,
65-
ETH_CPUID_XSAVE_FEAT_ECX_PAGE_1 = 0x0,
66-
ETH_CPUID_XSAVE_FEAT_ECX_PAGE_2 = 0x1,
67-
ETH_CPUID_SGX_ECX_PAGE_1 = 0x0,
68-
ETH_CPUID_SGX_ECX_PAGE_2 = 0x1,
69-
ETH_CPUID_SGX_ECX_PAGE_3 = 0x2,
70-
ETH_CPUID_PROC_TRACE_ECX = 0x0,
71-
ETH_CPUID_SOC_VENDOR_ATTRIB_ECX = 0x0,
72-
ETH_CPUID_AVX10_FEAT_ECX = 0x0,
73-
ETH_CPUID_DISCRET_AVX10_FEAT_ECX = 0x1
62+
FEAT_ECX_PAGE_1 = 0x1,
63+
FEAT_ECX_PAGE_2 = 0x2,
64+
XSAVE_FEAT_ECX_PAGE_1 = 0x0,
65+
XSAVE_FEAT_ECX_PAGE_2 = 0x1,
66+
SGX_ECX_PAGE_1 = 0x0,
67+
SGX_ECX_PAGE_2 = 0x1,
68+
SGX_ECX_PAGE_3 = 0x2,
69+
PROC_TRACE_ECX = 0x0,
70+
SOC_VENDOR_ATTRIB_ECX = 0x0,
71+
AVX10_FEAT_ECX = 0x0,
72+
DISCRET_AVX10_FEAT_ECX = 0x1
7473
} eth_cpuid_ecx_flag_t;
7574

7675
typedef enum eth_cpuid_reg_index_t
@@ -85,68 +84,200 @@ typedef enum eth_cpuid_reg_index_t
8584
#pragma GCC diagnostic ignored "-Wpedantic"
8685
typedef enum eth_cpuid_feat_flag_t
8786
{
88-
ETH_CPUID_FEAT_FPU = BIN_NUM_1(0),
89-
ETH_CPUID_FEAT_VME = BIN_NUM_1(1),
90-
ETH_CPUID_FEAT_DE = BIN_NUM_1(2),
91-
ETH_CPUID_FEAT_PSE = BIN_NUM_1(3),
92-
ETH_CPUID_FEAT_TSC = BIN_NUM_1(4),
93-
ETH_CPUID_FEAT_MSR = BIN_NUM_1(5),
94-
ETH_CPUID_FEAT_PAE = BIN_NUM_1(6),
95-
ETH_CPUID_FEAT_MCE = BIN_NUM_1(7),
96-
ETH_CPUID_FEAT_CX8 = BIN_NUM_1(8),
97-
ETH_CPUID_FEAT_APIC = BIN_NUM_1(9),
98-
ETH_CPUID_FEAT_SEP = BIN_NUM_1(11),
99-
ETH_CPUID_FEAT_MTRR = BIN_NUM_1(12),
100-
ETH_CPUID_FEAT_PGE = BIN_NUM_1(13),
101-
ETH_CPUID_FEAT_MCA = BIN_NUM_1(14),
102-
ETH_CPUID_FEAT_CMOV = BIN_NUM_1(15),
103-
ETH_CPUID_FEAT_PAT = BIN_NUM_1(16),
104-
ETH_CPUID_FEAT_PSE36 = BIN_NUM_1(17),
105-
ETH_CPUID_FEAT_PSN = BIN_NUM_1(18),
106-
ETH_CPUID_FEAT_CLFSH = BIN_NUM_1(19),
107-
ETH_CPUID_FEAT_NX = BIN_NUM_1(20),
108-
ETH_CPUID_FEAT_DS = BIN_NUM_1(21),
109-
ETH_CPUID_FEAT_ACPI = BIN_NUM_1(22),
110-
ETH_CPUID_FEAT_MMX = BIN_NUM_1(23),
111-
ETH_CPUID_FEAT_FXSR = BIN_NUM_1(24),
112-
ETH_CPUID_FEAT_SSE = BIN_NUM_1(25),
113-
ETH_CPUID_FEAT_SSE2 = BIN_NUM_1(26),
114-
ETH_CPUID_FEAT_SS = BIN_NUM_1(27),
115-
ETH_CPUID_FEAT_HTT = BIN_NUM_1(28),
116-
ETH_CPUID_FEAT_TM = BIN_NUM_1(29),
117-
ETH_CPUID_FEAT_IA64 = BIN_NUM_1(30),
118-
ETH_CPUID_FEAT_PBE = BIN_NUM_1(31),
119-
ETH_CPUID_FEAT_SSE3 = BIN_NUM_1(0),
120-
ETH_CPUID_FEAT_PCLMULQDQ = BIN_NUM_1(1),
121-
ETH_CPUID_FEAT_DTES64 = BIN_NUM_1(2),
122-
ETH_CPUID_FEAT_MONITOR = BIN_NUM_1(3),
123-
ETH_CPUID_FEAT_DS_CPL = BIN_NUM_1(4),
124-
ETH_CPUID_FEAT_VMX = BIN_NUM_1(5),
125-
ETH_CPUID_FEAT_SMX = BIN_NUM_1(6),
126-
ETH_CPUID_FEAT_EST = BIN_NUM_1(7),
127-
ETH_CPUID_FEAT_TM2 = BIN_NUM_1(8),
128-
ETH_CPUID_FEAT_SSSE3 = BIN_NUM_1(9),
129-
ETH_CPUID_FEAT_CNXT_ID = BIN_NUM_1(10),
130-
ETH_CPUID_FEAT_SDBG = BIN_NUM_1(11),
131-
ETH_CPUID_FEAT_FMA = BIN_NUM_1(12),
132-
ETH_CPUID_FEAT_CX16 = BIN_NUM_1(13),
133-
ETH_CPUID_FEAT_XTPR = BIN_NUM_1(14),
134-
ETH_CPUID_FEAT_PDCM = BIN_NUM_1(15),
135-
ETH_CPUID_FEAT_PCID = BIN_NUM_1(17),
136-
ETH_CPUID_FEAT_DCA = BIN_NUM_1(18),
137-
ETH_CPUID_FEAT_SSE41 = BIN_NUM_1(19),
138-
ETH_CPUID_FEAT_SSE42 = BIN_NUM_1(20),
139-
ETH_CPUID_FEAT_X2APIC = BIN_NUM_1(21),
140-
ETH_CPUID_FEAT_MOVBE = BIN_NUM_1(22),
141-
ETH_CPUID_FEAT_POPCNT = BIN_NUM_1(23),
142-
ETH_CPUID_FEAT_TSC_DLINE = BIN_NUM_1(24),
143-
ETH_CPUID_FEAT_AES_NI = BIN_NUM_1(25),
144-
ETH_CPUID_FEAT_XSAVE = BIN_NUM_1(26),
145-
ETH_CPUID_FEAT_OSXSAVE = BIN_NUM_1(27),
146-
ETH_CPUID_FEAT_AVX = BIN_NUM_1(28),
147-
ETH_CPUID_FEAT_F16C = BIN_NUM_1(29),
148-
ETH_CPUID_FEAT_RDRND = BIN_NUM_1(30),
149-
ETH_CPUID_FEAT_HYPERVISOR = BIN_NUM_1(31)
87+
ETH_CPUID_FEAT_FPU = BIN_NUM_1(0),
88+
ETH_CPUID_FEAT_VME = BIN_NUM_1(1),
89+
ETH_CPUID_FEAT_DE = BIN_NUM_1(2),
90+
ETH_CPUID_FEAT_PSE = BIN_NUM_1(3),
91+
ETH_CPUID_FEAT_TSC = BIN_NUM_1(4),
92+
ETH_CPUID_FEAT_MSR = BIN_NUM_1(5),
93+
ETH_CPUID_FEAT_PAE = BIN_NUM_1(6),
94+
ETH_CPUID_FEAT_MCE = BIN_NUM_1(7),
95+
ETH_CPUID_FEAT_CX8 = BIN_NUM_1(8),
96+
ETH_CPUID_FEAT_APIC = BIN_NUM_1(9),
97+
ETH_CPUID_FEAT_SEP = BIN_NUM_1(11),
98+
ETH_CPUID_FEAT_MTRR = BIN_NUM_1(12),
99+
ETH_CPUID_FEAT_PGE = BIN_NUM_1(13),
100+
ETH_CPUID_FEAT_MCA = BIN_NUM_1(14),
101+
ETH_CPUID_FEAT_CMOV = BIN_NUM_1(15),
102+
ETH_CPUID_FEAT_PAT = BIN_NUM_1(16),
103+
ETH_CPUID_FEAT_PSE36 = BIN_NUM_1(17),
104+
ETH_CPUID_FEAT_PSN = BIN_NUM_1(18),
105+
ETH_CPUID_FEAT_CLFSH = BIN_NUM_1(19),
106+
ETH_CPUID_FEAT_NX = BIN_NUM_1(20),
107+
ETH_CPUID_FEAT_DS = BIN_NUM_1(21),
108+
ETH_CPUID_FEAT_ACPI = BIN_NUM_1(22),
109+
ETH_CPUID_FEAT_MMX = BIN_NUM_1(23),
110+
ETH_CPUID_FEAT_FXSR = BIN_NUM_1(24),
111+
ETH_CPUID_FEAT_SSE = BIN_NUM_1(25),
112+
ETH_CPUID_FEAT_SSE2 = BIN_NUM_1(26),
113+
ETH_CPUID_FEAT_SS = BIN_NUM_1(27),
114+
ETH_CPUID_FEAT_HTT = BIN_NUM_1(28),
115+
ETH_CPUID_FEAT_TM = BIN_NUM_1(29),
116+
ETH_CPUID_FEAT_IA64 = BIN_NUM_1(30),
117+
ETH_CPUID_FEAT_PBE = BIN_NUM_1(31),
118+
ETH_CPUID_FEAT_SSE3 = BIN_NUM_1(0),
119+
ETH_CPUID_FEAT_PCLMULQDQ = BIN_NUM_1(1),
120+
ETH_CPUID_FEAT_DTES64 = BIN_NUM_1(2),
121+
ETH_CPUID_FEAT_MONITOR = BIN_NUM_1(3),
122+
ETH_CPUID_FEAT_DS_CPL = BIN_NUM_1(4),
123+
ETH_CPUID_FEAT_VMX = BIN_NUM_1(5),
124+
ETH_CPUID_FEAT_SMX = BIN_NUM_1(6),
125+
ETH_CPUID_FEAT_EST = BIN_NUM_1(7),
126+
ETH_CPUID_FEAT_TM2 = BIN_NUM_1(8),
127+
ETH_CPUID_FEAT_SSSE3 = BIN_NUM_1(9),
128+
ETH_CPUID_FEAT_CNXT_ID = BIN_NUM_1(10),
129+
ETH_CPUID_FEAT_SDBG = BIN_NUM_1(11),
130+
ETH_CPUID_FEAT_FMA = BIN_NUM_1(12),
131+
ETH_CPUID_FEAT_CX16 = BIN_NUM_1(13),
132+
ETH_CPUID_FEAT_XTPR = BIN_NUM_1(14),
133+
ETH_CPUID_FEAT_PDCM = BIN_NUM_1(15),
134+
ETH_CPUID_FEAT_PCID = BIN_NUM_1(17),
135+
ETH_CPUID_FEAT_DCA = BIN_NUM_1(18),
136+
ETH_CPUID_FEAT_SSE41 = BIN_NUM_1(19),
137+
ETH_CPUID_FEAT_SSE42 = BIN_NUM_1(20),
138+
ETH_CPUID_FEAT_X2APIC = BIN_NUM_1(21),
139+
ETH_CPUID_FEAT_MOVBE = BIN_NUM_1(22),
140+
ETH_CPUID_FEAT_POPCNT = BIN_NUM_1(23),
141+
ETH_CPUID_FEAT_TSC_DLINE = BIN_NUM_1(24),
142+
ETH_CPUID_FEAT_AES_NI = BIN_NUM_1(25),
143+
ETH_CPUID_FEAT_XSAVE = BIN_NUM_1(26),
144+
ETH_CPUID_FEAT_OSXSAVE = BIN_NUM_1(27),
145+
ETH_CPUID_FEAT_AVX = BIN_NUM_1(28),
146+
ETH_CPUID_FEAT_F16C = BIN_NUM_1(29),
147+
ETH_CPUID_FEAT_RDRND = BIN_NUM_1(30),
148+
ETH_CPUID_FEAT_HYPERVISOR = BIN_NUM_1(31),
149+
ETH_CPUID_EXT_FEAT_FSGSBASE = BIN_NUM_1(0),
150+
ETH_CPUID_EXT_FEAT_IA32_TSC_ADJUST_MSR = BIN_NUM_1(1),
151+
ETH_CPUID_EXT_FEAT_SGX = BIN_NUM_1(2),
152+
ETH_CPUID_EXT_FEAT_BMI1 = BIN_NUM_1(3),
153+
ETH_CPUID_EXT_FEAT_HLE = BIN_NUM_1(4),
154+
ETH_CPUID_EXT_FEAT_AVX2 = BIN_NUM_1(5),
155+
ETH_CPUID_EXT_FEAT_FDP = BIN_NUM_1(6),
156+
ETH_CPUID_EXT_FEAT_SMEP = BIN_NUM_1(7),
157+
ETH_CPUID_EXT_FEAT_BMI2 = BIN_NUM_1(8),
158+
ETH_CPUID_EXT_FEAT_ERMS = BIN_NUM_1(9),
159+
ETH_CPUID_EXT_FEAT_INVPCID = BIN_NUM_1(10),
160+
ETH_CPUID_EXT_FEAT_RTM = BIN_NUM_1(11),
161+
ETH_CPUID_EXT_FEAT_RDTM_PQM = BIN_NUM_1(12),
162+
ETH_CPUID_EXT_FEAT_X87_FPU = BIN_NUM_1(13),
163+
ETH_CPUID_EXT_FEAT_MPX = BIN_NUM_1(14),
164+
ETH_CPUID_EXT_FEAT_RDTA_PQE = BIN_NUM_1(15),
165+
ETH_CPUID_EXT_FEAT_AVX512F = BIN_NUM_1(16),
166+
ETH_CPUID_EXT_FEAT_AVX512DQ = BIN_NUM_1(17),
167+
ETH_CPUID_EXT_FEAT_RDSEED = BIN_NUM_1(18),
168+
ETH_CPUID_EXT_FEAT_ADX = BIN_NUM_1(19),
169+
ETH_CPUID_EXT_FEAT_SMAP = BIN_NUM_1(20),
170+
ETH_CPUID_EXT_FEAT_AVX512_IFMA = BIN_NUM_1(21),
171+
ETH_CPUID_EXT_FEAT_PCOMMIT = BIN_NUM_1(22),
172+
ETH_CPUID_EXT_FEAT_CLFLUSHOPT = BIN_NUM_1(23),
173+
ETH_CPUID_EXT_FEAT_CLWB = BIN_NUM_1(24),
174+
ETH_CPUID_EXT_FEAT_PT = BIN_NUM_1(25),
175+
ETH_CPUID_EXT_FEAT_AVX512_PF = BIN_NUM_1(26),
176+
ETH_CPUID_EXT_FEAT_AVX512_ER = BIN_NUM_1(27),
177+
ETH_CPUID_EXT_FEAT_AVX512_CD = BIN_NUM_1(28),
178+
ETH_CPUID_EXT_FEAT_SHA = BIN_NUM_1(29),
179+
ETH_CPUID_EXT_FEAT_AVX512_BW = BIN_NUM_1(30),
180+
ETH_CPUID_EXT_FEAT_AVX512_VL = BIN_NUM_1(31),
181+
ETH_CPUID_EXT_FEAT_PREFETCHWT1 = BIN_NUM_1(0),
182+
ETH_CPUID_EXT_FEAT_AVX512_VBMI = BIN_NUM_1(1),
183+
ETH_CPUID_EXT_FEAT_UMIP = BIN_NUM_1(2),
184+
ETH_CPUID_EXT_FEAT_PKU = BIN_NUM_1(3),
185+
ETH_CPUID_EXT_FEAT_OSPKE = BIN_NUM_1(4),
186+
ETH_CPUID_EXT_FEAT_WAITPKG = BIN_NUM_1(5),
187+
ETH_CPUID_EXT_FEAT_AVX512_VBMI2 = BIN_NUM_1(6),
188+
ETH_CPUID_EXT_FEAT_CET_SS = BIN_NUM_1(7),
189+
ETH_CPUID_EXT_FEAT_GFNI = BIN_NUM_1(8),
190+
ETH_CPUID_EXT_FEAT_VAES = BIN_NUM_1(9),
191+
ETH_CPUID_EXT_FEAT_VPCLMULQDQ = BIN_NUM_1(10),
192+
ETH_CPUID_EXT_FEAT_AVX512_VNNI = BIN_NUM_1(11),
193+
ETH_CPUID_EXT_FEAT_AVX512_BITALG = BIN_NUM_1(12),
194+
ETH_CPUID_EXT_FEAT_TME_EN = BIN_NUM_1(13),
195+
ETH_CPUID_EXT_FEAT_AVX512_VPOPCNTDQ = BIN_NUM_1(14),
196+
ETH_CPUID_EXT_FEAT_FZM = BIN_NUM_1(15),
197+
ETH_CPUID_EXT_FEAT_LA57 = BIN_NUM_1(16),
198+
ETH_CPUID_EXT_FEAT_MAWAU = BIN_NUM_5(17),
199+
ETH_CPUID_EXT_FEAT_RDPID = BIN_NUM_1(22),
200+
ETH_CPUID_EXT_FEAT_KL = BIN_NUM_1(23),
201+
ETH_CPUID_EXT_FEAT_BUS_LOCK_DETECT = BIN_NUM_1(24),
202+
ETH_CPUID_EXT_FEAT_CLDEMOTE = BIN_NUM_1(25),
203+
ETH_CPUID_EXT_FEAT_MPRR = BIN_NUM_1(26),
204+
ETH_CPUID_EXT_FEAT_MOVDIRI = BIN_NUM_1(27),
205+
ETH_CPUID_EXT_FEAT_MOVDIR64B = BIN_NUM_1(28),
206+
ETH_CPUID_EXT_FEAT_ENQCMD = BIN_NUM_1(29),
207+
ETH_CPUID_EXT_FEAT_SGX_LC = BIN_NUM_1(30),
208+
ETH_CPUID_EXT_FEAT_PKS = BIN_NUM_1(31),
209+
ETH_CPUID_EXT_FEAT_SGX_TERM = BIN_NUM_1(0),
210+
ETH_CPUID_EXT_FEAT_SGX_KEYS = BIN_NUM_1(1),
211+
ETH_CPUID_EXT_FEAT_AVX512_4VNNIW = BIN_NUM_1(2),
212+
ETH_CPUID_EXT_FEAT_AVX512_4FMAPS = BIN_NUM_1(3),
213+
ETH_CPUID_EXT_FEAT_FSRM = BIN_NUM_1(4),
214+
ETH_CPUID_EXT_FEAT_UINTR = BIN_NUM_1(5),
215+
ETH_CPUID_EXT_FEAT_AVX512_VP2INTERSECT = BIN_NUM_1(8),
216+
ETH_CPUID_EXT_FEAT_SRBDS_CTRL = BIN_NUM_1(9),
217+
ETH_CPUID_EXT_FEAT_MD_CLEAR = BIN_NUM_1(10),
218+
ETH_CPUID_EXT_FEAT_RTM_ALWAYS_ABORT = BIN_NUM_1(11),
219+
ETH_CPUID_EXT_FEAT_RTM_FORCE_ABORT = BIN_NUM_1(13),
220+
ETH_CPUID_EXT_FEAT_SERIALIZE = BIN_NUM_1(14),
221+
ETH_CPUID_EXT_FEAT_HYBRID = BIN_NUM_1(15),
222+
ETH_CPUID_EXT_FEAT_TSXLDTRK = BIN_NUM_1(16),
223+
ETH_CPUID_EXT_FEAT_PCONFIG = BIN_NUM_1(18),
224+
ETH_CPUID_EXT_FEAT_LBR = BIN_NUM_1(19),
225+
ETH_CPUID_EXT_FEAT_CET_IBT = BIN_NUM_1(20),
226+
ETH_CPUID_EXT_FEAT_AMX_BF16 = BIN_NUM_1(22),
227+
ETH_CPUID_EXT_FEAT_AVX512_FP16 = BIN_NUM_1(23),
228+
ETH_CPUID_EXT_FEAT_AMX_TILE = BIN_NUM_1(24),
229+
ETH_CPUID_EXT_FEAT_AMX_INT8 = BIN_NUM_1(25),
230+
ETH_CPUID_EXT_FEAT_IBRS = BIN_NUM_1(26),
231+
ETH_CPUID_EXT_FEAT_STIBP = BIN_NUM_1(27),
232+
ETH_CPUID_EXT_FEAT_L1D_FLUSH = BIN_NUM_1(28),
233+
ETH_CPUID_EXT_FEAT_IA32_ARCH_CAP_MSR = BIN_NUM_1(29),
234+
ETH_CPUID_EXT_FEAT_IA32_CORE_CAP_MSR = BIN_NUM_1(30),
235+
ETH_CPUID_EXT_FEAT_SSBD = BIN_NUM_1(31),
236+
ETH_CPUID_EXT_FEAT_SHA512 = BIN_NUM_1(0),
237+
ETH_CPUID_EXT_FEAT_SM3 = BIN_NUM_1(1),
238+
ETH_CPUID_EXT_FEAT_SM4 = BIN_NUM_1(2),
239+
ETH_CPUID_EXT_FEAT_RAO_INT = BIN_NUM_1(3),
240+
ETH_CPUID_EXT_FEAT_AVX_VNNI = BIN_NUM_1(4),
241+
ETH_CPUID_EXT_FEAT_AVX512_BF16 = BIN_NUM_1(5),
242+
ETH_CPUID_EXT_FEAT_LASS = BIN_NUM_1(6),
243+
ETH_CPUID_EXT_FEAT_CMPCCXADD = BIN_NUM_1(7),
244+
ETH_CPUID_EXT_FEAT_ARCHPERFMONEXT = BIN_NUM_1(8),
245+
ETH_CPUID_EXT_FEAT_DEDUP = BIN_NUM_1(9),
246+
ETH_CPUID_EXT_FEAT_FZRM = BIN_NUM_1(10),
247+
ETH_CPUID_EXT_FEAT_FSRS = BIN_NUM_1(11),
248+
ETH_CPUID_EXT_FEAT_RSRCS = BIN_NUM_1(12),
249+
ETH_CPUID_EXT_FEAT_FRED = BIN_NUM_1(17),
250+
ETH_CPUID_EXT_FEAT_LKGS = BIN_NUM_1(18),
251+
ETH_CPUID_EXT_FEAT_WRMSRNS = BIN_NUM_1(19),
252+
ETH_CPUID_EXT_FEAT_NMI_SRC = BIN_NUM_1(20),
253+
ETH_CPUID_EXT_FEAT_AMX_FP16 = BIN_NUM_1(21),
254+
ETH_CPUID_EXT_FEAT_HRESET = BIN_NUM_1(22),
255+
ETH_CPUID_EXT_FEAT_AVX_IFMA = BIN_NUM_1(23),
256+
ETH_CPUID_EXT_FEAT_LAM = BIN_NUM_1(26),
257+
ETH_CPUID_EXT_FEAT_MSRLIST = BIN_NUM_1(27),
258+
ETH_CPUID_EXT_FEAT_INVD_DISABLE_POST_BIOS_DONE = BIN_NUM_1(30),
259+
ETH_CPUID_EXT_FEAT_IA32_PPIN_CTL = BIN_NUM_1(0),
260+
ETH_CPUID_EXT_FEAT_PBNDKB = BIN_NUM_1(1),
261+
ETH_CPUID_EXT_FEAT_LEGACY_REDUCED_ISA = BIN_NUM_1(2),
262+
ETH_CPUID_EXT_FEAT_SIPI_64 = BIN_NUM_1(4),
263+
ETH_CPUID_EXT_FEAT_AVX_VNNI_INT8 = BIN_NUM_1(4),
264+
ETH_CPUID_EXT_FEAT_AVX_NE_CONVERT = BIN_NUM_1(5),
265+
ETH_CPUID_EXT_FEAT_AMX_COMPLEX = BIN_NUM_1(8),
266+
ETH_CPUID_EXT_FEAT_AVX_VNNI_INT16 = BIN_NUM_1(10),
267+
ETH_CPUID_EXT_FEAT_UTMR = BIN_NUM_1(13),
268+
ETH_CPUID_EXT_FEAT_PREFETCHI = BIN_NUM_1(14),
269+
ETH_CPUID_EXT_FEAT_USER_MSR = BIN_NUM_1(15),
270+
ETH_CPUID_EXT_FEAT_UIRET_UIF_FROM_RFLAGS = BIN_NUM_1(17),
271+
ETH_CPUID_EXT_FEAT_CET_SSS = BIN_NUM_1(18),
272+
ETH_CPUID_EXT_FEAT_AVX10 = BIN_NUM_1(19),
273+
ETH_CPUID_EXT_FEAT_APX_F = BIN_NUM_1(21),
274+
ETH_CPUID_EXT_FEAT_MWAIT = BIN_NUM_1(23),
275+
ETH_CPUID_EXT_FEAT_PSFD = BIN_NUM_1(0),
276+
ETH_CPUID_EXT_FEAT_IPRED_CTRL = BIN_NUM_1(1),
277+
ETH_CPUID_EXT_FEAT_RRSBA_CTRL = BIN_NUM_1(2),
278+
ETH_CPUID_EXT_FEAT_DDPD_U = BIN_NUM_1(3),
279+
ETH_CPUID_EXT_FEAT_BHI_CTRL = BIN_NUM_1(4),
280+
ETH_CPUID_EXT_FEAT_MCDT_NO = BIN_NUM_1(5)
150281
} eth_cpuid_feat_flag_t;
151282
#pragma GCC diagnostic pop
152283

@@ -196,6 +327,7 @@ struct eth_cpuid_feat_ext_t
196327
//////////////////////////////////////
197328

198329

199-
#define DEF_BASIC_FEAT(n,r,sz) eth_cpuid_feat_ext_t *n = e_cpuid_basic_feat(r,sz)
330+
#define DEF_BASIC_FEAT(n,index) const eth_cpuid_feat_ext_t *n = e_cpuid_feat(index,0,0)
331+
#define DEF_EXT_FEAT(n, index, page) const eth_cpuid_feat_ext_t *n = e_cpuid_feat(index, 1, page)
200332

201333
#endif

0 commit comments

Comments
 (0)