Source-Changes-HG archive

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

[src/netbsd-1-4]: src/sys/arch/vax/vax pullup 1.37->1.38 (ragge): fix critica...



details:   https://anonhg.NetBSD.org/src/rev/36ef44914bc8
branches:  netbsd-1-4
changeset: 469202:36ef44914bc8
user:      perry <perry%NetBSD.org@localhost>
date:      Mon Jul 12 19:23:06 1999 +0000

description:
pullup 1.37->1.38 (ragge): fix critical paging/swapping problems

diffstat:

 sys/arch/vax/vax/intvec.s |  51 ++++++++++------------------------------------
 1 files changed, 11 insertions(+), 40 deletions(-)

diffs (70 lines):

diff -r a8c94ec1efb9 -r 36ef44914bc8 sys/arch/vax/vax/intvec.s
--- a/sys/arch/vax/vax/intvec.s Mon Jul 12 19:21:44 1999 +0000
+++ b/sys/arch/vax/vax/intvec.s Mon Jul 12 19:23:06 1999 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: intvec.s,v 1.37 1999/02/02 18:37:20 ragge Exp $   */
+/*     $NetBSD: intvec.s,v 1.37.2.1 1999/07/12 19:23:06 perry Exp $   */
 
 /*
  * Copyright (c) 1994, 1997 Ludd, University of Lule}, Sweden.
@@ -208,50 +208,21 @@
  * Therefore it is done a fast revalidation of the page if it is
  * referenced. Trouble here is the hardware bug on KA650 CPUs that
  * put in a need for an extra check when the fault is gotten during
- * PTE reference.
+ * PTE reference. Handled in pmap.c.
  */
                .align  2
 transl_v: .globl transl_v      # Translation violation, 20
-#ifdef DEBUG
-       bbc     $0,(sp),1f      # pte len illegal in trans fault
-       pushab  2f
-       calls   $1,_panic
-2:     .asciz  "pte trans"
-#endif
-1:     pushr   $3              # save r0 & r1
-       movl    12(sp),r0       # Save faulted address in r0
-       blss    2f              # Jump if in kernelspace
-
-       ashl    $1,r0,r0
-       blss    3f              # Jump if P1
-       mfpr    $PR_P0BR,r1
-       brb     4f
-3:     mfpr    $PR_P1BR,r1
-
-4:     bbc     $1,8(sp),5f     # Jump if not indirect
-       extzv   $10,$21,r0,r0   # extract pte number
-       moval   (r1)[r0],r0     # get address of pte
-#if defined(VAX650) || defined(DEBUG)
-       extzv   $10,$20,r0,r1
-       movl    _Sysmap,r0
-       movaq   (r0)[r1],r0
-       tstl    (r0)            # If pte clear, found HW bug.
-       bneq    6f
-       popr    $3
-       brb     access_v
-#endif
-2:     extzv   $10,$20,r0,r1   # get pte index
-       movl    _Sysmap,r0
-       movaq   (r0)[r1],r0     # pte address
-6:     bisl2   $0x80000000,(r0)+ # set valid bit
-       bisl2   $0x80000000,(r0)
-       popr    $3
+       pushr   $0x3f
+       pushl   28(sp)
+       pushl   28(sp)
+       calls   $2,_pmap_simulref
+       tstl    r0
+       bneq    1f
+       popr    $0x3f
        addl2   $8,sp
        rei
-
-5:     extzv   $11,$20,r0,r0
-       movaq   (r1)[r0],r0
-       brb     6b
+1:     popr    $0x3f
+       brb     access_v
 
                .align  2
 access_v:.globl access_v       # Access cntrl viol fault,      24



Home | Main Index | Thread Index | Old Index