mac68k copypage/zeropage changes.
authordownsj <downsj@openbsd.org>
Mon, 10 Feb 1997 12:01:45 +0000 (12:01 +0000)
committerdownsj <downsj@openbsd.org>
Mon, 10 Feb 1997 12:01:45 +0000 (12:01 +0000)
sys/arch/mac68k/mac68k/locore.s
sys/arch/mac68k/mac68k/mem.c
sys/arch/mac68k/mac68k/pmap.c

index 94b2b1b..ac74bed 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: locore.s,v 1.16 1997/01/24 01:35:47 briggs Exp $      */
+/*     $OpenBSD: locore.s,v 1.17 1997/02/10 12:01:45 downsj Exp $      */
 /*     $NetBSD: locore.s,v 1.73 1997/01/09 07:28:12 scottr Exp $       */
 
 /*
@@ -1114,38 +1114,6 @@ _esigcode:
 
 #include <m68k/asm.h>
 
-/*
- * copypage(fromaddr, toaddr)
- *
- * Optimized version of bcopy for a single page-aligned NBPG byte copy.
- */
-ENTRY(copypage)
-       movl    sp@(4),a0               | source address
-       movl    sp@(8),a1               | destination address
-       movl    #NBPG/32,d0             | number of 32 byte chunks
-#if defined(M68040)
-       cmpl    #MMU_68040,_mmutype     | 68040?
-       jne     Lmlloop                 | no, use movl
-Lm16loop:
-       .long   0xf6209000              | move16 a0@+,a1@+
-       .long   0xf6209000              | move16 a0@+,a1@+
-       subql   #1,d0
-       jne     Lm16loop
-       rts
-#endif
-Lmlloop:
-       movl    a0@+,a1@+
-       movl    a0@+,a1@+
-       movl    a0@+,a1@+
-       movl    a0@+,a1@+
-       movl    a0@+,a1@+
-       movl    a0@+,a1@+
-       movl    a0@+,a1@+
-       movl    a0@+,a1@+
-       subql   #1,d0
-       jne     Lmlloop
-       rts
-
 /*
  * non-local gotos
  */
index 34e02c5..f9dd416 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: mem.c,v 1.3 1996/06/08 16:21:16 briggs Exp $  */
+/*     $OpenBSD: mem.c,v 1.4 1997/02/10 12:01:47 downsj Exp $  */
 /*     $NetBSD: mem.c,v 1.11 1996/05/05 06:18:41 briggs Exp $  */
 
 /*
@@ -57,7 +57,7 @@
 
 #include <vm/vm.h>
 
-caddr_t zeropage;
+static caddr_t devzeropage;
 
 #define mmread mmrw
 #define mmwrite        mmrw
@@ -155,13 +155,13 @@ mmrw(dev, uio, flags)
                                c = iov->iov_len;
                                break;
                        }
-                       if (zeropage == NULL) {
-                               zeropage = (caddr_t)
+                       if (devzeropage == NULL) {
+                               devzeropage = (caddr_t)
                                    malloc(CLBYTES, M_TEMP, M_WAITOK);
-                               bzero(zeropage, CLBYTES);
+                               bzero(devzeropage, CLBYTES);
                        }
                        c = min(iov->iov_len, CLBYTES);
-                       error = uiomove(zeropage, c, uio);
+                       error = uiomove(devzeropage, c, uio);
                        continue;
 
                default:
index 20001f2..d925b92 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: pmap.c,v 1.7 1997/01/24 01:35:51 briggs Exp $ */
+/*     $OpenBSD: pmap.c,v 1.8 1997/02/10 12:01:49 downsj Exp $ */
 /*     $NetBSD: pmap.c,v 1.28 1996/10/21 05:42:27 scottr Exp $ */
 
 /* 
@@ -1460,7 +1460,7 @@ pmap_zero_page(phys)
 #endif
        kva = (vm_offset_t) CADDR1;
        pmap_enter(pmap_kernel(), kva, phys, VM_PROT_READ|VM_PROT_WRITE, TRUE);
-       bzero((caddr_t)kva, NBPG);
+       zeropage((caddr_t)kva);
        pmap_remove_mapping(pmap_kernel(), kva, PT_ENTRY_NULL,
                            PRM_TFLUSH|PRM_CFLUSH);
 }
@@ -1489,7 +1489,7 @@ void copypage __P((caddr_t, caddr_t));
        pmap_enter(pmap_kernel(), dkva, dst, VM_PROT_READ|VM_PROT_WRITE, TRUE);
        copypage((caddr_t)skva, (caddr_t)dkva);
        /* CADDR1 and CADDR2 are virtually contiguous */
-       pmap_remove(pmap_kernel(), skva, skva+2*NBPG);
+       pmap_remove(pmap_kernel(), skva, skva + (2 * NBPG));
 }