| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 f22068d91bf53696ee13a69685e809d35776ec3f)
|
| |
|
|
| |
(cherry picked from commit 164c3b81848bc81dc200b12370999474225447a3)
|
| |
|
|
|
|
|
|
|
| |
amd64: tidy up copying backwards in memmove
amd64: remove stale attribution for memmove work
amd64: handle small memmove buffers with overlapping stores
Notes:
svn path=/stable/12/; revision=342240
|
| |
|
|
|
|
|
| |
amd64: align target memmove buffer to 16 bytes before using rep movs
Notes:
svn path=/stable/12/; revision=342238
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
bcopy is left alone as it is expected to be converted to a C func.
Due to header mess ALIGN_TEXT is temporarily defined explicitly in memmove.S
Reviewed by: kib
Approved by: re (gjb)
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D17538
Notes:
svn path=/head/; revision=339347
|
| |
|
|
|
|
|
|
|
| |
made the neccessary provisions.
Reported by: arundel
Notes:
svn path=/head/; revision=218303
|
| |
|
|
| |
Notes:
svn path=/head/; revision=217106
|
|
|
memmove, and memset.
PR: 73111
Submitted by: Ville-Pertti Keinonen <will@iki.fi> (taken from NetBSD)
MFC after: 3 weeks
Notes:
svn path=/head/; revision=144730
|