aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/i386/i586
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/i386/i586')
-rw-r--r--sysdeps/i386/i586/memcpy.S22
1 files changed, 8 insertions, 14 deletions
diff --git a/sysdeps/i386/i586/memcpy.S b/sysdeps/i386/i586/memcpy.S
index 82d5e79564..ed35b48ff6 100644
--- a/sysdeps/i386/i586/memcpy.S
+++ b/sysdeps/i386/i586/memcpy.S
@@ -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)