diff options
author | Mateusz Guzik <mjg@FreeBSD.org> | 2018-09-27 14:05:44 +0000 |
---|---|---|
committer | Mateusz Guzik <mjg@FreeBSD.org> | 2018-09-27 14:05:44 +0000 |
commit | a8e3f99ec190ee5c11413878b7fd75578e542808 (patch) | |
tree | c37badec5597cf34b5a360a8b5b658e8e064d237 /sys/conf/files.riscv | |
parent | e3f284eee7af7bcebf4bc96f64a9bc9e8e9d692b (diff) | |
download | src-a8e3f99ec190ee5c11413878b7fd75578e542808.tar.gz src-a8e3f99ec190ee5c11413878b7fd75578e542808.zip |
amd64: implement memcmp in assembly
Both the in-kernel C variant and libc asm variant have very poor performance.
The former compiles to a single byte comparison loop, which breaks down even
for small sizes. The latter uses rep cmpsq/b which turn out to have very poor
throughput and are slower than a hand-coded 32-byte comparison loop.
Depending on size this is about 3-4 times faster than the current routines.
Reviewed by: kib
Approved by: re (gjb)
Differential Revision: https://reviews.freebsd.org/D17328
Notes
Notes:
svn path=/head/; revision=338963
Diffstat (limited to 'sys/conf/files.riscv')
-rw-r--r-- | sys/conf/files.riscv | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/conf/files.riscv b/sys/conf/files.riscv index daba1826331b..8a70023eb91a 100644 --- a/sys/conf/files.riscv +++ b/sys/conf/files.riscv @@ -22,6 +22,7 @@ libkern/ffsll.c standard libkern/fls.c standard libkern/flsl.c standard libkern/flsll.c standard +libkern/memcmp.c standard libkern/memset.c standard riscv/riscv/autoconf.c standard riscv/riscv/bus_machdep.c standard |