1 | /* Constants and data structures for x86 CPU features. |
2 | This file is part of the GNU C Library. |
3 | Copyright (C) 2008-2024 Free Software Foundation, Inc. |
4 | |
5 | The GNU C Library is free software; you can redistribute it and/or |
6 | modify it under the terms of the GNU Lesser General Public |
7 | License as published by the Free Software Foundation; either |
8 | version 2.1 of the License, or (at your option) any later version. |
9 | |
10 | The GNU C Library is distributed in the hope that it will be useful, |
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
13 | Lesser General Public License for more details. |
14 | |
15 | You should have received a copy of the GNU Lesser General Public |
16 | License along with the GNU C Library; if not, see |
17 | <https://www.gnu.org/licenses/>. */ |
18 | |
19 | #ifndef _SYS_PLATFORM_X86_H |
20 | # error "Never include <bits/platform/x86.h> directly; use <sys/platform/x86.h> instead." |
21 | #endif |
22 | |
23 | enum |
24 | { |
25 | CPUID_INDEX_1 = 0, |
26 | CPUID_INDEX_7, |
27 | CPUID_INDEX_80000001, |
28 | CPUID_INDEX_D_ECX_1, |
29 | CPUID_INDEX_80000007, |
30 | CPUID_INDEX_80000008, |
31 | CPUID_INDEX_7_ECX_1, |
32 | CPUID_INDEX_19, |
33 | CPUID_INDEX_14_ECX_0, |
34 | CPUID_INDEX_24_ECX_0 |
35 | }; |
36 | |
37 | struct cpuid_feature |
38 | { |
39 | unsigned int cpuid_array[4]; |
40 | unsigned int active_array[4]; |
41 | }; |
42 | |
43 | enum cpuid_register_index |
44 | { |
45 | cpuid_register_index_eax = 0, |
46 | cpuid_register_index_ebx, |
47 | cpuid_register_index_ecx, |
48 | cpuid_register_index_edx |
49 | }; |
50 | |
51 | /* CPU features. */ |
52 | |
53 | enum |
54 | { |
55 | x86_cpu_index_1_ecx |
56 | = (CPUID_INDEX_1 * 8 * 4 * sizeof (unsigned int) |
57 | + cpuid_register_index_ecx * 8 * sizeof (unsigned int)), |
58 | |
59 | x86_cpu_SSE3 = x86_cpu_index_1_ecx, |
60 | x86_cpu_PCLMULQDQ = x86_cpu_index_1_ecx + 1, |
61 | x86_cpu_DTES64 = x86_cpu_index_1_ecx + 2, |
62 | x86_cpu_MONITOR = x86_cpu_index_1_ecx + 3, |
63 | x86_cpu_DS_CPL = x86_cpu_index_1_ecx + 4, |
64 | x86_cpu_VMX = x86_cpu_index_1_ecx + 5, |
65 | x86_cpu_SMX = x86_cpu_index_1_ecx + 6, |
66 | x86_cpu_EIST = x86_cpu_index_1_ecx + 7, |
67 | x86_cpu_TM2 = x86_cpu_index_1_ecx + 8, |
68 | x86_cpu_SSSE3 = x86_cpu_index_1_ecx + 9, |
69 | x86_cpu_CNXT_ID = x86_cpu_index_1_ecx + 10, |
70 | x86_cpu_SDBG = x86_cpu_index_1_ecx + 11, |
71 | x86_cpu_FMA = x86_cpu_index_1_ecx + 12, |
72 | x86_cpu_CMPXCHG16B = x86_cpu_index_1_ecx + 13, |
73 | x86_cpu_XTPRUPDCTRL = x86_cpu_index_1_ecx + 14, |
74 | x86_cpu_PDCM = x86_cpu_index_1_ecx + 15, |
75 | x86_cpu_INDEX_1_ECX_16 = x86_cpu_index_1_ecx + 16, |
76 | x86_cpu_PCID = x86_cpu_index_1_ecx + 17, |
77 | x86_cpu_DCA = x86_cpu_index_1_ecx + 18, |
78 | x86_cpu_SSE4_1 = x86_cpu_index_1_ecx + 19, |
79 | x86_cpu_SSE4_2 = x86_cpu_index_1_ecx + 20, |
80 | x86_cpu_X2APIC = x86_cpu_index_1_ecx + 21, |
81 | x86_cpu_MOVBE = x86_cpu_index_1_ecx + 22, |
82 | x86_cpu_POPCNT = x86_cpu_index_1_ecx + 23, |
83 | x86_cpu_TSC_DEADLINE = x86_cpu_index_1_ecx + 24, |
84 | x86_cpu_AES = x86_cpu_index_1_ecx + 25, |
85 | x86_cpu_XSAVE = x86_cpu_index_1_ecx + 26, |
86 | x86_cpu_OSXSAVE = x86_cpu_index_1_ecx + 27, |
87 | x86_cpu_AVX = x86_cpu_index_1_ecx + 28, |
88 | x86_cpu_F16C = x86_cpu_index_1_ecx + 29, |
89 | x86_cpu_RDRAND = x86_cpu_index_1_ecx + 30, |
90 | x86_cpu_INDEX_1_ECX_31 = x86_cpu_index_1_ecx + 31, |
91 | |
92 | x86_cpu_index_1_edx |
93 | = (CPUID_INDEX_1 * 8 * 4 * sizeof (unsigned int) |
94 | + cpuid_register_index_edx * 8 * sizeof (unsigned int)), |
95 | |
96 | x86_cpu_FPU = x86_cpu_index_1_edx, |
97 | x86_cpu_VME = x86_cpu_index_1_edx + 1, |
98 | x86_cpu_DE = x86_cpu_index_1_edx + 2, |
99 | x86_cpu_PSE = x86_cpu_index_1_edx + 3, |
100 | x86_cpu_TSC = x86_cpu_index_1_edx + 4, |
101 | x86_cpu_MSR = x86_cpu_index_1_edx + 5, |
102 | x86_cpu_PAE = x86_cpu_index_1_edx + 6, |
103 | x86_cpu_MCE = x86_cpu_index_1_edx + 7, |
104 | x86_cpu_CX8 = x86_cpu_index_1_edx + 8, |
105 | x86_cpu_APIC = x86_cpu_index_1_edx + 9, |
106 | x86_cpu_INDEX_1_EDX_10 = x86_cpu_index_1_edx + 10, |
107 | x86_cpu_SEP = x86_cpu_index_1_edx + 11, |
108 | x86_cpu_MTRR = x86_cpu_index_1_edx + 12, |
109 | x86_cpu_PGE = x86_cpu_index_1_edx + 13, |
110 | x86_cpu_MCA = x86_cpu_index_1_edx + 14, |
111 | x86_cpu_CMOV = x86_cpu_index_1_edx + 15, |
112 | x86_cpu_PAT = x86_cpu_index_1_edx + 16, |
113 | x86_cpu_PSE_36 = x86_cpu_index_1_edx + 17, |
114 | x86_cpu_PSN = x86_cpu_index_1_edx + 18, |
115 | x86_cpu_CLFSH = x86_cpu_index_1_edx + 19, |
116 | x86_cpu_INDEX_1_EDX_20 = x86_cpu_index_1_edx + 20, |
117 | x86_cpu_DS = x86_cpu_index_1_edx + 21, |
118 | x86_cpu_ACPI = x86_cpu_index_1_edx + 22, |
119 | x86_cpu_MMX = x86_cpu_index_1_edx + 23, |
120 | x86_cpu_FXSR = x86_cpu_index_1_edx + 24, |
121 | x86_cpu_SSE = x86_cpu_index_1_edx + 25, |
122 | x86_cpu_SSE2 = x86_cpu_index_1_edx + 26, |
123 | x86_cpu_SS = x86_cpu_index_1_edx + 27, |
124 | x86_cpu_HTT = x86_cpu_index_1_edx + 28, |
125 | x86_cpu_TM = x86_cpu_index_1_edx + 29, |
126 | x86_cpu_INDEX_1_EDX_30 = x86_cpu_index_1_edx + 30, |
127 | x86_cpu_PBE = x86_cpu_index_1_edx + 31, |
128 | |
129 | x86_cpu_index_7_ebx |
130 | = (CPUID_INDEX_7 * 8 * 4 * sizeof (unsigned int) |
131 | + cpuid_register_index_ebx * 8 * sizeof (unsigned int)), |
132 | |
133 | x86_cpu_FSGSBASE = x86_cpu_index_7_ebx, |
134 | x86_cpu_TSC_ADJUST = x86_cpu_index_7_ebx + 1, |
135 | x86_cpu_SGX = x86_cpu_index_7_ebx + 2, |
136 | x86_cpu_BMI1 = x86_cpu_index_7_ebx + 3, |
137 | x86_cpu_HLE = x86_cpu_index_7_ebx + 4, |
138 | x86_cpu_AVX2 = x86_cpu_index_7_ebx + 5, |
139 | x86_cpu_INDEX_7_EBX_6 = x86_cpu_index_7_ebx + 6, |
140 | x86_cpu_SMEP = x86_cpu_index_7_ebx + 7, |
141 | x86_cpu_BMI2 = x86_cpu_index_7_ebx + 8, |
142 | x86_cpu_ERMS = x86_cpu_index_7_ebx + 9, |
143 | x86_cpu_INVPCID = x86_cpu_index_7_ebx + 10, |
144 | x86_cpu_RTM = x86_cpu_index_7_ebx + 11, |
145 | x86_cpu_RDT_M = x86_cpu_index_7_ebx + 12, |
146 | x86_cpu_DEPR_FPU_CS_DS = x86_cpu_index_7_ebx + 13, |
147 | x86_cpu_MPX = x86_cpu_index_7_ebx + 14, |
148 | x86_cpu_RDT_A = x86_cpu_index_7_ebx + 15, |
149 | x86_cpu_AVX512F = x86_cpu_index_7_ebx + 16, |
150 | x86_cpu_AVX512DQ = x86_cpu_index_7_ebx + 17, |
151 | x86_cpu_RDSEED = x86_cpu_index_7_ebx + 18, |
152 | x86_cpu_ADX = x86_cpu_index_7_ebx + 19, |
153 | x86_cpu_SMAP = x86_cpu_index_7_ebx + 20, |
154 | x86_cpu_AVX512_IFMA = x86_cpu_index_7_ebx + 21, |
155 | x86_cpu_INDEX_7_EBX_22 = x86_cpu_index_7_ebx + 22, |
156 | x86_cpu_CLFLUSHOPT = x86_cpu_index_7_ebx + 23, |
157 | x86_cpu_CLWB = x86_cpu_index_7_ebx + 24, |
158 | x86_cpu_TRACE = x86_cpu_index_7_ebx + 25, |
159 | x86_cpu_AVX512PF = x86_cpu_index_7_ebx + 26, |
160 | x86_cpu_AVX512ER = x86_cpu_index_7_ebx + 27, |
161 | x86_cpu_AVX512CD = x86_cpu_index_7_ebx + 28, |
162 | x86_cpu_SHA = x86_cpu_index_7_ebx + 29, |
163 | x86_cpu_AVX512BW = x86_cpu_index_7_ebx + 30, |
164 | x86_cpu_AVX512VL = x86_cpu_index_7_ebx + 31, |
165 | |
166 | x86_cpu_index_7_ecx |
167 | = (CPUID_INDEX_7 * 8 * 4 * sizeof (unsigned int) |
168 | + cpuid_register_index_ecx * 8 * sizeof (unsigned int)), |
169 | |
170 | x86_cpu_PREFETCHWT1 = x86_cpu_index_7_ecx, |
171 | x86_cpu_AVX512_VBMI = x86_cpu_index_7_ecx + 1, |
172 | x86_cpu_UMIP = x86_cpu_index_7_ecx + 2, |
173 | x86_cpu_PKU = x86_cpu_index_7_ecx + 3, |
174 | x86_cpu_OSPKE = x86_cpu_index_7_ecx + 4, |
175 | x86_cpu_WAITPKG = x86_cpu_index_7_ecx + 5, |
176 | x86_cpu_AVX512_VBMI2 = x86_cpu_index_7_ecx + 6, |
177 | x86_cpu_SHSTK = x86_cpu_index_7_ecx + 7, |
178 | x86_cpu_GFNI = x86_cpu_index_7_ecx + 8, |
179 | x86_cpu_VAES = x86_cpu_index_7_ecx + 9, |
180 | x86_cpu_VPCLMULQDQ = x86_cpu_index_7_ecx + 10, |
181 | x86_cpu_AVX512_VNNI = x86_cpu_index_7_ecx + 11, |
182 | x86_cpu_AVX512_BITALG = x86_cpu_index_7_ecx + 12, |
183 | x86_cpu_INDEX_7_ECX_13 = x86_cpu_index_7_ecx + 13, |
184 | x86_cpu_AVX512_VPOPCNTDQ = x86_cpu_index_7_ecx + 14, |
185 | x86_cpu_INDEX_7_ECX_15 = x86_cpu_index_7_ecx + 15, |
186 | x86_cpu_LA57 = x86_cpu_index_7_ecx + 16, |
187 | /* Note: Bits 17-21: The value of MAWAU used by the BNDLDX and BNDSTX |
188 | instructions in 64-bit mode. */ |
189 | x86_cpu_RDPID = x86_cpu_index_7_ecx + 22, |
190 | x86_cpu_KL = x86_cpu_index_7_ecx + 23, |
191 | x86_cpu_BUS_LOCK_DETECT = x86_cpu_index_7_ecx + 24, |
192 | x86_cpu_CLDEMOTE = x86_cpu_index_7_ecx + 25, |
193 | x86_cpu_INDEX_7_ECX_26 = x86_cpu_index_7_ecx + 26, |
194 | x86_cpu_MOVDIRI = x86_cpu_index_7_ecx + 27, |
195 | x86_cpu_MOVDIR64B = x86_cpu_index_7_ecx + 28, |
196 | x86_cpu_ENQCMD = x86_cpu_index_7_ecx + 29, |
197 | x86_cpu_SGX_LC = x86_cpu_index_7_ecx + 30, |
198 | x86_cpu_PKS = x86_cpu_index_7_ecx + 31, |
199 | |
200 | x86_cpu_index_7_edx |
201 | = (CPUID_INDEX_7 * 8 * 4 * sizeof (unsigned int) |
202 | + cpuid_register_index_edx * 8 * sizeof (unsigned int)), |
203 | |
204 | x86_cpu_INDEX_7_EDX_0 = x86_cpu_index_7_edx, |
205 | x86_cpu_SGX_KEYS = x86_cpu_index_7_edx + 1, |
206 | x86_cpu_AVX512_4VNNIW = x86_cpu_index_7_edx + 2, |
207 | x86_cpu_AVX512_4FMAPS = x86_cpu_index_7_edx + 3, |
208 | x86_cpu_FSRM = x86_cpu_index_7_edx + 4, |
209 | x86_cpu_UINTR = x86_cpu_index_7_edx + 5, |
210 | x86_cpu_INDEX_7_EDX_6 = x86_cpu_index_7_edx + 6, |
211 | x86_cpu_INDEX_7_EDX_7 = x86_cpu_index_7_edx + 7, |
212 | x86_cpu_AVX512_VP2INTERSECT = x86_cpu_index_7_edx + 8, |
213 | x86_cpu_INDEX_7_EDX_9 = x86_cpu_index_7_edx + 9, |
214 | x86_cpu_MD_CLEAR = x86_cpu_index_7_edx + 10, |
215 | x86_cpu_RTM_ALWAYS_ABORT = x86_cpu_index_7_edx + 11, |
216 | x86_cpu_INDEX_7_EDX_12 = x86_cpu_index_7_edx + 12, |
217 | x86_cpu_RTM_FORCE_ABORT = x86_cpu_index_7_edx + 13, |
218 | x86_cpu_SERIALIZE = x86_cpu_index_7_edx + 14, |
219 | x86_cpu_HYBRID = x86_cpu_index_7_edx + 15, |
220 | x86_cpu_TSXLDTRK = x86_cpu_index_7_edx + 16, |
221 | x86_cpu_INDEX_7_EDX_17 = x86_cpu_index_7_edx + 17, |
222 | x86_cpu_PCONFIG = x86_cpu_index_7_edx + 18, |
223 | x86_cpu_LBR = x86_cpu_index_7_edx + 19, |
224 | x86_cpu_IBT = x86_cpu_index_7_edx + 20, |
225 | x86_cpu_INDEX_7_EDX_21 = x86_cpu_index_7_edx + 21, |
226 | x86_cpu_AMX_BF16 = x86_cpu_index_7_edx + 22, |
227 | x86_cpu_AVX512_FP16 = x86_cpu_index_7_edx + 23, |
228 | x86_cpu_AMX_TILE = x86_cpu_index_7_edx + 24, |
229 | x86_cpu_AMX_INT8 = x86_cpu_index_7_edx + 25, |
230 | x86_cpu_IBRS_IBPB = x86_cpu_index_7_edx + 26, |
231 | x86_cpu_STIBP = x86_cpu_index_7_edx + 27, |
232 | x86_cpu_L1D_FLUSH = x86_cpu_index_7_edx + 28, |
233 | x86_cpu_ARCH_CAPABILITIES = x86_cpu_index_7_edx + 29, |
234 | x86_cpu_CORE_CAPABILITIES = x86_cpu_index_7_edx + 30, |
235 | x86_cpu_SSBD = x86_cpu_index_7_edx + 31, |
236 | |
237 | x86_cpu_index_80000001_ecx |
238 | = (CPUID_INDEX_80000001 * 8 * 4 * sizeof (unsigned int) |
239 | + cpuid_register_index_ecx * 8 * sizeof (unsigned int)), |
240 | |
241 | x86_cpu_LAHF64_SAHF64 = x86_cpu_index_80000001_ecx, |
242 | x86_cpu_SVM = x86_cpu_index_80000001_ecx + 2, |
243 | x86_cpu_LZCNT = x86_cpu_index_80000001_ecx + 5, |
244 | x86_cpu_SSE4A = x86_cpu_index_80000001_ecx + 6, |
245 | x86_cpu_PREFETCHW = x86_cpu_index_80000001_ecx + 8, |
246 | x86_cpu_XOP = x86_cpu_index_80000001_ecx + 11, |
247 | x86_cpu_LWP = x86_cpu_index_80000001_ecx + 15, |
248 | x86_cpu_FMA4 = x86_cpu_index_80000001_ecx + 16, |
249 | x86_cpu_TBM = x86_cpu_index_80000001_ecx + 21, |
250 | |
251 | x86_cpu_index_80000001_edx |
252 | = (CPUID_INDEX_80000001 * 8 * 4 * sizeof (unsigned int) |
253 | + cpuid_register_index_edx * 8 * sizeof (unsigned int)), |
254 | |
255 | x86_cpu_SYSCALL_SYSRET = x86_cpu_index_80000001_edx + 11, |
256 | x86_cpu_NX = x86_cpu_index_80000001_edx + 20, |
257 | x86_cpu_PAGE1GB = x86_cpu_index_80000001_edx + 26, |
258 | x86_cpu_RDTSCP = x86_cpu_index_80000001_edx + 27, |
259 | x86_cpu_LM = x86_cpu_index_80000001_edx + 29, |
260 | |
261 | x86_cpu_index_d_ecx_1_eax |
262 | = (CPUID_INDEX_D_ECX_1 * 8 * 4 * sizeof (unsigned int) |
263 | + cpuid_register_index_eax * 8 * sizeof (unsigned int)), |
264 | |
265 | x86_cpu_XSAVEOPT = x86_cpu_index_d_ecx_1_eax, |
266 | x86_cpu_XSAVEC = x86_cpu_index_d_ecx_1_eax + 1, |
267 | x86_cpu_XGETBV_ECX_1 = x86_cpu_index_d_ecx_1_eax + 2, |
268 | x86_cpu_XSAVES = x86_cpu_index_d_ecx_1_eax + 3, |
269 | x86_cpu_XFD = x86_cpu_index_d_ecx_1_eax + 4, |
270 | |
271 | x86_cpu_index_80000007_edx |
272 | = (CPUID_INDEX_80000007 * 8 * 4 * sizeof (unsigned int) |
273 | + cpuid_register_index_edx * 8 * sizeof (unsigned int)), |
274 | |
275 | x86_cpu_INVARIANT_TSC = x86_cpu_index_80000007_edx + 8, |
276 | |
277 | x86_cpu_index_80000008_ebx |
278 | = (CPUID_INDEX_80000008 * 8 * 4 * sizeof (unsigned int) |
279 | + cpuid_register_index_ebx * 8 * sizeof (unsigned int)), |
280 | |
281 | x86_cpu_WBNOINVD = x86_cpu_index_80000008_ebx + 9, |
282 | x86_cpu_AMD_IBPB = x86_cpu_index_80000008_ebx + 12, |
283 | x86_cpu_AMD_IBRS = x86_cpu_index_80000008_ebx + 14, |
284 | x86_cpu_AMD_STIBP = x86_cpu_index_80000008_ebx + 15, |
285 | x86_cpu_AMD_SSBD = x86_cpu_index_80000008_ebx + 24, |
286 | x86_cpu_AMD_VIRT_SSBD = x86_cpu_index_80000008_ebx + 25, |
287 | |
288 | x86_cpu_index_7_ecx_1_eax |
289 | = (CPUID_INDEX_7_ECX_1 * 8 * 4 * sizeof (unsigned int) |
290 | + cpuid_register_index_eax * 8 * sizeof (unsigned int)), |
291 | |
292 | x86_cpu_RAO_INT = x86_cpu_index_7_ecx_1_eax + 3, |
293 | x86_cpu_AVX_VNNI = x86_cpu_index_7_ecx_1_eax + 4, |
294 | x86_cpu_AVX512_BF16 = x86_cpu_index_7_ecx_1_eax + 5, |
295 | x86_cpu_LASS = x86_cpu_index_7_ecx_1_eax + 6, |
296 | x86_cpu_CMPCCXADD = x86_cpu_index_7_ecx_1_eax + 7, |
297 | x86_cpu_ArchPerfmonExt = x86_cpu_index_7_ecx_1_eax + 8, |
298 | x86_cpu_FZLRM = x86_cpu_index_7_ecx_1_eax + 10, |
299 | x86_cpu_FSRS = x86_cpu_index_7_ecx_1_eax + 11, |
300 | x86_cpu_FSRCS = x86_cpu_index_7_ecx_1_eax + 12, |
301 | x86_cpu_WRMSRNS = x86_cpu_index_7_ecx_1_eax + 19, |
302 | x86_cpu_AMX_FP16 = x86_cpu_index_7_ecx_1_eax + 21, |
303 | x86_cpu_HRESET = x86_cpu_index_7_ecx_1_eax + 22, |
304 | x86_cpu_AVX_IFMA = x86_cpu_index_7_ecx_1_eax + 23, |
305 | x86_cpu_LAM = x86_cpu_index_7_ecx_1_eax + 26, |
306 | x86_cpu_MSRLIST = x86_cpu_index_7_ecx_1_eax + 27, |
307 | |
308 | x86_cpu_index_7_ecx_1_edx |
309 | = (CPUID_INDEX_7_ECX_1 * 8 * 4 * sizeof (unsigned int) |
310 | + cpuid_register_index_edx * 8 * sizeof (unsigned int)), |
311 | |
312 | x86_cpu_AVX_VNNI_INT8 = x86_cpu_index_7_ecx_1_edx + 4, |
313 | x86_cpu_AVX_NE_CONVERT = x86_cpu_index_7_ecx_1_edx + 5, |
314 | x86_cpu_AMX_COMPLEX = x86_cpu_index_7_ecx_1_edx + 8, |
315 | x86_cpu_PREFETCHI = x86_cpu_index_7_ecx_1_edx + 14, |
316 | x86_cpu_AVX10 = x86_cpu_index_7_ecx_1_edx + 19, |
317 | x86_cpu_APX_F = x86_cpu_index_7_ecx_1_edx + 21, |
318 | |
319 | x86_cpu_index_19_ebx |
320 | = (CPUID_INDEX_19 * 8 * 4 * sizeof (unsigned int) |
321 | + cpuid_register_index_ebx * 8 * sizeof (unsigned int)), |
322 | |
323 | x86_cpu_AESKLE = x86_cpu_index_19_ebx, |
324 | x86_cpu_WIDE_KL = x86_cpu_index_19_ebx + 2, |
325 | |
326 | x86_cpu_index_14_ecx_0_ebx |
327 | = (CPUID_INDEX_14_ECX_0 * 8 * 4 * sizeof (unsigned int) |
328 | + cpuid_register_index_ebx * 8 * sizeof (unsigned int)), |
329 | |
330 | x86_cpu_PTWRITE = x86_cpu_index_14_ecx_0_ebx + 4, |
331 | |
332 | x86_cpu_index_24_ecx_0_ebx |
333 | = (CPUID_INDEX_24_ECX_0 * 8 * 4 * sizeof (unsigned int) |
334 | + cpuid_register_index_ebx * 8 * sizeof (unsigned int)), |
335 | |
336 | x86_cpu_AVX10_XMM = x86_cpu_index_24_ecx_0_ebx + 16, |
337 | x86_cpu_AVX10_YMM = x86_cpu_index_24_ecx_0_ebx + 17, |
338 | x86_cpu_AVX10_ZMM = x86_cpu_index_24_ecx_0_ebx + 18, |
339 | }; |
340 | |