aboutsummaryrefslogtreecommitdiffstats
path: root/arch/i386/kernel/verify_cpu.S
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2007-07-11 15:18:29 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-07-12 13:55:54 -0400
commitec481536b15eb0520d8f0204b0294480050fe1f8 (patch)
tree3f959a26ca58477734ea1e4d5370b2d3a33a1680 /arch/i386/kernel/verify_cpu.S
parentf8c09377d754f35a135454181b869ab527cc0757 (diff)
Unify the CPU features vectors between i386 and x86-64
Unify the handling of the CPU features vectors between i386 and x86-64. This also adopts the collapsing of features which are required at compile-time into constant tests from x86-64 to i386. Signed-off-by: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/i386/kernel/verify_cpu.S')
-rw-r--r--arch/i386/kernel/verify_cpu.S12
1 files changed, 6 insertions, 6 deletions
diff --git a/arch/i386/kernel/verify_cpu.S b/arch/i386/kernel/verify_cpu.S
index f1d1eacf4ab0..3efc5c137d14 100644
--- a/arch/i386/kernel/verify_cpu.S
+++ b/arch/i386/kernel/verify_cpu.S
@@ -20,7 +20,7 @@ verify_cpu:
20 testl $(1<<18),%eax 20 testl $(1<<18),%eax
21 jz bad 21 jz bad
22#endif 22#endif
23#if REQUIRED_MASK1 != 0 23#if REQUIRED_MASK0 != 0
24 pushfl # standard way to check for cpuid 24 pushfl # standard way to check for cpuid
25 popl %eax 25 popl %eax
26 movl %eax,%ebx 26 movl %eax,%ebx
@@ -39,14 +39,14 @@ verify_cpu:
39 pushfl 39 pushfl
40 popl %eax 40 popl %eax
41 cmpl %eax,%ebx 41 cmpl %eax,%ebx
42 jz bad # REQUIRED_MASK1 != 0 requires CPUID 42 jz bad # REQUIRED_MASK0 != 0 requires CPUID
43 43
44 movl $0x0,%eax # See if cpuid 1 is implemented 44 movl $0x0,%eax # See if cpuid 1 is implemented
45 cpuid 45 cpuid
46 cmpl $0x1,%eax 46 cmpl $0x1,%eax
47 jb bad # no cpuid 1 47 jb bad # no cpuid 1
48 48
49#if REQUIRED_MASK1 & NEED_CMPXCHG64 49#if REQUIRED_MASK0 & NEED_CMPXCHG64
50 /* Some VIA C3s need magic MSRs to enable CX64. Do this here */ 50 /* Some VIA C3s need magic MSRs to enable CX64. Do this here */
51 cmpl $0x746e6543,%ebx # Cent 51 cmpl $0x746e6543,%ebx # Cent
52 jne 1f 52 jne 1f
@@ -79,10 +79,10 @@ verify_cpu:
79#error add proper model checking here 79#error add proper model checking here
80#endif 80#endif
81 81
82 andl $REQUIRED_MASK1,%edx 82 andl $REQUIRED_MASK0,%edx
83 xorl $REQUIRED_MASK1,%edx 83 xorl $REQUIRED_MASK0,%edx
84 jnz bad 84 jnz bad
85#endif /* REQUIRED_MASK1 */ 85#endif /* REQUIRED_MASK0 */
86 86
87 popfl 87 popfl
88 xor %eax,%eax 88 xor %eax,%eax