opnsense-src/lib/libc
Alexander Motin 558e8b6adb amd64: Stop using REP MOVSB for backward memmove()s.
Enhanced REP MOVSB feature of CPUs starting from Ivy Bridge makes
REP MOVSB the fastest way to copy memory in most of cases. However
Intel Optimization Reference Manual says: "setting the DF to force
REP MOVSB to copy bytes from high towards low addresses will expe-
rience significant performance degradation". Measurements on Intel
Cascade Lake and Alder Lake, same as on AMD Zen3 show that it can
drop throughput to as low as 2.5-3.5GB/s, comparing to ~10-30GB/s
of REP MOVSQ or hand-rolled loop, used for non-ERMS CPUs.

This patch keeps ERMS use for forward ordered memory copies, but
removes it for backward overlapped moves where it does not work.

This is just a cosmetic sync with kernel, since libc does not use
ERMS at this time.

Reviewed by:    mjg
MFC after:	2 weeks

(cherry picked from commit f22068d91b)
2022-06-29 21:13:51 -04:00
..
aarch64 Add an implementation of .mcount on arm64 2022-04-19 10:18:02 +01:00
amd64 amd64: Stop using REP MOVSB for backward memmove()s. 2022-06-29 21:13:51 -04:00
arm Add sched_getcpu() 2022-01-14 18:17:29 +02:00
capability Fix a few mandoc issues 2020-10-09 19:12:44 +00:00
compat-43 libc: Add HISTORY sections to the manual pages 2022-06-04 07:59:43 +02:00
db libc: Add HISTORY sections to the manual pages 2022-06-04 07:59:43 +02:00
gdtoa Remove sparc64 specific parts of libc. 2020-02-26 18:55:09 +00:00
gen Fixed the value returned by sched_getaffinity(). 2022-06-17 22:35:16 +03:00
gmon
i386 libc: add _get_tp() private function 2021-04-23 14:14:07 +03:00
iconv libc: Fix "harmless" iconv one-byte overread 2022-01-24 23:59:47 +00:00
include Add sched_getcpu() 2022-01-14 18:17:29 +02:00
inet
isc
locale libc: Add HISTORY sections to the manual pages 2022-06-04 07:59:43 +02:00
md
mips mips _libc_get_static_tls_base: Narrow scope of #ifdef. 2022-04-29 13:50:05 -07:00
nameser Bounds check again after advancing cp, otherwise we have a possible 2019-09-05 19:35:30 +00:00
net if_indextoname(3): Correct the RFC in a comment 2022-04-10 07:52:14 +02:00
nls Implement strerror_l(). 2020-12-16 09:02:09 +00:00
posix1e acl_delete_entry(): remove write-only variable 2021-12-06 02:23:45 +02:00
powerpc Add sched_getcpu() 2022-01-14 18:17:29 +02:00
powerpc64 Add sched_getcpu() 2022-01-14 18:17:29 +02:00
powerpcspe [PowerPC] [PowerPCSPE] Fix multiple issues in fpsetmask(). 2021-03-08 12:39:33 -06:00
quad Add casts and L suffixes to libc quad support, to work around various 2020-02-17 20:14:59 +00:00
regex libc: regex: rework unsafe pointer arithmetic 2021-01-08 13:58:35 -06:00
resolv resolver(3): Fix a typo in a source code comment 2022-04-14 08:10:32 +02:00
riscv Add sched_getcpu() 2022-01-14 18:17:29 +02:00
rpc rpc(3): Fix two typos in source code comments 2022-04-09 08:17:17 +02:00
secure libc: ssp: sprinkle around some __dead2 2021-10-06 02:14:42 -05:00
softfloat libc: use standard LF line endings, not CRLF 2022-02-08 15:52:23 -05:00
stdio libc: Add HISTORY sections to the manual pages 2022-06-04 07:59:43 +02:00
stdlib libc: Add HISTORY sections to the manual pages 2022-06-04 07:59:43 +02:00
stdtime strftime.3: Fix a typo and use St for standards 2022-02-14 18:05:07 +01:00
string libc: Add HISTORY sections to the manual pages 2022-06-04 07:59:43 +02:00
sys kevent.2: Add an xref to listen.2 2022-06-27 10:11:27 -04:00
tests Have stpncpy tests ask the kernel for the page size 2022-05-03 15:04:04 +01:00
uuid uuid(3): Document return values 2021-11-21 19:43:31 -05:00
x86 Make CPU_SET macros compliant with other implementations 2022-01-14 18:17:30 +02:00
xdr typo: s/impelmentation/implementation/. 2020-02-07 15:14:29 +00:00
yp Increase the size of the send and receive buffers for YP client rpc 2019-09-16 06:42:01 +00:00
libc.ldscript
libc_nossp.ldscript
Makefile powerpc: enable initial-exec TLS 2022-03-08 01:28:33 +01:00
Makefile.depend Update Makefile.depend files 2019-12-11 17:37:53 +00:00
Makefile.depend.options Update libssp paths in various Makefile.depend* files 2020-01-06 18:15:55 +00:00
Versions.def Create namespace for the symbols added during 14-CURRENT cycle. 2021-07-22 13:33:10 +03:00