Source-Changes-HG archive

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

[src/trunk]: src/sys/arch/i386/i386 Switch to C-style comments, and reduce a ...



details:   https://anonhg.NetBSD.org/src/rev/0684c9cb1527
branches:  trunk
changeset: 345178:0684c9cb1527
user:      maxv <maxv%NetBSD.org@localhost>
date:      Wed May 11 17:48:05 2016 +0000

description:
Switch to C-style comments, and reduce a little the diff between i386 and
amd64. No functional changes.

diffstat:

 sys/arch/i386/i386/locore.S |  275 ++++++++++++++++++++++---------------------
 1 files changed, 140 insertions(+), 135 deletions(-)

diffs (truncated from 598 to 300 lines):

diff -r 7600872666b2 -r 0684c9cb1527 sys/arch/i386/i386/locore.S
--- a/sys/arch/i386/i386/locore.S       Wed May 11 17:43:17 2016 +0000
+++ b/sys/arch/i386/i386/locore.S       Wed May 11 17:48:05 2016 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: locore.S,v 1.114 2015/08/30 01:46:03 uebayasi Exp $    */
+/*     $NetBSD: locore.S,v 1.115 2016/05/11 17:48:05 maxv Exp $        */
 
 /*
  * Copyright-o-rama!
@@ -64,7 +64,6 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
-
 /*-
  * Copyright (c) 1998, 2000, 2004, 2006, 2007, 2009 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -129,7 +128,7 @@
  */
 
 #include <machine/asm.h>
-__KERNEL_RCSID(0, "$NetBSD: locore.S,v 1.114 2015/08/30 01:46:03 uebayasi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: locore.S,v 1.115 2016/05/11 17:48:05 maxv Exp $");
 
 #include "opt_compat_oldboot.h"
 #include "opt_copy_symtab.h"
@@ -159,7 +158,6 @@
 #include <machine/multiboot.h>
 #endif
 
-/* XXX temporary kluge; these should not be here */
 /* Get definitions for IOM_BEGIN, IOM_END, and IOM_SIZE */
 #include <dev/isa/isareg.h>
 
@@ -170,6 +168,35 @@
 #endif /* XEN */
 #define        RELOC(x)        _RELOC(_C_LABEL(x))
 
+#ifndef PAE
+#define        PROC0_PDIR_OFF  0
+#else
+#define PROC0_L3_OFF   0
+#define PROC0_PDIR_OFF 1 * PAGE_SIZE
+#endif
+
+#define        PROC0_STK_OFF   (PROC0_PDIR_OFF + PDP_SIZE * PAGE_SIZE)
+#define        PROC0_PTP1_OFF  (PROC0_STK_OFF + 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
+ *
+ * For PAE, each entry is 8 bytes long: we must set the 4 upper bytes to 0.
+ * This is done by the first instruction of fillkpt. In the non-PAE case, this
+ * instruction just clears the page table entry.
+ */
+
+#define fillkpt        \
+1:     movl    $0,(PDE_SIZE-4)(%ebx)   ;       /* upper 32 bits: 0 */  \
+       movl    %eax,(%ebx)             ;       /* store phys addr */   \
+       addl    $PDE_SIZE,%ebx          ;       /* next PTE/PDE */      \
+       addl    $PAGE_SIZE,%eax         ;       /* next phys page */    \
+       loop    1b                      ;
+
+
 #ifdef XEN
 /*
  * Xen guest identifier and loader selection
@@ -242,30 +269,32 @@
 END(lapic_tpr)
 #endif
        .type   _C_LABEL(cputype), @object
-LABEL(cputype)         .long   0       # are we 80486, Pentium, or..
+LABEL(cputype)         .long   0       /* are we 80486, Pentium, or.. */
 END(cputype)
        .type   _C_LABEL(cpuid_level), @object
 LABEL(cpuid_level)     .long   0
 END(cpuid_level)
        .type   _C_LABEL(atdevbase), @object
-LABEL(atdevbase)       .long   0       # location of start of iomem in virtual
+LABEL(atdevbase)       .long   0       /* location of start of iomem in virt */
 END(atdevbase)
        .type   _C_LABEL(lwp0uarea), @object
 LABEL(lwp0uarea)       .long   0
 END(lwp0uarea)
        .type   _C_LABEL(PDPpaddr), @object
-LABEL(PDPpaddr)                .long   0       # paddr of PDP, for libkvm
+LABEL(PDPpaddr)                .long   0       /* paddr of PDP, for libkvm */
 END(PDPpaddr)
        .type   _C_LABEL(tablesize), @object
 _C_LABEL(tablesize):   .long   0
 END(tablesize)
+
+       /* Space for the temporary stack */
        .size   tmpstk, tmpstk - .
-       .space 512
+       .space  512
 tmpstk:
 #ifdef XEN
-       .align          PAGE_SIZE, 0x0  # Align on page boundary
+       .align          PAGE_SIZE, 0x0  /* Align on page boundary */
 LABEL(tmpgdt)
-       .space          PAGE_SIZE       # Xen expects a page
+       .space          PAGE_SIZE       /* Xen expects a page */
 END(tmpgdt)
 #endif /* XEN */
 
@@ -275,7 +304,10 @@
 
 ENTRY(start)
 #ifndef XEN
-       movw    $0x1234,0x472                   # warm boot
+
+       /* Warm boot */
+       movw    $0x1234,0x472
+
 #if defined(MULTIBOOT)
        jmp     1f
 
@@ -299,7 +331,7 @@
         * space to process it later -- after we are relocated.  It will
         * be safer to run complex C code than doing it at this point.
         */
-       pushl   %ebx            # Address of Multiboot information
+       pushl   %ebx            /* Address of Multiboot information */
        call    _C_LABEL(multiboot_pre_reloc)
        addl    $4,%esp
        jmp     2f
@@ -312,7 +344,7 @@
         * (boothowto, [bootdev], bootinfo, esym, biosextmem, biosbasemem),
         * 4 bytes each.
         */
-       addl    $4,%esp         # Discard return address to boot loader
+       addl    $4,%esp         /* Discard return address to boot loader */
        call    _C_LABEL(native_loader)
        addl    $24,%esp
 
@@ -404,30 +436,30 @@
        popfl
        jmp 2f
 trycyrix486:
-       movl    $CPU_6x86,RELOC(cputype)        # set CPU type
+       movl    $CPU_6x86,RELOC(cputype)        /* set CPU type */
        /*
         * Check for Cyrix 486 CPU by seeing if the flags change during a
         * divide. This is documented in the Cx486SLC/e SMM Programmer's
         * Guide.
         */
        xorl    %edx,%edx
-       cmpl    %edx,%edx               # set flags to known state
+       cmpl    %edx,%edx               /* set flags to known state */
        pushfl
-       popl    %ecx                    # store flags in ecx
+       popl    %ecx                    /* store flags in ecx */
        movl    $-1,%eax
        movl    $4,%ebx
-       divl    %ebx                    # do a long division
+       divl    %ebx                    /* do a long division */
        pushfl
        popl    %eax
-       xorl    %ecx,%eax               # are the flags different?
-       testl   $0x8d5,%eax             # only check C|PF|AF|Z|N|V
-       jne     2f                      # yes; must be Cyrix 6x86 CPU
-       movl    $CPU_486DLC,RELOC(cputype)      # set CPU type
+       xorl    %ecx,%eax               /* are the flags different? */
+       testl   $0x8d5,%eax             /* only check C|PF|AF|Z|N|V */
+       jne     2f                      /* yes; must be Cyrix 6x86 CPU */
+       movl    $CPU_486DLC,RELOC(cputype)      /* set CPU type */
 
 #ifndef CYRIX_CACHE_WORKS
        /* Disable caching of the ISA hole only. */
        invd
-       movb    $CCR0,%al               # Configuration Register index (CCR0)
+       movb    $CCR0,%al       /* Configuration Register index (CCR0) */
        outb    %al,$0x22
        inb     $0x23,%al
        orb     $(CCR0_NC1|CCR0_BARB),%al
@@ -439,8 +471,8 @@
        invd
 #else /* CYRIX_CACHE_WORKS */
        /* Set cache parameters */
-       invd                            # Start with guaranteed clean cache
-       movb    $CCR0,%al               # Configuration Register index (CCR0)
+       invd                    /* Start with guaranteed clean cache */
+       movb    $CCR0,%al       /* Configuration Register index (CCR0) */
        outb    %al,$0x22
        inb     $0x23,%al
        andb    $~CCR0_NC0,%al
@@ -498,10 +530,11 @@
         * The boot program should check:
         *      text+data <= &stack_variable - more_space_for_stack
         *      text+data+bss+pad+space_for_page_tables <= end_of_memory
-        * Oops, the gdt is in the carcass of the boot program so clearing
+        *
+        * XXX: the gdt is in the carcass of the boot program so clearing
         * the rest of memory is still not possible.
         */
-       movl    $_RELOC(tmpstk),%esp    # bootstrap stack end location
+       movl    $_RELOC(tmpstk),%esp
 
 /*
  * Virtual address space of kernel, without PAE. The page dir is 1 page long.
@@ -514,33 +547,6 @@
  * text | data | bss | [syms] | [blobs] | L3 | page dir | proc0 kstack | L1 ptp
  *                                     0    1          5       6      7
  */
-#ifndef PAE
-#define        PROC0_PDIR_OFF  0
-#else
-#define PROC0_L3_OFF   0
-#define PROC0_PDIR_OFF 1 * PAGE_SIZE
-#endif
-
-#define        PROC0_STK_OFF   (PROC0_PDIR_OFF + PDP_SIZE * PAGE_SIZE)
-#define        PROC0_PTP1_OFF  (PROC0_STK_OFF + 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
- *
- * For PAE, each entry is 8 bytes long: we must set the 4 upper bytes to 0.
- * This is done by the first instruction of fillkpt. In the non-PAE case, this
- * instruction just clears the page table entry.
- */
-
-#define fillkpt        \
-1:     movl    $0,(PDE_SIZE-4)(%ebx)   ;       /* clear bits */        \
-       movl    %eax,(%ebx)             ;       /* store phys addr */   \
-       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
@@ -564,7 +570,7 @@
 1:
        /* Compute sizes */
        movl    %edi,%esi
-       addl    $PGOFSET,%esi                   # page align up
+       addl    $PGOFSET,%esi
        andl    $~PGOFSET,%esi
 
        /* nkptp[1] = (esi + ~L2_FRAME) >> L2_SHIFT + 1; */
@@ -635,14 +641,14 @@
        /* Map the data, BSS, and bootstrap tables read-write. */
        leal    (PG_V|PG_KW)(%edx),%eax
        movl    RELOC(tablesize),%ecx
-       addl    %esi,%ecx                               # end of tables
-       subl    %edx,%ecx                               # subtract end of text
+       addl    %esi,%ecx                       /* end of tables */
+       subl    %edx,%ecx                       /* subtract end of text */
        shrl    $PGSHIFT,%ecx
        fillkpt
 
        /* Map ISA I/O mem (later atdevbase) */
-       movl    $(IOM_BEGIN|PG_V|PG_KW/*|PG_N*/),%eax   # having these bits set
-       movl    $(IOM_SIZE>>PGSHIFT),%ecx               # for this many pte s,
+       movl    $(IOM_BEGIN|PG_V|PG_KW/*|PG_N*/),%eax
+       movl    $(IOM_SIZE>>PGSHIFT),%ecx
        fillkpt
 
 /*
@@ -691,18 +697,17 @@
         * Startup checklist:
         * 1. Load %cr3 with pointer to PDIR (or L3 PD page for PAE).
         */
-       movl    %esi,%eax               # phys address of ptd in proc 0
-       movl    %eax,%cr3               # load ptd addr into mmu
+       movl    %esi,%eax               /* phys address of PTD in proc0 */
+       movl    %eax,%cr3               /* load PTD addr into MMU */
 
        /*
         * 2. Enable paging and the rest of it.
         */
-       movl    %cr0,%eax               # get control word
-                                       # enable paging & NPX
+       movl    %cr0,%eax
        orl     $(CR0_PE|CR0_PG|CR0_NE|CR0_TS|CR0_MP|CR0_WP|CR0_AM),%eax
-       movl    %eax,%cr0               # and page NOW!
+       movl    %eax,%cr0
 
-       pushl   $begin                  # jump to high mem
+       pushl   $begin                  /* jump to high mem */
        ret
 
 begin:
@@ -712,9 +717,9 @@
         * memory, remove it.
         */
        movl    _C_LABEL(nkptp)+1*4,%ecx
-       leal    (PROC0_PDIR_OFF)(%esi),%ebx     # old, phys address of PDIR
-       addl    $(KERNBASE), %ebx               # new, virtual address of PDIR
-1:     movl    $0,(PDE_SIZE-4)(%ebx)           # Upper bits (for PAE)
+       leal    (PROC0_PDIR_OFF)(%esi),%ebx     /* old, phys address of PDIR */
+       addl    $(KERNBASE), %ebx               /* new, virt address of PDIR */
+1:     movl    $0,(PDE_SIZE-4)(%ebx)           /* upper bits (for PAE) */



Home | Main Index | Thread Index | Old Index