PATCH: memcpy doubles as mempcy, not bcopy
Greg McGary
greg@kayak.mcgary.org
Sun Jun 25 17:18:00 GMT 2000
This was a pretty stupid, but had no impact non-BP code, and still
doesn't...
Here's where the file is included from:
i586/mempcpy.S:#include <sysdeps/i386/i586/memcpy.S>
OK?
2000-06-25 Greg McGary <greg@mcgary.org>
* sysdeps/i386/i586/memcpy.S: redefine memcpy as mempcpy,
not as bcopy.
Index: memcpy.S
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/i386/i586/memcpy.S,v
retrieving revision 1.2
diff -u -p -r1.2 memcpy.S
--- memcpy.S 2000/06/09 06:14:39 1.2
+++ memcpy.S 2000/06/26 00:11:55
@@ -22,16 +22,14 @@
#include "asm-syntax.h"
#include "bp-asm.h"
-/* BEWARE: `#ifdef memset' means that memset is redefined as `bzero' */
-#define BCOPY_P (defined memcpy)
+/* BEWARE: `#ifdef memcpy' means that memcpy is redefined as `mempcpy',
+ and the return value is the byte after the last one copied in
+ the destination. */
+#define MEMPCPY_P (defined memcpy)
#define PARMS LINKAGE+8 /* space for 2 saved regs */
-#if BCOPY_P
-# define DEST PARMS
-#else
-# define RTN PARMS
-# define DEST RTN+RTN_SIZE
-#endif
+#define RTN PARMS
+#define DEST RTN+RTN_SIZE
#define SRC DEST+PTR_SIZE
#define LEN SRC+PTR_SIZE
@@ -99,13 +97,13 @@ L(3): movl 28(%edi), %edx
/* Correct extra loop counter modification. */
L(2): addl $32, %ecx
-#if !BCOPY_P
+#if !MEMPCPY_P
movl DEST(%esp), %eax
#endif
L(1): rep; movsb
-#if BCOPY_P
+#if MEMPCPY_P
movl %edi, %eax
#endif
@@ -113,9 +111,5 @@ L(1): rep; movsb
popl %edi
LEAVE
-#if BCOPY_P
- ret
-#else
RET_PTR
-#endif
END (memcpy)
More information about the Libc-hacker
mailing list