Go to the documentation of this file. 1 #ifndef _ASM_X86_STRING_64_H
2 #define _ASM_X86_STRING_64_H
12 asm volatile(
"rep ; movsl\n\t"
16 "1:\ttestb $1,%b4\n\t"
20 :
"=&c" (
d0),
"=&D" (d1),
"=&S" (
d2)
21 :
"0" (n / 4),
"q" (
n),
"1" ((
long)to),
"2" ((
long)
from)
29 #define __HAVE_ARCH_MEMCPY 1
30 #ifndef CONFIG_KMEMCHECK
31 #if (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) || __GNUC__ > 4
32 extern void *
memcpy(
void *to,
const void *from,
size_t len);
34 extern void *
__memcpy(
void *to,
const void *from,
size_t len);
35 #define memcpy(dst, src, len) \
37 size_t __len = (len); \
39 if (__builtin_constant_p(len) && __len >= 64) \
40 __ret = __memcpy((dst), (src), __len); \
42 __ret = __builtin_memcpy((dst), (src), __len); \
51 #define memcpy(dst, src, len) __inline_memcpy((dst), (src), (len))
54 #define __HAVE_ARCH_MEMSET
55 void *
memset(
void *
s,
int c,
size_t n);
57 #define __HAVE_ARCH_MEMMOVE