1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-28 00:21:52 +03:00

Improve performance of mempcpy by inlining and using memcpy. Enable

this for all targets except sparc which has an optimized mempcpy
implementation.
This commit is contained in:
Wilco Dijkstra
2015-08-05 15:58:15 +01:00
parent f29ac72eff
commit 05a910f7b4
3 changed files with 28 additions and 0 deletions

View File

@ -636,6 +636,25 @@ extern char *basename (const char *__filename) __THROW __nonnull ((1));
# endif
#endif
#if defined __USE_GNU && defined __OPTIMIZE__ \
&& defined __extern_always_inline && __GNUC_PREREQ (3,2)
# if !defined _FORCE_INLINES && !defined _HAVE_STRING_ARCH_mempcpy
#undef mempcpy
#undef __mempcpy
#define mempcpy(dest, src, n) __mempcpy_inline (dest, src, n)
#define __mempcpy(dest, src, n) __mempcpy_inline (dest, src, n)
__extern_always_inline void *
__mempcpy_inline (void *__restrict __dest,
const void *__restrict __src, size_t __n)
{
return (char *) memcpy (__dest, __src, __n) + __n;
}
# endif
#endif
__END_DECLS
#endif /* string.h */