aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/boot/trampoline.S
diff options
context:
space:
mode:
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>2007-06-18 16:47:16 +0100
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>2007-06-18 16:47:16 +0100
commit470566b3500ca682c844fdb1c1910c096c887997 (patch)
treefa9e42109b05254b7aa05f15765cdccd08922a3d /xen/arch/x86/boot/trampoline.S
parent1d48812d23216a7fd6be33e351becd3c9548d2c6 (diff)
downloadxen-470566b3500ca682c844fdb1c1910c096c887997.tar.gz
xen-470566b3500ca682c844fdb1c1910c096c887997.tar.bz2
xen-470566b3500ca682c844fdb1c1910c096c887997.zip
x86: Boot trampoline cleanups suggested by Xin Li.
Signed-off-by: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'xen/arch/x86/boot/trampoline.S')
-rw-r--r--xen/arch/x86/boot/trampoline.S11
1 files changed, 4 insertions, 7 deletions
diff --git a/xen/arch/x86/boot/trampoline.S b/xen/arch/x86/boot/trampoline.S
index b76a25a3e7..ca2337af23 100644
--- a/xen/arch/x86/boot/trampoline.S
+++ b/xen/arch/x86/boot/trampoline.S
@@ -13,12 +13,11 @@ trampoline_realmode_entry:
cli
lidt bootsym(idt_48)
lgdt bootsym(gdt_48)
+ mov $1,%bl # EBX != 0 indicates we are an AP
xor %ax, %ax
inc %ax
lmsw %ax # CR0.PE = 1 (enter protected mode)
- mov $1,%bl # EBX != 0 indicates we are an AP
- jmp 1f
-1: ljmpl $BOOT_CS32,$bootsym_phys(trampoline_protmode_entry)
+ ljmpl $BOOT_CS32,$bootsym_phys(trampoline_protmode_entry)
idt_48: .word 0, 0, 0 # base = limit = 0
gdt_48: .word 6*8-1
@@ -135,10 +134,9 @@ trampoline_boot_cpu_entry:
ljmp $BOOT_PSEUDORM_CS,$bootsym(1f)
.code16
1: mov %eax,%cr0 # CR0.PE = 0 (leave protected mode)
- jmp 1f
/* Load proper real-mode values into %cs, %ds, %es and %ss. */
-1: ljmp $(BOOT_TRAMPOLINE>>4),$bootsym(1f)
+ ljmp $(BOOT_TRAMPOLINE>>4),$bootsym(1f)
1: mov $(BOOT_TRAMPOLINE>>4),%ax
mov %ax,%ds
mov %ax,%es
@@ -166,10 +164,9 @@ trampoline_boot_cpu_entry:
xor %ax,%ax
inc %ax
lmsw %ax # CR0.PE = 1 (enter protected mode)
- jmp 1f
/* Load proper protected-mode values into all segment registers. */
-1: ljmpl $BOOT_CS32,$bootsym_phys(1f)
+ ljmpl $BOOT_CS32,$bootsym_phys(1f)
.code32
1: mov $BOOT_DS,%eax
mov %eax,%ds