View | Details | Raw Unified | Return to bug 12518 | Differences between
and this patch

Collapse All | Expand All

(-)a/string/Versions (+3 lines)
Lines 80-83 libc { Link Here
80
  GLIBC_2.6 {
80
  GLIBC_2.6 {
81
    strerror_l;
81
    strerror_l;
82
  }
82
  }
83
  GLIBC_2.13 {
84
    memcpy;
85
  }
83
}
86
}
(-)a/sysdeps/x86_64/multiarch/memcpy.S (-3 / +6 lines)
Lines 19-24 Link Here
19
   02111-1307 USA.  */
19
   02111-1307 USA.  */
20
20
21
#include <sysdep.h>
21
#include <sysdep.h>
22
#include <shlib-compat.h>
22
#include <init-arch.h>
23
#include <init-arch.h>
23
24
24
/* Define multiple versions only for the definition in lib and for
25
/* Define multiple versions only for the definition in lib and for
Lines 26-33 Link Here
26
   happened.  */
27
   happened.  */
27
#if defined SHARED && !defined NOT_IN_libc
28
#if defined SHARED && !defined NOT_IN_libc
28
	.text
29
	.text
29
ENTRY(memcpy)
30
ENTRY(__new_memcpy)
30
	.type	memcpy, @gnu_indirect_function
31
	.type	__new_memcpy, @gnu_indirect_function
31
	cmpl	$0, KIND_OFFSET+__cpu_features(%rip)
32
	cmpl	$0, KIND_OFFSET+__cpu_features(%rip)
32
	jne	1f
33
	jne	1f
33
	call	__init_cpu_features
34
	call	__init_cpu_features
Lines 39-45 ENTRY(memcpy) Link Here
39
	jz	2f
40
	jz	2f
40
	leaq	__memcpy_ssse3_back(%rip), %rax
41
	leaq	__memcpy_ssse3_back(%rip), %rax
41
2:	ret
42
2:	ret
42
END(memcpy)
43
END(__new_memcpy)
43
44
44
# undef ENTRY
45
# undef ENTRY
45
# define ENTRY(name) \
46
# define ENTRY(name) \
Lines 68-73 END(memcpy) Link Here
68
   by the indirect call in the PLT.  */
69
   by the indirect call in the PLT.  */
69
# define libc_hidden_builtin_def(name) \
70
# define libc_hidden_builtin_def(name) \
70
	.globl __GI_memcpy; __GI_memcpy = __memcpy_sse2
71
	.globl __GI_memcpy; __GI_memcpy = __memcpy_sse2
72
73
versioned_symbol (libc, __new_memcpy, memcpy, GLIBC_2_13);
71
#endif
74
#endif
72
75
73
#include "../memcpy.S"
76
#include "../memcpy.S"
(-)a/sysdeps/x86_64/multiarch/memmove.c (+5 lines)
Lines 20-25 Link Here
20
#include <string.h>
20
#include <string.h>
21
21
22
#ifndef NOT_IN_libc
22
#ifndef NOT_IN_libc
23
#include <shlib-compat.h>
23
#include "init-arch.h"
24
#include "init-arch.h"
24
25
25
#define MEMMOVE __memmove_sse2
26
#define MEMMOVE __memmove_sse2
Lines 42-45 libc_ifunc (memmove, Link Here
42
	    ? (HAS_FAST_COPY_BACKWARD
43
	    ? (HAS_FAST_COPY_BACKWARD
43
	       ? __memmove_ssse3_back : __memmove_ssse3)
44
	       ? __memmove_ssse3_back : __memmove_ssse3)
44
	    : __memmove_sse2);
45
	    : __memmove_sse2);
46
47
#if SHLIB_COMPAT (libc, GLIBC_2_2_5, GLIBC_2_13)
48
compat_symbol (libc, memmove, memcpy, GLIBC_2_2_5);
49
#endif
45
#endif
50
#endif

Return to bug 12518