* [PATCH] i386 head.S cleanup
@ 2002-05-24 5:39 Brian Gerst
0 siblings, 0 replies; only message in thread
From: Brian Gerst @ 2002-05-24 5:39 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Linux-Kernel
[-- Attachment #1: Type: text/plain, Size: 139 bytes --]
Cleans up some redundant code in head.S:
- Combine checking of AC and ID eflags.
- Streamline the setting of %cr0.
--
Brian Gerst
[-- Attachment #2: head-1 --]
[-- Type: text/plain, Size: 1633 bytes --]
diff -urN linux-bk/arch/i386/kernel/head.S linux/arch/i386/kernel/head.S
--- linux-bk/arch/i386/kernel/head.S Wed May 15 10:27:23 2002
+++ linux/arch/i386/kernel/head.S Fri May 24 01:22:06 2002
@@ -182,26 +182,19 @@
pushfl # push EFLAGS
popl %eax # get EFLAGS
movl %eax,%ecx # save original EFLAGS
- xorl $0x40000,%eax # flip AC bit in EFLAGS
+ xorl $0x240000,%eax # flip AC and ID bits in EFLAGS
pushl %eax # copy to EFLAGS
popfl # set EFLAGS
pushfl # get new EFLAGS
popl %eax # put it in eax
xorl %ecx,%eax # change in flags
- andl $0x40000,%eax # check if AC bit changed
+ pushl %ecx # restore original EFLAGS
+ popfl
+ testl $0x40000,%eax # check if AC bit changed
je is386
movb $4,X86 # at least 486
- movl %ecx,%eax
- xorl $0x200000,%eax # check ID flag
- pushl %eax
- popfl # if we are on a straight 486DX, SX, or
- pushfl # 487SX we can't change it
- popl %eax
- xorl %ecx,%eax
- pushl %ecx # restore original EFLAGS
- popfl
- andl $0x200000,%eax
+ testl $0x200000,%eax # check if ID bit changed
je is486
/* get vendor info */
@@ -227,18 +220,15 @@
movb %cl,X86_MASK
movl %edx,X86_CAPABILITY
-is486:
- movl %cr0,%eax # 486 or better
- andl $0x80000011,%eax # Save PG,PE,ET
- orl $0x50022,%eax # set AM, WP, NE and MP
+is486: movl $0x50022,%ecx # set AM, WP, NE and MP
jmp 2f
-is386: pushl %ecx # restore original EFLAGS
- popfl
- movl %cr0,%eax # 386
+is386: movl $2,%ecx # set MP
+2: movl %cr0,%eax
andl $0x80000011,%eax # Save PG,PE,ET
- orl $2,%eax # set MP
-2: movl %eax,%cr0
+ orl %ecx,%eax
+ movl %eax,%cr0
+
call check_x87
incb ready
lgdt gdt_descr
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2002-05-24 5:43 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-05-24 5:39 [PATCH] i386 head.S cleanup Brian Gerst
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.