Source-Changes-HG archive

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

[src/trunk]: src/lib/libc/arch/i386/string Pull optimised code from memcpy.S



details:   https://anonhg.NetBSD.org/src/rev/5c4469e8fbfc
branches:  trunk
changeset: 573637:5c4469e8fbfc
user:      dsl <dsl%NetBSD.org@localhost>
date:      Thu Feb 03 22:35:11 2005 +0000

description:
Pull optimised code from memcpy.S
Maybe bcopy can be killed one day...

diffstat:

 lib/libc/arch/i386/string/bcopy.S |  103 +------------------------------------
 1 files changed, 3 insertions(+), 100 deletions(-)

diffs (108 lines):

diff -r d46677def561 -r 5c4469e8fbfc lib/libc/arch/i386/string/bcopy.S
--- a/lib/libc/arch/i386/string/bcopy.S Thu Feb 03 22:31:44 2005 +0000
+++ b/lib/libc/arch/i386/string/bcopy.S Thu Feb 03 22:35:11 2005 +0000
@@ -1,101 +1,4 @@
-/*-
- * Copyright (c) 1990 The Regents of the University of California.
- * All rights reserved.
- *
- * This code is derived from locore.s.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-
-#if defined(LIBC_SCCS)
-       RCSID("$NetBSD: bcopy.S,v 1.12 2003/08/07 16:42:08 agc Exp $")
-#endif
-
-       /*
-        * (ov)bcopy (src,dst,cnt)
-        *  ws%tools.de@localhost     (Wolfgang Solfrank, TooLs GmbH) +49-228-985800
-        */
+/*     $NetBSD: bcopy.S,v 1.13 2005/02/03 22:35:11 dsl Exp $   */
 
-#ifdef MEMCOPY
-ENTRY(memcpy)
-#else
-#ifdef MEMMOVE
-ENTRY(memmove)
-#else
-ENTRY(bcopy)
-#endif
-#endif
-       pushl   %esi
-       pushl   %edi
-#if defined(MEMCOPY) || defined(MEMMOVE)
-       movl    12(%esp),%edi
-       movl    16(%esp),%esi
-       movl    %edi,%eax       /* return value */
-#else
-       movl    12(%esp),%esi
-       movl    16(%esp),%edi
-#endif
-       movl    20(%esp),%ecx
-#if defined(MEMCOPY)
-       movl    %ecx,%edx
-#else
-       movl    %edi,%edx
-       subl    %esi,%edx
-       cmpl    %ecx,%edx       /* overlapping? */
-       movl    %ecx,%edx
-       jb      1f
-#endif
-       cld                     /* nope, copy forwards. */
-       shrl    $2,%ecx         /* copy by words */
-       rep
-       movsl
-       movl    %edx,%ecx
-       andl    $3,%ecx         /* any bytes left? */
-       rep
-       movsb
-       popl    %edi
-       popl    %esi
-       ret
-1:
-       addl    %ecx,%edi       /* copy backwards. */
-       addl    %ecx,%esi
-       std
-       andl    $3,%ecx         /* any fractional bytes? */
-       decl    %edi
-       decl    %esi
-       rep
-       movsb
-       movl    %edx,%ecx       /* copy remainder by words */
-       shrl    $2,%ecx
-       subl    $3,%esi
-       subl    $3,%edi
-       rep
-       movsl
-       popl    %edi
-       popl    %esi
-       cld
-       ret
+#define BCOPY
+#include "memcpy.S"



Home | Main Index | Thread Index | Old Index