From: Julian Seward Date: Thu, 12 May 2005 17:58:28 +0000 (+0000) Subject: memmove on glibc on amd64 is over-optimised; replace it. X-Git-Tag: svn/VALGRIND_3_0_0~638 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=775ebbdd34846139af67b06256f3a12ef7c2fba6;p=thirdparty%2Fvalgrind.git memmove on glibc on amd64 is over-optimised; replace it. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3680 --- diff --git a/memcheck/mac_replace_strmem.c b/memcheck/mac_replace_strmem.c index d8b37d5899..2b7c4c6628 100644 --- a/memcheck/mac_replace_strmem.c +++ b/memcheck/mac_replace_strmem.c @@ -362,6 +362,23 @@ DECL( void *memset(void *s, Int c, SizeT n) ) return s; } +DECL( void *memmove(void *dstV, const void *srcV, SizeT n) ) +{ + SizeT i; + Char* dst = (Char*)dstV; + Char* src = (Char*)srcV; + if (dst < src) { + for (i = 0; i < n; i++) + dst[i] = src[i]; + } + else + if (dst > src) { + for (i = 0; i < n; i++) + dst[n-i-1] = src[n-i-1]; + } + return dst; +} + /* Find the first occurrence of C in S or the final NUL byte. */