a byte loop. Overall performance on bench-memccpy is > 2x faster when
using the C implementation of memchr and an optimized memcpy.
+2015-08-05 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * string/memccpy.c (memccpy):
+ Improve performance by using memchr/memcpy/__mempcpy.
+
2015-08-05 Wilco Dijkstra <wdijkstr@arm.com>
* string/strncpy.c (strncpy):
void *
__memccpy (void *dest, const void *src, int c, size_t n)
{
- const char *s = src;
- char *d = dest;
- const char x = c;
- size_t i = n;
+ void *p = memchr (src, c, n);
- while (i-- > 0)
- if ((*d++ = *s++) == x)
- return d;
+ if (p != NULL)
+ return __mempcpy (dest, src, p - src + 1);
+ memcpy (dest, src, n);
return NULL;
}