freebsd-dev/lib/libc
Robert Clausecker 8803f01e93 lib/libc/amd64/string/memcmp.S: add baseline implementation
This changeset adds a baseline implementation of memcmp and bcmp
for amd64. The same code is used for both functions with conditional
code were the behaviour differs (we need more precise output for the
memcmp case).

FreeBSD documents that memcmp returns the difference between the
mismatching characters. Slightly faster code would be possible could
we relax this requirement to the ISO/IEC 9899:1999 requirement of
merely returning a negative/positive integer or zero.

Performance is better than bionic and glibc, except for long strings
were the two are 13% faster. This could be because they use SSE4
ptest which we cannot use in a baseline kernel.

Sponsored by:	The FreeBSD Foundation
Approved by:	mjg
Differential Revision:	https://reviews.freebsd.org/D41442
2023-08-21 21:19:46 +02:00
..
aarch64 Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
amd64 lib/libc/amd64/string/memcmp.S: add baseline implementation 2023-08-21 21:19:46 +02:00
arm Restore blank line after #include 2023-08-17 11:32:32 -07:00
capability Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
compat-43 Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
csu Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:42 -06:00
db Remove $FreeBSD$: one-line ps tag 2023-08-16 11:55:39 -06:00
gdtoa Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
gen libc/gen/_pthread_stubs.c: Remove stray whitespaces 2023-08-21 01:44:18 +03:00
gmon Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
i386 Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
iconv Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
include libc: export pthread_getname_np stub 2023-08-21 01:44:17 +03:00
inet Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
isc Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
locale Remove $FreeBSD$: one-line bare tag 2023-08-16 11:55:20 -06:00
md Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
nameser Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
net Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
nls Remove $FreeBSD$: one-line catalog 2023-08-16 11:55:26 -06:00
posix1e Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
powerpc Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
powerpc64 Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
powerpcspe Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
quad Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
regex Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
resolv Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
riscv Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
rpc Remove $FreeBSD$: one-line bare tag 2023-08-16 11:55:20 -06:00
secure Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
softfloat Remove $FreeBSD$: one-line bare tag 2023-08-16 11:55:20 -06:00
stdio Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
stdlib libc: regoranize malloc build 2023-08-16 19:16:51 +01:00
stdtime Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
string Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
sys Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
tests Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
uuid Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
x86 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
xdr Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
yp Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
libc_nossp.ldscript Remove $FreeBSD$: one-line .c comment pattern 2023-08-16 11:54:29 -06:00
libc.ldscript Remove $FreeBSD$: one-line .c comment pattern 2023-08-16 11:54:29 -06:00
Makefile libc: include malloc via stdlib/Makefile.inc 2023-08-16 19:16:26 +01:00
Makefile.depend Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
Makefile.depend.options Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
Versions.def Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00