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 Back out pushl/popl -> movl change. copy_...



details:   https://anonhg.NetBSD.org/src/rev/181d63f90dde
branches:  trunk
changeset: 537653:181d63f90dde
user:      junyoung <junyoung%NetBSD.org@localhost>
date:      Fri Oct 04 06:43:40 2002 +0000

description:
Back out pushl/popl -> movl change. copy_fault is also used by kcopy(9).

diffstat:

 sys/arch/i386/i386/locore.s |  37 ++++++++++++++++++++-----------------
 1 files changed, 20 insertions(+), 17 deletions(-)

diffs (103 lines):

diff -r 098cafcff4f0 -r 181d63f90dde sys/arch/i386/i386/locore.s
--- a/sys/arch/i386/i386/locore.s       Fri Oct 04 06:02:38 2002 +0000
+++ b/sys/arch/i386/i386/locore.s       Fri Oct 04 06:43:40 2002 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: locore.s,v 1.263 2002/10/04 04:40:12 junyoung Exp $    */
+/*     $NetBSD: locore.s,v 1.264 2002/10/04 06:43:40 junyoung Exp $    */
 
 /*-
  * Copyright (c) 1998, 2000 The NetBSD Foundation, Inc.
@@ -980,10 +980,11 @@
 ENTRY(i386_copyout)
        pushl   %esi
        pushl   %edi
+       pushl   $0
        
-       movl    12(%esp),%esi
-       movl    16(%esp),%edi
-       movl    20(%esp),%eax
+       movl    16(%esp),%esi
+       movl    20(%esp),%edi
+       movl    24(%esp),%eax
 
        /*
         * We check that the end of the destination buffer is not past the end
@@ -1057,10 +1058,10 @@
        rep
        movsb
 
-       xorl    %eax,%eax
+       popl    PCB_ONFAULT(%edx)
        popl    %edi
        popl    %esi
-       movl    %eax,PCB_ONFAULT(%edx)
+       xorl    %eax,%eax
        ret
 #endif /* I386_CPU */
 
@@ -1069,10 +1070,11 @@
 ENTRY(i486_copyout)
        pushl   %esi
        pushl   %edi
+       pushl   $0
        
-       movl    12(%esp),%esi
-       movl    16(%esp),%edi
-       movl    20(%esp),%eax
+       movl    16(%esp),%esi
+       movl    20(%esp),%edi
+       movl    24(%esp),%eax
 
        /*
         * We check that the end of the destination buffer is not past the end
@@ -1098,10 +1100,10 @@
        rep
        movsb
 
-       xorl    %eax,%eax
+       popl    PCB_ONFAULT(%edx)
        popl    %edi
        popl    %esi
-       movl    %eax,PCB_ONFAULT(%edx)
+       xorl    %eax,%eax
        ret
 #endif /* I486_CPU || I586_CPU || I686_CPU */
 
@@ -1121,11 +1123,12 @@
        pushl   %esi
        pushl   %edi
        GET_CURPCB(%eax)
+       pushl   $0
        movl    $_C_LABEL(copy_fault),PCB_ONFAULT(%eax)
        
-       movl    12(%esp),%esi
-       movl    16(%esp),%edi
-       movl    20(%esp),%eax
+       movl    16(%esp),%esi
+       movl    20(%esp),%edi
+       movl    24(%esp),%eax
 
        /*
         * We check that the end of the destination buffer is not past the end
@@ -1150,10 +1153,10 @@
        movsb
 
        GET_CURPCB(%edx)
-       xorl    %eax,%eax
+       popl    PCB_ONFAULT(%edx)
        popl    %edi
        popl    %esi
-       movl    %eax,PCB_ONFAULT(%edx)
+       xorl    %eax,%eax
        ret
 #endif /* I386_CPU || I486_CPU || I586_CPU || I686_CPU */
 
@@ -1164,7 +1167,7 @@
 /* LINTSTUB: Ignore */
 NENTRY(copy_fault)
        GET_CURPCB(%edx)
-       movl    $0,PCB_ONFAULT(%edx)
+       popl    PCB_ONFAULT(%edx)
        popl    %edi
        popl    %esi
        ret



Home | Main Index | Thread Index | Old Index