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" |