svn commit: r333240 - in head/sys: powerpc/powerpc sys
Mateusz Guzik
mjg at FreeBSD.org
Fri May 4 04:00:49 UTC 2018
Author: mjg
Date: Fri May 4 04:00:48 2018
New Revision: 333240
URL: https://svnweb.freebsd.org/changeset/base/333240
Log:
Allow __builtin_memmove instead of bcopy for small buffers of known size
See r323329 for an explanation why this is a good idea.
Modified:
head/sys/powerpc/powerpc/bcopy.c
head/sys/sys/systm.h
Modified: head/sys/powerpc/powerpc/bcopy.c
==============================================================================
--- head/sys/powerpc/powerpc/bcopy.c Fri May 4 03:44:12 2018 (r333239)
+++ head/sys/powerpc/powerpc/bcopy.c Fri May 4 04:00:48 2018 (r333240)
@@ -143,7 +143,7 @@ done:
}
void
-bcopy(const void *src0, void *dst0, size_t length)
+(bcopy)(const void *src0, void *dst0, size_t length)
{
memcpy(dst0, src0, length);
Modified: head/sys/sys/systm.h
==============================================================================
--- head/sys/sys/systm.h Fri May 4 03:44:12 2018 (r333239)
+++ head/sys/sys/systm.h Fri May 4 04:00:48 2018 (r333240)
@@ -259,6 +259,12 @@ void hexdump(const void *ptr, int length, const char *
#define ovbcopy(f, t, l) bcopy((f), (t), (l))
void bcopy(const void * _Nonnull from, void * _Nonnull to, size_t len);
+#define bcopy(from, to, len) ({ \
+ if (__builtin_constant_p(len) && (len) <= 64) \
+ __builtin_memmove((to), (from), (len)); \
+ else \
+ bcopy((from), (to), (len)); \
+})
void bzero(void * _Nonnull buf, size_t len);
#define bzero(buf, len) ({ \
if (__builtin_constant_p(len) && (len) <= 64) \
More information about the svn-src-all
mailing list