diff options
author | H. Peter Anvin <hpa@zytor.com> | 2008-08-27 21:53:07 -0400 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2008-08-27 22:25:44 -0400 |
commit | f1240c002679a77990fd7c198991ed15a437d691 (patch) | |
tree | db92021a7bb1a0931611e00c9f0cee3c113430d2 /include/asm-x86/cpufeature.h | |
parent | 7414aa41a63348c3bc72d8c37b716024c29b6d50 (diff) |
x86: cpufeature: add Intel features from CPUID and AVX specs
Add all Intel CPUID features currently documented in the CPUID spec
(AP-485, 241618-032, Dec 2007) and the AVX Programming Reference
(319433-003, Aug 2008).
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'include/asm-x86/cpufeature.h')
-rw-r--r-- | include/asm-x86/cpufeature.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/include/asm-x86/cpufeature.h b/include/asm-x86/cpufeature.h index 611da2898b2b..7bd98b724fd5 100644 --- a/include/asm-x86/cpufeature.h +++ b/include/asm-x86/cpufeature.h | |||
@@ -91,6 +91,8 @@ | |||
91 | 91 | ||
92 | /* Intel-defined CPU features, CPUID level 0x00000001 (ecx), word 4 */ | 92 | /* Intel-defined CPU features, CPUID level 0x00000001 (ecx), word 4 */ |
93 | #define X86_FEATURE_XMM3 (4*32+ 0) /* "pni" SSE-3 */ | 93 | #define X86_FEATURE_XMM3 (4*32+ 0) /* "pni" SSE-3 */ |
94 | #define X86_FEATURE_PCLMULQDQ (4*32+ 1) /* PCLMULQDQ instruction */ | ||
95 | #define X86_FEATURE_DTES64 (4*32+ 2) /* 64-bit Debug Store */ | ||
94 | #define X86_FEATURE_MWAIT (4*32+ 3) /* "monitor" Monitor/Mwait support */ | 96 | #define X86_FEATURE_MWAIT (4*32+ 3) /* "monitor" Monitor/Mwait support */ |
95 | #define X86_FEATURE_DSCPL (4*32+ 4) /* "ds_cpl" CPL Qual. Debug Store */ | 97 | #define X86_FEATURE_DSCPL (4*32+ 4) /* "ds_cpl" CPL Qual. Debug Store */ |
96 | #define X86_FEATURE_VMX (4*32+ 5) /* Hardware virtualization */ | 98 | #define X86_FEATURE_VMX (4*32+ 5) /* Hardware virtualization */ |
@@ -99,11 +101,18 @@ | |||
99 | #define X86_FEATURE_TM2 (4*32+ 8) /* Thermal Monitor 2 */ | 101 | #define X86_FEATURE_TM2 (4*32+ 8) /* Thermal Monitor 2 */ |
100 | #define X86_FEATURE_SSSE3 (4*32+ 9) /* Supplemental SSE-3 */ | 102 | #define X86_FEATURE_SSSE3 (4*32+ 9) /* Supplemental SSE-3 */ |
101 | #define X86_FEATURE_CID (4*32+10) /* Context ID */ | 103 | #define X86_FEATURE_CID (4*32+10) /* Context ID */ |
104 | #define X86_FEATURE_FMA (4*32+12) /* Fused multiply-add */ | ||
102 | #define X86_FEATURE_CX16 (4*32+13) /* CMPXCHG16B */ | 105 | #define X86_FEATURE_CX16 (4*32+13) /* CMPXCHG16B */ |
103 | #define X86_FEATURE_XTPR (4*32+14) /* Send Task Priority Messages */ | 106 | #define X86_FEATURE_XTPR (4*32+14) /* Send Task Priority Messages */ |
107 | #define X86_FEATURE_PDCM (4*32+15) /* Performance Capabilities */ | ||
104 | #define X86_FEATURE_DCA (4*32+18) /* Direct Cache Access */ | 108 | #define X86_FEATURE_DCA (4*32+18) /* Direct Cache Access */ |
105 | #define X86_FEATURE_XMM4_1 (4*32+19) /* "sse4_1" SSE-4.1 */ | 109 | #define X86_FEATURE_XMM4_1 (4*32+19) /* "sse4_1" SSE-4.1 */ |
106 | #define X86_FEATURE_XMM4_2 (4*32+20) /* "sse4_2" SSE-4.2 */ | 110 | #define X86_FEATURE_XMM4_2 (4*32+20) /* "sse4_2" SSE-4.2 */ |
111 | #define X86_FEATURE_X2APIC (4*32+21) /* x2APIC */ | ||
112 | #define X86_FEATURE_AES (4*32+25) /* AES instructions */ | ||
113 | #define X86_FEATURE_XSAVE (4*32+26) /* XSAVE/XRSTOR/XSETBV/XGETBV */ | ||
114 | #define X86_FEATURE_OSXSAVE (4*32+27) /* "" XSAVE enabled in the OS */ | ||
115 | #define X86_FEATURE_AVX (4*32+28) /* Advanced Vector Extensions */ | ||
107 | 116 | ||
108 | /* VIA/Cyrix/Centaur-defined CPU features, CPUID level 0xC0000001, word 5 */ | 117 | /* VIA/Cyrix/Centaur-defined CPU features, CPUID level 0xC0000001, word 5 */ |
109 | #define X86_FEATURE_XSTORE (5*32+ 2) /* "rng" RNG present (xstore) */ | 118 | #define X86_FEATURE_XSTORE (5*32+ 2) /* "rng" RNG present (xstore) */ |
@@ -213,7 +222,10 @@ extern const char * const x86_power_flags[32]; | |||
213 | #define cpu_has_gbpages boot_cpu_has(X86_FEATURE_GBPAGES) | 222 | #define cpu_has_gbpages boot_cpu_has(X86_FEATURE_GBPAGES) |
214 | #define cpu_has_arch_perfmon boot_cpu_has(X86_FEATURE_ARCH_PERFMON) | 223 | #define cpu_has_arch_perfmon boot_cpu_has(X86_FEATURE_ARCH_PERFMON) |
215 | #define cpu_has_pat boot_cpu_has(X86_FEATURE_PAT) | 224 | #define cpu_has_pat boot_cpu_has(X86_FEATURE_PAT) |
225 | #define cpu_has_xmm4_1 boot_cpu_has(X86_FEATURE_XMM4_1) | ||
216 | #define cpu_has_xmm4_2 boot_cpu_has(X86_FEATURE_XMM4_2) | 226 | #define cpu_has_xmm4_2 boot_cpu_has(X86_FEATURE_XMM4_2) |
227 | #define cpu_has_x2apic boot_cpu_has(X86_FEATURE_X2APIC) | ||
228 | #define cpu_has_xsave boot_cpu_has(X86_FEATURE_XSAVE) | ||
217 | 229 | ||
218 | #if defined(CONFIG_X86_INVLPG) || defined(CONFIG_X86_64) | 230 | #if defined(CONFIG_X86_INVLPG) || defined(CONFIG_X86_64) |
219 | # define cpu_has_invlpg 1 | 231 | # define cpu_has_invlpg 1 |