[BACK]Return to locore.S CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / arch / i386 / i386

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/arch/i386/i386/locore.S between version 1.18 and 1.29

version 1.18, 2003/09/12 12:39:59 version 1.29, 2004/08/05 15:25:29
Line 74 
Line 74 
 #include "opt_compat_oldboot.h"  #include "opt_compat_oldboot.h"
 #include "opt_cputype.h"  #include "opt_cputype.h"
 #include "opt_ddb.h"  #include "opt_ddb.h"
 #include "opt_dummy_nops.h"  
 #include "opt_ipkdb.h"  #include "opt_ipkdb.h"
 #include "opt_lockdebug.h"  #include "opt_lockdebug.h"
 #include "opt_multiprocessor.h"  #include "opt_multiprocessor.h"
Line 126 
Line 125 
   
 #define GET_CURPCB(reg)                 movl    CPUVAR(CURPCB),reg  #define GET_CURPCB(reg)                 movl    CPUVAR(CURPCB),reg
 #define SET_CURPCB(reg)                 movl    reg,CPUVAR(CURPCB)  #define SET_CURPCB(reg)                 movl    reg,CPUVAR(CURPCB)
   
 #define CLEAR_RESCHED(reg)              movl    reg,CPUVAR(RESCHED)  #define CLEAR_RESCHED(reg)              movl    reg,CPUVAR(RESCHED)
   
 /* XXX temporary kluge; these should not be here */  /* XXX temporary kluge; these should not be here */
Line 525  try586: /* Use the `cpuid' instruction. 
Line 524  try586: /* Use the `cpuid' instruction. 
   
         /*          /*
          * Calculate the size of the kernel page table directory, and           * Calculate the size of the kernel page table directory, and
          * how many entries it will have.           * how many entries it will have.  Adjust nkpde to the actual
            * kernel size automatically.  Account for the bootstrap tables,
            * round up, and add an extra 4MB.
          */           */
           leal    TABLESIZE+NBPD+PDOFSET(%edi),%eax
           shrl    $PDSHIFT,%eax
         movl    RELOC(nkpde),%ecx               # get nkpde          movl    RELOC(nkpde),%ecx               # get nkpde
         cmpl    $NKPTP_MIN,%ecx                 # larger than min?          cmpl    %ecx,%eax
           jb      1f
           movl    %eax,%ecx
   1:      cmpl    $NKPTP_MIN,%ecx                 # larger than min?
         jge     1f          jge     1f
         movl    $NKPTP_MIN,%ecx                 # set at min          movl    $NKPTP_MIN,%ecx                 # set at min
         jmp     2f          jmp     2f
 1:      cmpl    $NKPTP_MAX,%ecx                 # larger than max?  1:      cmpl    $NKPTP_MAX,%ecx                 # larger than max?
         jle     2f          jle     2f
         movl    $NKPTP_MAX,%ecx          movl    $NKPTP_MAX,%ecx
 2:  2:      movl    %ecx,RELOC(nkpde)
   
         /* Clear memory for bootstrap tables. */          /* Clear memory for bootstrap tables. */
         shll    $PGSHIFT,%ecx          shll    $PGSHIFT,%ecx
Line 702  NENTRY(proc_trampoline)
Line 708  NENTRY(proc_trampoline)
         pushl   %ebx          pushl   %ebx
         call    *%esi          call    *%esi
         addl    $4,%esp          addl    $4,%esp
           DO_DEFERRED_SWITCH(%eax)
         INTRFASTEXIT          INTRFASTEXIT
         /* NOTREACHED */          /* NOTREACHED */
   
Line 773  ENTRY(kcopy)
Line 780  ENTRY(kcopy)
         pushl   %edi          pushl   %edi
         GET_CURPCB(%eax)                # load curpcb into eax and set on-fault          GET_CURPCB(%eax)                # load curpcb into eax and set on-fault
         pushl   PCB_ONFAULT(%eax)          pushl   PCB_ONFAULT(%eax)
         movl    $_C_LABEL(copy_fault), PCB_ONFAULT(%eax)          movl    $_C_LABEL(kcopy_fault), PCB_ONFAULT(%eax)
   
         movl    16(%esp),%esi          movl    16(%esp),%esi
         movl    20(%esp),%edi          movl    20(%esp),%edi
Line 866  _C_LABEL(copyin_func):
Line 873  _C_LABEL(copyin_func):
  */   */
 /* LINTSTUB: Func: int copyout(const void *kaddr, void *uaddr, size_t len) */  /* LINTSTUB: Func: int copyout(const void *kaddr, void *uaddr, size_t len) */
 ENTRY(copyout)  ENTRY(copyout)
           DO_DEFERRED_SWITCH(%eax)
         jmp     *_C_LABEL(copyout_func)          jmp     *_C_LABEL(copyout_func)
   
 #if defined(I386_CPU)  #if defined(I386_CPU)
Line 1007  ENTRY(i486_copyout)
Line 1015  ENTRY(i486_copyout)
  */   */
 /* LINTSTUB: Func: int copyin(const void *uaddr, void *kaddr, size_t len) */  /* LINTSTUB: Func: int copyin(const void *uaddr, void *kaddr, size_t len) */
 ENTRY(copyin)  ENTRY(copyin)
           DO_DEFERRED_SWITCH(%eax)
         jmp     *_C_LABEL(copyin_func)          jmp     *_C_LABEL(copyin_func)
   
 #if defined(I386_CPU) || defined(I486_CPU) || defined(I586_CPU) || \  #if defined(I386_CPU) || defined(I486_CPU) || defined(I586_CPU) || \
Line 1057  ENTRY(i386_copyin)
Line 1066  ENTRY(i386_copyin)
 NENTRY(copy_efault)  NENTRY(copy_efault)
         movl    $EFAULT,%eax          movl    $EFAULT,%eax
   
   /*
    * kcopy_fault is used by kcopy and copy_fault is used by copyin/out.
    *
    * they're distinguished for lazy pmap switching.  see trap().
    */
   /* LINTSTUB: Ignore */
   NENTRY(kcopy_fault)
           GET_CURPCB(%edx)
           popl    PCB_ONFAULT(%edx)
           popl    %edi
           popl    %esi
           ret
   
 /* LINTSTUB: Ignore */  /* LINTSTUB: Ignore */
 NENTRY(copy_fault)  NENTRY(copy_fault)
         GET_CURPCB(%edx)          GET_CURPCB(%edx)
Line 1078  ENTRY(copyoutstr)
Line 1100  ENTRY(copyoutstr)
         pushl   %esi          pushl   %esi
         pushl   %edi          pushl   %edi
   
           DO_DEFERRED_SWITCH(%eax)
   
         movl    12(%esp),%esi           # esi = from          movl    12(%esp),%esi           # esi = from
         movl    16(%esp),%edi           # edi = to          movl    16(%esp),%edi           # edi = to
         movl    20(%esp),%edx           # edx = maxlen          movl    20(%esp),%edx           # edx = maxlen
Line 1195  ENTRY(copyoutstr)
Line 1219  ENTRY(copyoutstr)
 ENTRY(copyinstr)  ENTRY(copyinstr)
         pushl   %esi          pushl   %esi
         pushl   %edi          pushl   %edi
   
           DO_DEFERRED_SWITCH(%eax)
   
         GET_CURPCB(%ecx)          GET_CURPCB(%ecx)
         movl    $_C_LABEL(copystr_fault),PCB_ONFAULT(%ecx)          movl    $_C_LABEL(copystr_fault),PCB_ONFAULT(%ecx)
   
Line 1306  ENTRY(copystr)
Line 1333  ENTRY(copystr)
  */   */
 /* LINTSTUB: Func: long fuword(const void *base) */  /* LINTSTUB: Func: long fuword(const void *base) */
 ENTRY(fuword)  ENTRY(fuword)
           DO_DEFERRED_SWITCH(%eax)
         movl    4(%esp),%edx          movl    4(%esp),%edx
         cmpl    $VM_MAXUSER_ADDRESS-4,%edx          cmpl    $VM_MAXUSER_ADDRESS-4,%edx
         ja      _C_LABEL(fusuaddrfault)          ja      _C_LABEL(fusuaddrfault)
Line 1322  ENTRY(fuword)
Line 1350  ENTRY(fuword)
  */   */
 /* LINTSTUB: Func: int fusword(const void *base) */  /* LINTSTUB: Func: int fusword(const void *base) */
 ENTRY(fusword)  ENTRY(fusword)
           DO_DEFERRED_SWITCH(%eax)
         movl    4(%esp),%edx          movl    4(%esp),%edx
         cmpl    $VM_MAXUSER_ADDRESS-2,%edx          cmpl    $VM_MAXUSER_ADDRESS-2,%edx
         ja      _C_LABEL(fusuaddrfault)          ja      _C_LABEL(fusuaddrfault)
Line 1339  ENTRY(fusword)
Line 1368  ENTRY(fusword)
  */   */
 /* LINTSTUB: Func: int fuswintr(const void *base) */  /* LINTSTUB: Func: int fuswintr(const void *base) */
 ENTRY(fuswintr)  ENTRY(fuswintr)
           cmpl    $TLBSTATE_VALID, CPUVAR(TLBSTATE)
           jnz     _C_LABEL(fusuaddrfault)
         movl    4(%esp),%edx          movl    4(%esp),%edx
         cmpl    $VM_MAXUSER_ADDRESS-2,%edx          cmpl    $VM_MAXUSER_ADDRESS-2,%edx
         ja      _C_LABEL(fusuaddrfault)          ja      _C_LABEL(fusuaddrfault)
Line 1356  ENTRY(fuswintr)
Line 1387  ENTRY(fuswintr)
  */   */
 /* LINTSTUB: Func: int fubyte(const void *base) */  /* LINTSTUB: Func: int fubyte(const void *base) */
 ENTRY(fubyte)  ENTRY(fubyte)
           DO_DEFERRED_SWITCH(%eax)
         movl    4(%esp),%edx          movl    4(%esp),%edx
         cmpl    $VM_MAXUSER_ADDRESS-1,%edx          cmpl    $VM_MAXUSER_ADDRESS-1,%edx
         ja      _C_LABEL(fusuaddrfault)          ja      _C_LABEL(fusuaddrfault)
Line 1400  NENTRY(fusuaddrfault)
Line 1432  NENTRY(fusuaddrfault)
  */   */
 /* LINTSTUB: Func: int suword(void *base, long c) */  /* LINTSTUB: Func: int suword(void *base, long c) */
 ENTRY(suword)  ENTRY(suword)
           DO_DEFERRED_SWITCH(%eax)
         movl    4(%esp),%edx          movl    4(%esp),%edx
         cmpl    $VM_MAXUSER_ADDRESS-4,%edx          cmpl    $VM_MAXUSER_ADDRESS-4,%edx
         ja      _C_LABEL(fusuaddrfault)          ja      _C_LABEL(fusuaddrfault)
Line 1447  ENTRY(suword)
Line 1480  ENTRY(suword)
  */   */
 /* LINTSTUB: Func: int susword(void *base, short c) */  /* LINTSTUB: Func: int susword(void *base, short c) */
 ENTRY(susword)  ENTRY(susword)
           DO_DEFERRED_SWITCH(%eax)
         movl    4(%esp),%edx          movl    4(%esp),%edx
         cmpl    $VM_MAXUSER_ADDRESS-2,%edx          cmpl    $VM_MAXUSER_ADDRESS-2,%edx
         ja      _C_LABEL(fusuaddrfault)          ja      _C_LABEL(fusuaddrfault)
Line 1495  ENTRY(susword)
Line 1529  ENTRY(susword)
  */   */
 /* LINTSTUB: Func: int suswintr(void *base, short c) */  /* LINTSTUB: Func: int suswintr(void *base, short c) */
 ENTRY(suswintr)  ENTRY(suswintr)
           cmpl    $TLBSTATE_VALID, CPUVAR(TLBSTATE)
           jnz     _C_LABEL(fusuaddrfault)
         movl    4(%esp),%edx          movl    4(%esp),%edx
         cmpl    $VM_MAXUSER_ADDRESS-2,%edx          cmpl    $VM_MAXUSER_ADDRESS-2,%edx
         ja      _C_LABEL(fusuaddrfault)          ja      _C_LABEL(fusuaddrfault)
Line 1532  ENTRY(suswintr)
Line 1568  ENTRY(suswintr)
  */   */
 /* LINTSTUB: Func: int subyte(void *base, int c) */  /* LINTSTUB: Func: int subyte(void *base, int c) */
 ENTRY(subyte)  ENTRY(subyte)
           DO_DEFERRED_SWITCH(%eax)
         movl    4(%esp),%edx          movl    4(%esp),%edx
         cmpl    $VM_MAXUSER_ADDRESS-1,%edx          cmpl    $VM_MAXUSER_ADDRESS-1,%edx
         ja      _C_LABEL(fusuaddrfault)          ja      _C_LABEL(fusuaddrfault)
Line 1717  ENTRY(cpu_switch)
Line 1754  ENTRY(cpu_switch)
          */           */
   
         pushl   %esi          pushl   %esi
         call    _C_LABEL(pmap_deactivate)       # pmap_deactivate(oldproc)          call    _C_LABEL(pmap_deactivate2)      # pmap_deactivate(oldproc)
         addl    $4,%esp          addl    $4,%esp
   
         movl    L_ADDR(%esi),%esi          movl    L_ADDR(%esi),%esi
Line 1744  ENTRY(cpu_switch)
Line 1781  ENTRY(cpu_switch)
         movl    PCB_ESP(%edi),%esp          movl    PCB_ESP(%edi),%esp
         movl    PCB_EBP(%edi),%ebp          movl    PCB_EBP(%edi),%ebp
   
   
         /* Switch address space. */  
         movl    PCB_CR3(%edi),%ecx  
         movl    %ecx,%cr3  
   
         /* Switch TSS. Reset "task busy" flag before loading. */          /* Switch TSS. Reset "task busy" flag before loading. */
           movl    %cr3,%eax
           movl    %eax,PCB_CR3(%edi)
 #ifdef MULTIPROCESSOR  #ifdef MULTIPROCESSOR
         movl    CPUVAR(GDT),%eax          movl    CPUVAR(GDT),%eax
 #else  #else
Line 1867  switch_resume:
Line 1901  switch_resume:
          */           */
   
         pushl   %esi          pushl   %esi
         call    _C_LABEL(pmap_deactivate)       # pmap_deactivate(oldproc)          call    _C_LABEL(pmap_deactivate2)      # pmap_deactivate(oldproc)
         addl    $4,%esp          addl    $4,%esp
   
         movl    L_ADDR(%esi),%esi          movl    L_ADDR(%esi),%esi
Line 1900  switch_exited:
Line 1934  switch_exited:
         jnz     switch_restored          jnz     switch_restored
 #endif  #endif
   
           /* Switch TSS. Reset "task busy" flag before loading. */
           movl    %cr3,%eax
           movl    %eax,PCB_CR3(%esi) /* XXX should be done by pmap_activate? */
 #ifdef MULTIPROCESSOR  #ifdef MULTIPROCESSOR
         movl    CPUVAR(GDT),%eax          movl    CPUVAR(GDT),%eax
 #else  #else
Line 1908  switch_exited:
Line 1945  switch_exited:
 #endif  #endif
         movl    L_MD_TSS_SEL(%edi),%edx          movl    L_MD_TSS_SEL(%edi),%edx
   
         /* Switch TSS. Reset "task busy" flag before loading. */  
         andl    $~0x0200,4(%eax,%edx, 1)          andl    $~0x0200,4(%eax,%edx, 1)
         ltr     %dx          ltr     %dx
   
Line 1923  switch_restored:
Line 1959  switch_restored:
         movl    PCB_CR0(%esi),%ecx          movl    PCB_CR0(%esi),%ecx
 #ifdef MULTIPROCESSOR  #ifdef MULTIPROCESSOR
         /*          /*
          * If our floating point registers are on a different cpu,           * If our floating point registers are on a different CPU,
          * clear CR0_TS so we'll trap rather than reuse bogus state.           * clear CR0_TS so we'll trap rather than reuse bogus state.
          */           */
         movl    PCB_FPCPU(%esi),%ebx          movl    PCB_FPCPU(%esi),%ebx
Line 1945  switch_restored:
Line 1981  switch_restored:
  */   */
         movl    CPUVAR(CURLWP),%edi          movl    CPUVAR(CURLWP),%edi
         movl    L_PROC(%edi),%esi          movl    L_PROC(%edi),%esi
         cmpl    $0,P_NRAS(%esi)          cmpl    $0,P_RASLIST(%esi)
         je      1f          jne     2f
         movl    L_MD_REGS(%edi),%ebx  
         movl    TF_EIP(%ebx),%eax  
         pushl   %eax  
         pushl   %esi  
         call    _C_LABEL(ras_lookup)  
         addl    $8,%esp  
         cmpl    $-1,%eax  
         je      1f  
         movl    %eax,TF_EIP(%ebx)  
 1:  1:
         movl    $1,%ebx          movl    $1,%ebx
   
Line 1963  switch_return:
Line 1990  switch_return:
 #if defined(MULTIPROCESSOR) || defined(LOCKDEBUG)  #if defined(MULTIPROCESSOR) || defined(LOCKDEBUG)
         call    _C_LABEL(sched_unlock_idle)          call    _C_LABEL(sched_unlock_idle)
 #endif  #endif
           cmpl    $0,CPUVAR(IPENDING)
           jz      3f
         pushl   $IPL_NONE               # spl0()          pushl   $IPL_NONE               # spl0()
         call    _C_LABEL(Xspllower)     # process pending interrupts          call    _C_LABEL(Xspllower)     # process pending interrupts
         addl    $4,%esp          addl    $4,%esp
   3:
         movl    $IPL_HIGH,CPUVAR(ILEVEL)        # splhigh()          movl    $IPL_HIGH,CPUVAR(ILEVEL)        # splhigh()
   
         movl    %ebx,%eax          movl    %ebx,%eax
Line 1975  switch_return:
Line 2005  switch_return:
         popl    %ebx          popl    %ebx
         ret          ret
   
   2:                                      # check RAS list
           movl    L_MD_REGS(%edi),%ebx
           movl    TF_EIP(%ebx),%eax
           pushl   %eax
           pushl   %esi
           call    _C_LABEL(ras_lookup)
           addl    $8,%esp
           cmpl    $-1,%eax
           je      1b
           movl    %eax,TF_EIP(%ebx)
           jmp     1b
   
 /*  /*
  * void cpu_switchto(struct lwp *current, struct lwp *next)   * void cpu_switchto(struct lwp *current, struct lwp *next)
  * Switch to the specified next LWP.   * Switch to the specified next LWP.
Line 2019  ENTRY(cpu_switchto)
Line 2061  ENTRY(cpu_switchto)
         jmp     switch_resume          jmp     switch_resume
   
 /*  /*
  * void switch_exit(struct lwp *l, void (*exit)(struct lwp *));   * void cpu_exit(struct lwp *l)
  * Switch to the appropriate idle context (lwp0's if uniprocessor; the cpu's   * Switch to the appropriate idle context (lwp0's if uniprocessor; the CPU's
  * if multiprocessor) and deallocate the address space and kernel stack for p.   * if multiprocessor) and deallocate the address space and kernel stack for p.
  * Then jump into cpu_switch(), as if we were in the idle proc all along.   * Then jump into cpu_switch(), as if we were in the idle proc all along.
  */   */
Line 2029  ENTRY(cpu_switchto)
Line 2071  ENTRY(cpu_switchto)
 #endif  #endif
         .globl  _C_LABEL(uvmspace_free),_C_LABEL(kernel_map)          .globl  _C_LABEL(uvmspace_free),_C_LABEL(kernel_map)
         .globl  _C_LABEL(uvm_km_free),_C_LABEL(tss_free)          .globl  _C_LABEL(uvm_km_free),_C_LABEL(tss_free)
 /* LINTSTUB: Func: void switch_exit(struct lwp *l, void (*exit)(struct lwp *)) */  /* LINTSTUB: Func: void cpu_exit(struct lwp *l) */
 ENTRY(switch_exit)  ENTRY(cpu_exit)
         movl    4(%esp),%edi            # old process          movl    4(%esp),%edi            # old process
         movl    8(%esp),%eax            # exit func  
 #ifndef MULTIPROCESSOR  #ifndef MULTIPROCESSOR
         movl    $_C_LABEL(lwp0),%ebx          movl    $_C_LABEL(lwp0),%ebx
         movl    L_ADDR(%ebx),%esi          movl    L_ADDR(%ebx),%esi
Line 2051  ENTRY(switch_exit)
Line 2092  ENTRY(switch_exit)
         movl    PCB_ESP(%esi),%esp          movl    PCB_ESP(%esi),%esp
         movl    PCB_EBP(%esi),%ebp          movl    PCB_EBP(%esi),%ebp
   
         /* Save exit func. */          /* Switch TSS. Reset "task busy" flag before loading. */
         pushl   %eax          movl    %cr3,%eax
           movl    %eax,PCB_CR3(%esi)
         /* Load TSS info. */  
 #ifdef MULTIPROCESSOR  #ifdef MULTIPROCESSOR
         movl    CPUVAR(GDT),%eax          movl    CPUVAR(GDT),%eax
 #else  #else
Line 2062  ENTRY(switch_exit)
Line 2102  ENTRY(switch_exit)
         movl    _C_LABEL(gdt),%eax          movl    _C_LABEL(gdt),%eax
 #endif  #endif
   
         /* Switch address space. */  
         movl    PCB_CR3(%esi),%ecx  
         movl    %ecx,%cr3  
   
         /* Switch TSS. */  
         andl    $~0x0200,4-SEL_KPL(%eax,%edx,1)          andl    $~0x0200,4-SEL_KPL(%eax,%edx,1)
         ltr     %dx          ltr     %dx
   
Line 2083  ENTRY(switch_exit)
Line 2118  ENTRY(switch_exit)
         sti          sti
   
         /*          /*
          * Schedule the dead process's vmspace and stack to be freed.           * Schedule the dead LWP's stack to be freed.
          */           */
         movl    0(%esp),%eax            /* %eax = exit func */          pushl   %edi
         movl    %edi,0(%esp)            /* {lwp_}exit2(l) */          call    _C_LABEL(lwp_exit2)
         call    *%eax  
         addl    $4,%esp          addl    $4,%esp
   
         /* Jump into cpu_switch() with the right state. */          /* Jump into cpu_switch() with the right state. */
Line 2131  syscall1:
Line 2165  syscall1:
         INTRENTRY          INTRENTRY
   
 #ifdef DIAGNOSTIC  #ifdef DIAGNOSTIC
           cmpl    $0, CPUVAR(WANT_PMAPLOAD)
           jz      1f
           pushl   $6f
           call    _C_LABEL(printf)
           addl    $4, %esp
   1:
         movl    CPUVAR(ILEVEL),%ebx          movl    CPUVAR(ILEVEL),%ebx
         testl   %ebx,%ebx          testl   %ebx,%ebx
         jz      1f          jz      1f
Line 2148  syscall1:
Line 2188  syscall1:
         pushl   %esp          pushl   %esp
         call    *P_MD_SYSCALL(%edx)     # get pointer to syscall() function          call    *P_MD_SYSCALL(%edx)     # get pointer to syscall() function
         addl    $4,%esp          addl    $4,%esp
 2:      /* Check for ASTs on exit to user mode. */  .Lsyscall_checkast:
           /* Check for ASTs on exit to user mode. */
         cli          cli
         CHECK_ASTPENDING(%eax)          CHECK_ASTPENDING(%eax)
         je      1f          je      1f
Line 2159  syscall1:
Line 2200  syscall1:
         pushl   %esp          pushl   %esp
         call    _C_LABEL(trap)          call    _C_LABEL(trap)
         addl    $4,%esp          addl    $4,%esp
         jmp     2b          jmp     .Lsyscall_checkast      /* re-check ASTs */
   1:      CHECK_DEFERRED_SWITCH(%eax)
           jnz     9f
 #ifndef DIAGNOSTIC  #ifndef DIAGNOSTIC
 1:      INTRFASTEXIT          INTRFASTEXIT
 #else /* DIAGNOSTIC */  #else /* DIAGNOSTIC */
 1:      cmpl    $IPL_NONE,CPUVAR(ILEVEL)          cmpl    $IPL_NONE,CPUVAR(ILEVEL)
         jne     3f          jne     3f
         INTRFASTEXIT          INTRFASTEXIT
 3:      sti  3:      sti
Line 2177  syscall1:
Line 2220  syscall1:
         jmp     2b          jmp     2b
 4:      .asciz  "WARNING: SPL NOT LOWERED ON SYSCALL EXIT\n"  4:      .asciz  "WARNING: SPL NOT LOWERED ON SYSCALL EXIT\n"
 5:      .asciz  "WARNING: SPL NOT ZERO ON SYSCALL ENTRY\n"  5:      .asciz  "WARNING: SPL NOT ZERO ON SYSCALL ENTRY\n"
   6:      .asciz  "WARNING: WANT PMAPLOAD ON SYSCALL ENTRY\n"
 #endif /* DIAGNOSTIC */  #endif /* DIAGNOSTIC */
   9:      sti
           call    _C_LABEL(pmap_load)
           jmp     .Lsyscall_checkast      /* re-check ASTs */
   
 #if NNPX > 0  #if NNPX > 0
 /*  /*

Legend:
Removed from v.1.18  
changed lines
  Added in v.1.29

CVSweb <webmaster@jp.NetBSD.org>