KNF and simplify Xen, and reduce the diff with amd64 a little

This commit is contained in:
maxv 2016-11-11 11:00:38 +00:00
parent 3a541ed229
commit 704dbda08c

View File

@ -1,4 +1,4 @@
/* $NetBSD: locore.S,v 1.138 2016/10/16 10:51:31 maxv Exp $ */
/* $NetBSD: locore.S,v 1.139 2016/11/11 11:00:38 maxv Exp $ */
/*
* Copyright-o-rama!
@ -128,7 +128,7 @@
*/
#include <machine/asm.h>
__KERNEL_RCSID(0, "$NetBSD: locore.S,v 1.138 2016/10/16 10:51:31 maxv Exp $");
__KERNEL_RCSID(0, "$NetBSD: locore.S,v 1.139 2016/11/11 11:00:38 maxv Exp $");
#include "opt_compat_oldboot.h"
#include "opt_copy_symtab.h"
@ -847,7 +847,7 @@ begin:
pushl $0 /* init386() expects a 64 bits paddr_t with PAE */
#endif
pushl %eax
call _C_LABEL(init386) /* wire 386 chip for unix operation */
call _C_LABEL(init386)
addl $PDE_SIZE,%esp /* pop paddr_t */
addl $NGDT*8,%esp /* pop temporary gdt */
@ -876,38 +876,43 @@ begin:
popfl
cld
movl %esp, %ebx /* save start of available space */
movl $_RELOC(tmpstk),%esp /* bootstrap stack end location */
/*
* Xen info:
* - %esp -> stack, *theoretically* the last used page by Xen bootstrap
*/
movl %esp,%ebx
movl $_RELOC(tmpstk),%esp
/* Clear BSS. */
xorl %eax,%eax
movl $RELOC(__bss_start),%edi
movl $RELOC(_end),%ecx
subl %edi,%ecx
rep stosb
rep
stosb
/* Copy the necessary stuff from start_info structure. */
/* We need to copy shared_info early, so that sti/cli work */
movl $RELOC(start_info_union),%edi
movl $128,%ecx
rep movsl
rep
movsl
/* Clear segment registers; always null in proc0. */
/* Clear segment registers. */
xorl %eax,%eax
movw %ax,%fs
movw %ax,%gs
decl %eax
movl %eax,RELOC(cpuid_level)
xorl %eax,%eax
cpuid
movl %eax,RELOC(cpuid_level)
/*
* Use a temp page. We'll re- add it to uvm(9) once we're
* done using it.
* Use a temporary GDT page. We'll re-add it to uvm(9) once we're done
* using it.
*/
movl $RELOC(tmpgdt), %eax
movl $RELOC(tmpgdt),%eax
pushl %eax /* start of temporary gdt */
call _C_LABEL(initgdt)
addl $4,%esp
@ -915,23 +920,23 @@ begin:
call xen_pmap_bootstrap
/*
* First avail returned by xen_pmap_bootstrap in %eax
* The first VA available is returned by xen_pmap_bootstrap in %eax. We
* use it as the UAREA, and set up the stack here.
*/
movl %eax, %esi;
movl %esi, _C_LABEL(lwp0uarea)
/* Set up bootstrap stack. */
movl %eax,%esi
movl %esi,_C_LABEL(lwp0uarea)
leal (USPACE-FRAMESIZE)(%eax),%esp
xorl %ebp,%ebp /* mark end of frames */
addl $USPACE, %esi
subl $KERNBASE, %esi /* init386 wants a physical address */
/* Set first_avail after the UAREA. */
addl $USPACE,%esi
subl $KERNBASE,%esi /* init386 wants a physical address */
#ifdef PAE
pushl $0 /* init386() expects a 64 bits paddr_t with PAE */
#endif
pushl %esi
call _C_LABEL(init386) /* wire 386 chip for unix operation */
call _C_LABEL(init386)
addl $PDE_SIZE,%esp /* pop paddr_t */
call _C_LABEL(main)
#endif /* XEN */