opnsense-src/lib/libc/amd64/string
Robert Clausecker 9a6a587e67 lib/libc/amd64/string: add timingsafe_memcmp() assembly implementation
Conceptually very similar to timingsafe_bcmp(), but with comparison
logic inspired by Elijah Stone's fancy memcmp. A baseline (SSE)
implementation was omitted this time as I was not able to get it to
perform adequately.  Best I got was 8% over the scalar version for
long inputs, but slower for short inputs.

Sponsored by:	The FreeBSD Foundation
Approved by:	security (cperciva)
Inspired by:	https://github.com/moon-chilled/fancy-memcmp
Differential Revision:	https://reviews.freebsd.org/D41696

(cherry picked from commit 5048c1b85506c5e0f441ee7dd98dd8d96d0a4a24)
2023-12-28 18:02:41 +01:00
..
amd64_archlevel.c lib/libc/amd64: add archlevel-based simd dispatch framework 2023-08-04 01:53:43 +03:00
bcmp.S amd64: bring back asm bcmp, shared with memcmp 2022-03-26 09:10:03 +00:00
bcopy.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
bzero.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
Makefile.inc lib/libc/amd64/string: add timingsafe_memcmp() assembly implementation 2023-12-28 18:02:41 +01:00
memchr.S lib/libc/amd64/string: add memchr(3) scalar, baseline implementation 2023-09-23 14:20:28 -04:00
memcmp.S lib/libc/amd64/string/memcmp.S: harden against phony buffer lengths 2023-09-23 14:21:42 -04:00
memcpy.S Remove $FreeBSD$: one-line .c comment pattern 2023-08-16 11:54:29 -06:00
memmove.S Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:42 -06:00
memset.S Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:42 -06:00
stpcpy.S lib/libc/amd64/string/stpcpy.S: add baseline implementation 2023-08-21 20:59:38 +02:00
strcat.S Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:42 -06:00
strchrnul.S lib/libc/amd64/string/strchrnul.S: fix edge case in scalar code 2023-08-28 19:45:51 +02:00
strcmp.S Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:42 -06:00
strcpy.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
strcspn.S lib/libc/amd64/string/strcspn.S: always return earliest match in 17--32 char case 2023-12-28 18:02:41 +01:00
strlen.S Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:42 -06:00
strnlen.c libc: Purge unneeded cdefs.h 2023-11-26 21:20:09 -07:00
strspn.S lib/libc/amd64/string: add strspn(3) scalar, x86-64-v2 implementation 2023-09-23 14:20:28 -04:00
timingsafe_bcmp.S lib/libc/amd64/string: add timingsafe_bcmp(3) scalar, baseline implementations 2023-12-28 18:02:41 +01:00
timingsafe_memcmp.S lib/libc/amd64/string: add timingsafe_memcmp() assembly implementation 2023-12-28 18:02:41 +01:00