Revision tags: release/14.0.0 |
|
#
1d386b48 |
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
Remove $FreeBSD$: one-line .c pattern
Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
Revision tags: release/13.2.0, release/12.4.0 |
|
#
ae507c25 |
| 18-Nov-2022 |
Konstantin Belousov <kib@FreeBSD.org> |
amd64 libc: add missed GNU-stack annotation to memmove/memcpy
Sponsored by: The FreeBSD Foundation MFC after: 1 week
|
#
f22068d9 |
| 16-Jun-2022 |
Alexander Motin <mav@FreeBSD.org> |
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 Optimi
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
show more ...
|
Revision tags: release/13.1.0, release/12.3.0, release/13.0.0 |
|
#
0db6aef4 |
| 31-Jan-2021 |
Mateusz Guzik <mjg@FreeBSD.org> |
amd64: add a note about simd to libc memset, memmove and memcmp
|
#
164c3b81 |
| 29-Jan-2021 |
Mateusz Guzik <mjg@FreeBSD.org> |
amd64: add missing ALIGN_TEXT to loops in memset and memmove
|
Revision tags: release/12.2.0, release/11.4.0, release/12.1.0, release/11.3.0 |
|
#
67350cb5 |
| 09-Dec-2018 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r340918 through r341763.
|
Revision tags: release/12.0.0 |
|
#
ddf65712 |
| 01-Dec-2018 |
Mateusz Guzik <mjg@FreeBSD.org> |
amd64: align target memmove buffer to 16 bytes before using rep movs
See the review for sample test results.
Reviewed by: kib (kernel part) Sponsored by: The FreeBSD Foundation Differential Revisio
amd64: align target memmove buffer to 16 bytes before using rep movs
See the review for sample test results.
Reviewed by: kib (kernel part) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D18401
show more ...
|
#
94243af2 |
| 30-Nov-2018 |
Mateusz Guzik <mjg@FreeBSD.org> |
amd64: handle small memmove buffers with overlapping stores
Handling sizes of > 32 backwards will be updated later.
Reviewed by: kib (kernel part) Sponsored by: The FreeBSD Foundation Differential
amd64: handle small memmove buffers with overlapping stores
Handling sizes of > 32 backwards will be updated later.
Reviewed by: kib (kernel part) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D18387
show more ...
|
#
2847cfce |
| 30-Nov-2018 |
Mateusz Guzik <mjg@FreeBSD.org> |
amd64: remove stale attribution for memmove work
While the routine started as expanded bcopy, it is now entirely rewritten.
Sponsored by: The FreeBSD Foundation
|
#
dd219e5e |
| 30-Nov-2018 |
Mateusz Guzik <mjg@FreeBSD.org> |
amd64: tidy up copying backwards in memmove
For non-ERMS case the code used handle possible trailing bytes with movsb first and then followed it up with movsq. This also happened to alter how calcul
amd64: tidy up copying backwards in memmove
For non-ERMS case the code used handle possible trailing bytes with movsb first and then followed it up with movsq. This also happened to alter how calculations were done for other cases.
Handle the tail with regular movs, just like when copying forward. Use leaq to calculate the right offset from the get go, instead of doing separate add and sub.
This adjusts the offset for non-rep cases so that they can be used to handle the tail.
The routine is still a work in progress.
Sponsored by: The FreeBSD Foundation
show more ...
|
#
c6879c6c |
| 23-Oct-2018 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r339015 through r339669.
|
#
1e52ba8c |
| 13-Oct-2018 |
Mateusz Guzik <mjg@FreeBSD.org> |
amd64: import updated kernel memmove to libc
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
Reviewe
amd64: import updated kernel memmove to libc
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
show more ...
|
Revision tags: release/11.2.0, release/10.4.0, release/11.1.0, release/11.0.1, release/11.0.0, release/10.3.0, release/10.2.0, release/10.1.0, release/9.3.0, release/10.0.0, release/9.2.0, release/8.4.0, release/9.1.0, release/8.3.0_cvs, release/8.3.0, release/9.0.0, release/7.4.0_cvs, release/8.2.0_cvs, release/7.4.0, release/8.2.0 |
|
#
adc68467 |
| 04-Feb-2011 |
Konstantin Belousov <kib@FreeBSD.org> |
Remove duplicate .note.GNU-stack section declaration. bcopy already made the neccessary provisions.
Reported by: arundel
|
#
93ab7586 |
| 07-Jan-2011 |
Konstantin Belousov <kib@FreeBSD.org> |
Add section .note.GNU-stack for assembly files used by 386 and amd64.
|
Revision tags: release/8.1.0_cvs, release/8.1.0, release/7.3.0_cvs, release/7.3.0, release/8.0.0_cvs, release/8.0.0, release/7.2.0_cvs, release/7.2.0, release/7.1.0_cvs, release/7.1.0, release/6.4.0_cvs, release/6.4.0, release/7.0.0_cvs, release/7.0.0, release/6.3.0_cvs, release/6.3.0, release/6.2.0_cvs, release/6.2.0, release/5.5.0_cvs, release/5.5.0, release/6.1.0_cvs, release/6.1.0, release/6.0.0_cvs, release/6.0.0, release/5.4.0_cvs, release/5.4.0 |
|
#
91c09a38 |
| 07-Apr-2005 |
Alan Cox <alc@FreeBSD.org> |
Add machine-specific, optimized implementations of bcopy, bzero, memcpy, memmove, and memset.
PR: 73111 Submitted by: Ville-Pertti Keinonen <will@iki.fi> (taken from NetBSD) MFC after: 3 weeks
|
Revision tags: release/8.1.0_cvs, release/8.1.0, release/7.3.0_cvs, release/7.3.0, release/8.0.0_cvs, release/8.0.0, release/7.2.0_cvs, release/7.2.0, release/7.1.0_cvs, release/7.1.0, release/6.4.0_cvs, release/6.4.0, release/7.0.0_cvs, release/7.0.0, release/6.3.0_cvs, release/6.3.0, release/6.2.0_cvs, release/6.2.0, release/5.5.0_cvs, release/5.5.0, release/6.1.0_cvs, release/6.1.0, release/6.0.0_cvs, release/6.0.0, release/5.4.0_cvs, release/5.4.0 |
|
#
91c09a38 |
| 07-Apr-2005 |
Alan Cox <alc@FreeBSD.org> |
Add machine-specific, optimized implementations of bcopy, bzero, memcpy, memmove, and memset.
PR: 73111 Submitted by: Ville-Pertti Keinonen <will@iki.fi> (taken from NetBSD) MFC after: 3 weeks
|