summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2015-08-20 09:50:33 -0700
committerH.J. Lu <hjl.tools@gmail.com>2015-08-20 15:22:48 -0700
commit38769bd8c1fcd58ad1aec7ab51c87b4b821689ab (patch)
tree3063fabc2d930c0bb5574c783d02c298af8ee0ea
parent884e3dc2fa14543c475af0e280cff07c8d468c3a (diff)
downloadglibc-38769bd8c1fcd58ad1aec7ab51c87b4b821689ab.tar.gz
Replace MEMPCPY_P/PIC with USE_AS_MEMPCPY/SHARED
Replace MEMPCPY_P with USE_AS_MEMPCPY in i586 memcpy.S to support i386 multi-arch memcpy. Also we should check SHARED not PIC for libc.so since libc.a may be compiled with PIC. * sysdeps/i386/i586/memcpy.S (MEMPCPY_P): Removed. Check USE_AS_MEMPCPY/SHARED instead of MEMPCPY_P/PIC. * sysdeps/i386/i586/mempcpy.S (USE_AS_MEMPCPY): New.
-rw-r--r--sysdeps/i386/i586/memcpy.S11
-rw-r--r--sysdeps/i386/i586/mempcpy.S1
2 files changed, 4 insertions, 8 deletions
diff --git a/sysdeps/i386/i586/memcpy.S b/sysdeps/i386/i586/memcpy.S
index 97973658b6..e0ac6928f1 100644
--- a/sysdeps/i386/i586/memcpy.S
+++ b/sysdeps/i386/i586/memcpy.S
@@ -20,11 +20,6 @@
#include <sysdep.h>
#include "asm-syntax.h"
-/* 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 4+8 /* space for 2 saved regs */
#define RTN PARMS
#define DEST RTN
@@ -105,13 +100,13 @@ L(3): movl 28(%edi), %edx
/* Correct extra loop counter modification. */
L(2): addl $32, %ecx
-#if !MEMPCPY_P
+#ifndef USE_AS_MEMPCPY
movl DEST(%esp), %eax
#endif
L(1): rep; movsb
-#if MEMPCPY_P
+#ifdef USE_AS_MEMPCPY
movl %edi, %eax
#endif
@@ -124,6 +119,6 @@ L(1): rep; movsb
ret
END (memcpy)
-#if !MEMPCPY_P
+#ifndef USE_AS_MEMPCPY
libc_hidden_builtin_def (memcpy)
#endif
diff --git a/sysdeps/i386/i586/mempcpy.S b/sysdeps/i386/i586/mempcpy.S
index afc112d9d7..720a4c0923 100644
--- a/sysdeps/i386/i586/mempcpy.S
+++ b/sysdeps/i386/i586/mempcpy.S
@@ -1,3 +1,4 @@
+#define USE_AS_MEMPCPY
#define memcpy __mempcpy
#define __memcpy_chk __mempcpy_chk
#include <sysdeps/i386/i586/memcpy.S>