Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/amd64/amd64 Cosmetic changes.



details:   https://anonhg.NetBSD.org/src/rev/704882428a6a
branches:  trunk
changeset: 341840:704882428a6a
user:      maxv <maxv%NetBSD.org@localhost>
date:      Wed Nov 25 16:00:09 2015 +0000

description:
Cosmetic changes.

diffstat:

 sys/arch/amd64/amd64/locore.S |  151 +++++++++++++++++++++--------------------
 1 files changed, 76 insertions(+), 75 deletions(-)

diffs (292 lines):

diff -r ab88f4ae6c16 -r 704882428a6a sys/arch/amd64/amd64/locore.S
--- a/sys/arch/amd64/amd64/locore.S     Wed Nov 25 08:39:45 2015 +0000
+++ b/sys/arch/amd64/amd64/locore.S     Wed Nov 25 16:00:09 2015 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: locore.S,v 1.82 2015/11/22 14:06:08 maxv Exp $ */
+/*     $NetBSD: locore.S,v 1.83 2015/11/25 16:00:09 maxv Exp $ */
 
 /*
  * Copyright-o-rama!
@@ -191,6 +191,43 @@
 #define        _RELOC(x)       ((x) - KERNBASE)
 #define        RELOC(x)        _RELOC(_C_LABEL(x))
 
+#if L2_SLOT_KERNBASE > 0
+#define TABLE_L2_ENTRIES (2 * (NKL2_KIMG_ENTRIES + 1))
+#else
+#define TABLE_L2_ENTRIES (NKL2_KIMG_ENTRIES + 1)
+#endif
+
+#if L3_SLOT_KERNBASE > 0
+#define TABLE_L3_ENTRIES (2 * NKL3_KIMG_ENTRIES)
+#else
+#define TABLE_L3_ENTRIES NKL3_KIMG_ENTRIES
+#endif
+
+#define PROC0_PML4_OFF 0
+#define PROC0_STK_OFF  (PROC0_PML4_OFF + PAGE_SIZE)
+#define PROC0_PTP3_OFF (PROC0_STK_OFF + UPAGES * PAGE_SIZE)
+#define PROC0_PTP2_OFF (PROC0_PTP3_OFF + NKL4_KIMG_ENTRIES * PAGE_SIZE)
+#define PROC0_PTP1_OFF (PROC0_PTP2_OFF + TABLE_L3_ENTRIES * PAGE_SIZE)
+#define TABLESIZE \
+  ((NKL4_KIMG_ENTRIES + TABLE_L3_ENTRIES + TABLE_L2_ENTRIES + 1 + UPAGES) \
+    * PAGE_SIZE)
+
+/*
+ * fillkpt - Fill in a kernel page table
+ *     eax = pte (page frame | control | status)
+ *     ebx = page table address
+ *     ecx = number of pages to map
+ *
+ * Each entry is 8 (PDE_SIZE) bytes long: we must set the 4 upper bytes to 0.
+ */
+#define fillkpt        \
+1:     movl    %eax,(%ebx)             ;       /* store phys addr */   \
+       movl    $0,(PDE_SIZE-4)(%ebx)   ;       /* upper 32 bits 0 */   \
+       addl    $PDE_SIZE,%ebx          ;       /* next PTE/PDE */      \
+       addl    $PAGE_SIZE,%eax         ;       /* next phys page */    \
+       loop    1b                      ;
+
+
 #ifdef XEN
 
 /*
@@ -358,7 +395,7 @@
 
        /*
         * Load parameters from the stack (32 bits):   
-        *     boothowto, [bootdev], bootinfo, esym, basemem, extmem
+        *     boothowto, [bootdev], bootinfo, esym, biosbasemem, biosextmem
         * We are not interested in 'bootdev'.
         */
 
@@ -443,24 +480,29 @@
        movl    %eax,(%ebp)
        movl    $KERNBASE_HI,4(%ebp)
 
+       /* Load 'biosextmem' */
        movl    $RELOC(biosextmem),%ebp
        movl    (%ebp),%eax
-       testl   %eax,%eax
-       jnz     1f
+       testl   %eax,%eax               /* already set? */
+       jnz     biosextmem_finished
 
        movl    20(%esp),%eax
        movl    %eax,(%ebp)
 
-1:
+biosextmem_finished:
+       /* Load 'biosbasemem' */
        movl    $RELOC(biosbasemem),%ebp
        movl    (%ebp),%eax
-       testl   %eax,%eax
-       jnz     1f
+       testl   %eax,%eax               /* already set? */
+       jnz     biosbasemem_finished
+
        movl    24(%esp),%eax
        movl    %eax,(%ebp)
-1:
 
-       /* First, reset the PSL. */
+biosbasemem_finished:
+       /*
+        * Done with the parameters. First, reset the PSL.
+        */
        pushl   $PSL_MBO
        popfl
 
@@ -489,45 +531,9 @@
  *                            0          1       2      3
  */
 
-#if L2_SLOT_KERNBASE > 0
-#define TABLE_L2_ENTRIES (2 * (NKL2_KIMG_ENTRIES + 1))
-#else
-#define TABLE_L2_ENTRIES (NKL2_KIMG_ENTRIES + 1)
-#endif
-
-#if L3_SLOT_KERNBASE > 0
-#define TABLE_L3_ENTRIES (2 * NKL3_KIMG_ENTRIES)
-#else
-#define TABLE_L3_ENTRIES NKL3_KIMG_ENTRIES
-#endif
-
-#define PROC0_PML4_OFF 0
-#define PROC0_STK_OFF  (PROC0_PML4_OFF + PAGE_SIZE)
-#define PROC0_PTP3_OFF (PROC0_STK_OFF + UPAGES * PAGE_SIZE)
-#define PROC0_PTP2_OFF (PROC0_PTP3_OFF + NKL4_KIMG_ENTRIES * PAGE_SIZE)
-#define PROC0_PTP1_OFF (PROC0_PTP2_OFF + TABLE_L3_ENTRIES * PAGE_SIZE)
-#define TABLESIZE \
-  ((NKL4_KIMG_ENTRIES + TABLE_L3_ENTRIES + TABLE_L2_ENTRIES + 1 + UPAGES) \
-    * PAGE_SIZE)
-
-/*
- * fillkpt - Fill in a kernel page table
- *     eax = pte (page frame | control | status)
- *     ebx = page table address
- *     ecx = number of pages to map
- *
- * Each entry is 8 (PDE_SIZE) bytes long: we must set the 4 upper bytes to 0.
- */
-
-#define fillkpt        \
-1:     movl    %eax,(%ebx)             ;       /* store phys addr */   \
-       movl    $0,(PDE_SIZE-4)(%ebx)   ;       /* upper 32 bits 0 */   \
-       addl    $PDE_SIZE,%ebx          ;       /* next PTE/PDE */      \
-       addl    $PAGE_SIZE,%eax         ;       /* next phys page */    \
-       loop    1b                      ;
-
        /* Find end of kernel image. */
        movl    $RELOC(end),%edi
+
 #if (NKSYMS || defined(DDB) || defined(MODULAR)) && !defined(makeoptions_COPY_SYMTAB)
        /* Save the symbols (if loaded). */
        movl    RELOC(esym),%eax
@@ -551,17 +557,18 @@
        andl    $~PGOFSET,%esi
        movl    %esi,%edi
 
+       /* Clear the tables */
        xorl    %eax,%eax
        cld
        movl    $TABLESIZE,%ecx
        shrl    $2,%ecx
        rep
-       stosl
+       stosl                           /* copy eax -> edi */
 
 /*
  * Build initial page tables.
  */
-       leal    (PROC0_PTP1_OFF)(%esi), %ebx
+       leal    (PROC0_PTP1_OFF)(%esi),%ebx
 
        /* Skip the first MB */
        movl    $(KERNTEXTOFF_LO - KERNBASE_LO),%eax
@@ -570,9 +577,9 @@
        addl    %ecx,%ebx
 
        /*
-        * Compute &__data_start - KERNBASE. This can't be > 4G,
-        * or we can't deal with it anyway, since we can't load it in
-        * 32 bit mode. So use the bottom 32 bits.
+        * Compute &__data_start - KERNBASE. This can't be > 4G, or we can't
+        * deal with it anyway, since we can't load it in 32 bit mode. So use
+        * the bottom 32 bits.
         */
        movl    $RELOC(__data_start),%edx
        andl    $~PGOFSET,%edx
@@ -609,7 +616,7 @@
 
 #if L2_SLOT_KERNBASE > 0
        /* If needed, set up level 2 entries for actual kernel mapping */
-       leal    (PROC0_PTP2_OFF+ L2_SLOT_KERNBASE*8)(%esi),%ebx
+       leal    (PROC0_PTP2_OFF + L2_SLOT_KERNBASE*8)(%esi),%ebx
        leal    (PROC0_PTP1_OFF)(%esi),%eax
        orl     $(PG_V|PG_KW),%eax
        movl    $(NKL2_KIMG_ENTRIES+1),%ecx
@@ -625,9 +632,9 @@
 
 #if L3_SLOT_KERNBASE > 0
        /* If needed, set up level 3 entries for actual kernel mapping */
-       leal    (PROC0_PTP3_OFF+ L3_SLOT_KERNBASE*8)(%esi),%ebx
+       leal    (PROC0_PTP3_OFF + L3_SLOT_KERNBASE*8)(%esi),%ebx
        leal    (PROC0_PTP2_OFF)(%esi),%eax
-       orl     $(PG_V|PG_KW), %eax
+       orl     $(PG_V|PG_KW),%eax
        movl    $NKL3_KIMG_ENTRIES,%ecx
        fillkpt
 #endif
@@ -642,7 +649,7 @@
        /* Set up top level entries for actual kernel mapping */
        leal    (PROC0_PML4_OFF + L4_SLOT_KERNBASE*8)(%esi),%ebx
        leal    (PROC0_PTP3_OFF)(%esi),%eax
-       orl     $(PG_V|PG_KW), %eax
+       orl     $(PG_V|PG_KW),%eax
        movl    $NKL4_KIMG_ENTRIES,%ecx
        fillkpt
 
@@ -651,7 +658,7 @@
        leal    (PROC0_PML4_OFF)(%esi),%eax
        orl     $(PG_V|PG_KW),%eax
        movl    %eax,(%ebx)
-       movl    $0, 4(%ebx)
+       movl    $0,4(%ebx)
 
        /* Save phys. addr of PTD, for libkvm. */
        movl    $RELOC(PDPpaddr),%ebp
@@ -692,26 +699,21 @@
 compat:
 
        /*
-        * 5.
-        * Not quite done yet, we're now in a compatibility segment,
-        * in legacy mode. We must jump to a long mode segment.
-        * Need to set up a temporary GDT with a long mode segment
-        * in it to do that.
+        * 5. Not quite done yet, we're now in a compatibility segment, in
+        *    legacy mode. We must jump to a long mode segment. Need to set up
+        *    a temporary GDT with a long mode segment in it to do that.
         */
-
        movl    $RELOC(gdt64_lo),%eax
        lgdt    (%eax)
        movl    $RELOC(farjmp64),%eax
        ljmp    *(%eax)
 
-.code64
+       .code64
 longmode:
        /*
-        * 6.
-        * Finally, we're in long mode. However, we're still
-        * in the identity mapped area (could not jump out
-        * of that earlier because it would have been a > 32bit
-        * jump). We can do that now, so here we go.
+        * 6. Finally, we're in long mode. However, we're still in the identity
+        *    mapped area (could not jump out of that earlier because it would
+        *    have been a > 32bit jump). We can do that now, so here we go.
         */
        movabsq $longmode_hi,%rax
        jmp     *%rax
@@ -726,16 +728,15 @@
        lgdt    (%rax)
 
        /*
-        * We have arrived.
-        * There's no need anymore for the identity mapping in low
-        * memory, remove it.
+        * We have arrived. There's no need anymore for the identity mapping in
+        * low memory, remove it.
         */
        movq    $KERNBASE,%r8
 
 #if L2_SLOT_KERNBASE > 0
        movq    $(NKL2_KIMG_ENTRIES+1),%rcx
        leaq    (PROC0_PTP2_OFF)(%rsi),%rbx
-       addq    %r8, %rbx
+       addq    %r8,%rbx
 1:     movq    $0,(%rbx)
        addq    $8,%rbx
        loop    1b
@@ -744,15 +745,15 @@
 #if L3_SLOT_KERNBASE > 0
        movq    $NKL3_KIMG_ENTRIES,%rcx
        leaq    (PROC0_PTP3_OFF)(%rsi),%rbx
-       addq    %r8, %rbx
+       addq    %r8,%rbx
 1:     movq    $0,(%rbx)
        addq    $8,%rbx
        loop    1b
 #endif
 
        movq    $NKL4_KIMG_ENTRIES,%rcx
-       leaq    (PROC0_PML4_OFF)(%rsi),%rbx     # old, phys  address of PML4
-       addq    %r8, %rbx                       # new, virtual address of PML4
+       leaq    (PROC0_PML4_OFF)(%rsi),%rbx     # old, phys address of PML4
+       addq    %r8,%rbx                        # new, virtual address of PML4
 1:     movq    $0,(%rbx)
        addq    $8,%rbx
        loop    1b



Home | Main Index | Thread Index | Old Index