x86.h 14 KB

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