[2/3] Replace MEMPCPY_P/PIC with USE_AS_MEMPCPY/SHARED

Message ID 20150826134358.GB19484@gmail.com
State Committed
Headers

Commit Message

H.J. Lu Aug. 26, 2015, 1:43 p.m. UTC
  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.

OK for master?

H.J.
---
	* 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.
---
 sysdeps/i386/i586/memcpy.S  | 11 +++--------
 sysdeps/i386/i586/mempcpy.S |  1 +
 2 files changed, 4 insertions(+), 8 deletions(-)
  

Comments

Ondrej Bilka Aug. 26, 2015, 1:52 p.m. UTC | #1
On Wed, Aug 26, 2015 at 06:43:58AM -0700, H.J. Lu wrote:
> 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.
> 
> OK for master?
> 
looks ok.
  

Patch

diff --git a/sysdeps/i386/i586/memcpy.S b/sysdeps/i386/i586/memcpy.S
index 9797365..e0ac692 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 afc112d..720a4c0 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>