|
From: <sv...@va...> - 2005-05-12 17:58:30
|
Author: sewardj
Date: 2005-05-12 18:58:28 +0100 (Thu, 12 May 2005)
New Revision: 3680
Modified:
trunk/memcheck/mac_replace_strmem.c
Log:
memmove on glibc on amd64 is over-optimised; replace it.
Modified: trunk/memcheck/mac_replace_strmem.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/memcheck/mac_replace_strmem.c 2005-05-12 17:57:14 UTC (rev 3679=
)
+++ trunk/memcheck/mac_replace_strmem.c 2005-05-12 17:58:28 UTC (rev 3680=
)
@@ -362,7 +362,24 @@
return s;
}
=20
+DECL( void *memmove(void *dstV, const void *srcV, SizeT n) )
+{
+ SizeT i;
+ Char* dst =3D (Char*)dstV;
+ Char* src =3D (Char*)srcV;
+ if (dst < src) {
+ for (i =3D 0; i < n; i++)
+ dst[i] =3D src[i];
+ }
+ else=20
+ if (dst > src) {
+ for (i =3D 0; i < n; i++)
+ dst[n-i-1] =3D src[n-i-1];
+ }
+ return dst;
+}
=20
+
/* Find the first occurrence of C in S or the final NUL byte. */
=20
DECL( char* glibc232_strchrnul (const char* s, int c_in) )
|