Use memcpy in memmove when possible

This commit is contained in:
Maxim Kuvyrkov 2012-11-06 17:47:55 -08:00
parent c5f4572124
commit 19218757e6
4 changed files with 36 additions and 1 deletions

View File

@ -1,3 +1,7 @@
2012-11-06 Maxim Kuvyrkov <maxim@codesourcery.com>
* string/memmove.c: Use memcpy when possible.
2012-11-06 Andreas Jaeger <aj@suse.de>
* po/eo.po: Update from translation team.

View File

@ -1,3 +1,7 @@
2012-11-06 Maxim Kuvyrkov <maxim@codesourcery.com>
* sysdeps/mips/memmove.c: New file. Use memcpy for forward memmove.
2012-11-05 Joseph Myers <joseph@codesourcery.com>
* sysdeps/unix/sysv/linux/mips/nptl/lowlevellock.h

View File

@ -0,0 +1,23 @@
/* Copy memory to memory until the specified number of bytes
has been copied. Overlap is handled correctly.
Copyright (C) 2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
/* MIPS' implementation of memcpy is safe to use for memmove. */
#define MEMCPY_OK_FOR_FWD_MEMMOVE 1
#include <string/memmove.c>

View File

@ -1,6 +1,6 @@
/* Copy memory to memory until the specified number of bytes
has been copied. Overlap is handled correctly.
Copyright (C) 1991, 1995, 1996, 1997, 2003 Free Software Foundation, Inc.
Copyright (C) 1991-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Torbjorn Granlund (tege@sics.se).
@ -55,6 +55,9 @@ MEMMOVE (a1, a2, len)
{
/* Copy from the beginning to the end. */
#if MEMCPY_OK_FOR_FWD_MEMMOVE
dest = memcpy (dest, src, len);
#else
/* If there not too few bytes to copy, use word copy. */
if (len >= OP_T_THRES)
{
@ -79,6 +82,7 @@ MEMMOVE (a1, a2, len)
/* There are just a few bytes to copy. Use byte memory operations. */
BYTE_COPY_FWD (dstp, srcp, len);
#endif /* MEMCPY_OK_FOR_FWD_MEMMOVE */
}
else
{