summaryrefslogtreecommitdiff
path: root/arch/x86/machine/boot_asm.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/machine/boot_asm.S')
-rw-r--r--arch/x86/machine/boot_asm.S12
1 files changed, 6 insertions, 6 deletions
diff --git a/arch/x86/machine/boot_asm.S b/arch/x86/machine/boot_asm.S
index 0b08353d..fc8ab5e2 100644
--- a/arch/x86/machine/boot_asm.S
+++ b/arch/x86/machine/boot_asm.S
@@ -59,7 +59,6 @@ ASM_ENTRY(_start)
1:
movl $(boot_stack - KERNEL_OFFSET + BOOT_STACK_SIZE), %esp
- movl %esp, %ebp
#ifdef __LP64__
call boot_check_long_mode
@@ -87,7 +86,7 @@ ASM_ENTRY(_start)
#ifdef __LP64__
.code64
movq $(boot_stack + BOOT_STACK_SIZE), %rsp
- movq %rsp, %rbp
+ xorq %rbp, %rbp
.code32
#else /* __LP64__ */
movl %cr0, %eax
@@ -97,12 +96,13 @@ ASM_ENTRY(_start)
1:
movl $(boot_stack + BOOT_STACK_SIZE), %esp
- movl %esp, %ebp
+ xorl %ebp, %ebp
#endif /* __LP64__ */
call boot_main
/* Never reached */
+ nop
ASM_END(_start)
ASM_DATA(boot_gdtr)
@@ -209,7 +209,6 @@ ASM_ENTRY(boot_ap_start32)
1:
movl $(boot_ap_stack + BOOT_STACK_SIZE), %esp
- movl %esp, %ebp
#ifdef __LP64__
call boot_setup_long_mode
@@ -237,17 +236,18 @@ ASM_ENTRY(boot_ap_start32)
.code64
movq boot_ap_stack_addr, %rsp
addq $BOOT_STACK_SIZE, %rsp
- movq %rsp, %rbp
+ xorq %rbp, %rbp
.code32
#else /* __LP64__ */
movl boot_ap_stack_addr, %esp
addl $BOOT_STACK_SIZE, %esp
- movl %esp, %ebp
+ xorl %ebp, %ebp
#endif /* __LP64__ */
call boot_ap_main
/* Never reached */
+ nop
ASM_END(boot_ap_start32)
/*