about summary refs log tree commit diff
path: root/sysdeps/x86_64/multiarch/memmove.c
blob: bbe96273be9821b16f7d2643bcc8b13efda68daf (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#ifndef NOT_IN_libc
#include "init-arch.h"

#define MEMMOVE __memmove_sse2
#ifdef SHARED
# undef libc_hidden_builtin_def
# define libc_hidden_builtin_def(name) \
  __hidden_ver1 (__memmove_sse2, __GI_memmove, __memmove_sse2);
#endif
#endif

#include "string/memmove.c"

#ifndef NOT_IN_libc
extern __typeof (__memmove_sse2) __memmove_sse2 attribute_hidden;
extern __typeof (__memmove_sse2) __memmove_ssse3 attribute_hidden;
extern __typeof (__memmove_sse2) __memmove_ssse3_back attribute_hidden;

libc_ifunc (memmove,
	    HAS_SSSE3
	    ? (HAS_FAST_COPY_BACKWARD
	       ? __memmove_ssse3_back : __memmove_ssse3)
	    : __memmove_sse2);
#endif