Merge commit '16922b7ebc6115e13bebed4880c6a09765410fc7' * commit '16922b7ebc6115e13bebed4880c6a09765410fc7': libc: memmove(): non-overlapping block optim.
This commit is contained in:
commit
8300a7aef9
@ -31,7 +31,11 @@ void *memmove(void *dst, const void *src, size_t n)
|
||||
{
|
||||
const char *p = src;
|
||||
char *q = dst;
|
||||
if (__builtin_expect(q < p, 1)) {
|
||||
|
||||
/* we can use highgly-optimized memcpy() if the destination
|
||||
* is before the source, or if the two blocks are non-overlapping
|
||||
*/
|
||||
if (__builtin_expect((q < p || (q-p) <= (ptrdiff_t)n), 1)) {
|
||||
return memcpy(dst, src, n);
|
||||
} else {
|
||||
#define PRELOAD_DISTANCE 64
|
||||
|
Loading…
Reference in New Issue
Block a user