freebsd-skq/lib/libc
mjg 09cca5134d amd64: reimplement libc memcmp and bcmp with kernel memcmp
Both are significantly slower than hand-coded loops. See r338963 for
kernel commit.

bcmp differs from memcmp by always returning 1 when a difference is
found, as opposed to going for a value bigger or lower than 0
depending on what it is. This means it can do less work. For now the
code is duplicated and modified. This will get deduplicated after
another round of optimization when memcmp will get a longer-term form.

Both tested with the glibc suite. While the suite does not have a test
for bcmp, I created a wrapper routine which verified that values match
(0 vs 0, 1 vs non-zero).

Reviewed by:	kib
Approved by:	re (gjb)
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D17336
2018-09-27 17:08:29 +00:00
..
aarch64 Don't export _end on arm64 and riscv. 2018-06-01 23:42:10 +00:00
amd64 amd64: reimplement libc memcmp and bcmp with kernel memcmp 2018-09-27 17:08:29 +00:00
arm Revert r336773: it removed too much. 2018-07-27 21:25:01 +00:00
capability Replace dot-dot relative pathing with SRCTOP-relative paths where possible 2017-01-20 03:23:24 +00:00
compat-43 General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
db Remove "All rights reserved" from my files. 2018-05-10 06:41:08 +00:00
gdtoa libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
gen In r331279 the code used ENOSYS to check the existence of getrandom(2). 2018-08-20 02:17:55 +00:00
gmon General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
i386 amd64: depessimize userspace memcpy/memmove/bcopy 2018-09-17 15:49:35 +00:00
iconv libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
include Update userland arc4random() with OpenBSD's Chacha20 based arc4random(). 2018-08-19 17:40:50 +00:00
inet libc: fix cases of undefined behavior. 2018-08-07 15:24:19 +00:00
isc SPDX: more ISC-related files. 2017-12-08 17:52:53 +00:00
locale Don't put multiple names on a single .Nm line. This fixes apropos(1) 2018-04-17 09:05:46 +00:00
md Replace dot-dot relative pathing with SRCTOP-relative paths where possible 2017-01-20 03:23:24 +00:00
mips Reimplement brk() and sbrk() to avoid the use of _end. 2018-06-04 19:35:15 +00:00
nameser SPDX: license IDs for some ISC-related files. 2017-12-08 15:57:29 +00:00
net Move hosts, hosts.equiv, networks, nsswitch.conf, protocols to lib/libc/net/ 2018-09-17 18:56:47 +00:00
nls Use current locale (f.e. set by thread). It was global locale always 2016-08-24 16:44:27 +00:00
posix1e Move mac.conf to lib/libc/posix1e/ 2018-09-18 01:40:37 +00:00
powerpc Reimplement brk() and sbrk() to avoid the use of _end. 2018-06-04 19:35:15 +00:00
powerpc64 Reimplement brk() and sbrk() to avoid the use of _end. 2018-06-04 19:35:15 +00:00
powerpcspe Fix fabs(3) for powerpcspe, this time for real 2018-07-26 14:42:20 +00:00
quad General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
regex regex/engine.c: error: variable 'dp' set but not used 2018-07-14 09:29:45 +00:00
resolv Allow the use of TCP instead of UDP for queries by setting options usevc 2018-08-16 13:18:40 +00:00
riscv Fix setjmp for RISC-V: 2018-07-23 09:54:28 +00:00
rpc Fix CONFS to append the value in this case. 2018-09-18 01:38:44 +00:00
secure Carefully update stack guard bytes inside __guard_setup(). 2018-04-24 15:59:39 +00:00
softfloat Add implementations for clog(3), clogf(3), and clog(3). 2018-05-13 09:54:34 +00:00
sparc64 Reimplement brk() and sbrk() to avoid the use of _end. 2018-06-04 19:35:15 +00:00
stdio Implement printf(3) family %m format string extension. 2018-05-22 11:05:40 +00:00
stdlib Provide set_constraint_handler_s(3) man page. 2018-08-19 14:39:57 +00:00
stdtime libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
string Provide set_constraint_handler_s(3) man page. 2018-08-19 14:39:57 +00:00
sys Add SOL_SOCKET level socket option with name SO_DOMAIN to get 2018-08-21 14:04:30 +00:00
tests Rework check for libclang_rt to see if the needed library exists. 2018-06-27 16:56:46 +00:00
uuid libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
x86/sys Fix a regression in r321608. 2017-08-13 14:42:23 +00:00
xdr General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
yp libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
libc_nossp.ldscript Add different libc ldscript: the one without libssp -- 2016-10-12 13:19:21 +00:00
libc.ldscript
Makefile Move libc linker ifunc test to build target only 2018-09-24 13:42:46 +00:00
Makefile.depend DIRDEPS_BUILD: Regenerate without local dependencies. 2016-02-24 17:20:11 +00:00
Versions.def Create namespace for the symbols added during 12-CURRENT cycle. 2016-08-06 13:28:58 +00:00