This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Patent on aligned memcpy
- To: Geoff Keating <geoffk at ozemail dot com dot au>
- Subject: Re: Patent on aligned memcpy
- From: joel at OARcorp dot com
- Date: Thu, 20 Aug 1998 12:53:00 -0500 (CDT)
- cc: mrs at wrs dot com, egcs at cygnus dot com
I am sure there are other examples of this as well. A quick search on
source I have turned up:
newlib:
libc/machine/hppa/memcpy.S (Copyright 1986)
netbsd:
arch/arm32/arm32/bcopyinout.S (Copyright 1990)
arch/powerpc/powerpc/bcopy.c (Copyright 1990)
lib/libkern/arch/i386/bcopy.S (Copyright 1990)
lib/libkern/arch/m68k/bcopy.S (Copyright 1990)
4.4BSD-Lite:
usr/src/lib/libc/luna68k/string/bcopy.s (Copyright 1990)
usr/src/lib/libc/mips/string/bcopy.s (Copyright 1991)
I am sure that if I dug into older source files, I could find older
exmples. I remember that early versions of the Intel GNU/960 toolset has
a memcpy which could do things in 16-byte chunks where possible.
--joel
On Thu, 20 Aug 1998, Geoff Keating wrote:
> >From sysdeps/generic/memcopy.h in the glibc distribution:
>
> /* memcopy.h -- definitions for memory copy functions. Generic C version.
> Copyright (C) 1991, 1992, 1993, 1997 Free Software Foundation, Inc.
> Contributed by Torbjorn Granlund (tege@sics.se).
> ...
> /* The strategy of the memory functions is:
>
> 1. Copy bytes until the destination pointer is aligned.
>
> 2. Copy words in unrolled loops. If the source and destination
> are not aligned in the same way, use word memory operations,
> but shift and merge two read words before writing.
>
> 3. Copy the few remaining bytes.
>
>
> So, if anyone wants to contest it...
>
> --
> Geoffrey Keating <geoffk@ozemail.com.au>
>