]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
amd64: add a mild depessimization to rep mov/stos users
authormjg <mjg@FreeBSD.org>
Sat, 2 Jun 2018 20:14:43 +0000 (20:14 +0000)
committermjg <mjg@FreeBSD.org>
Sat, 2 Jun 2018 20:14:43 +0000 (20:14 +0000)
commit9b8d5f13a3d9ce3bc9755a26a4e703d986031ea3
tree99d5740ecfdaabb59a8e05523e1264f85a34a06a
parent729cc88801a0968e58e2ebab63b50e2f111e5e16
amd64: add a mild depessimization to rep mov/stos users

Currently all the primitives are waiting for a rewrite, tidy them up in the
meantime.

Vast majority of cases pass sizes which are multiple of 8. Which means the
following rep stosb/movb has nothing to do. Turns out testing first if there
is anything to do is a big win across the board (cpus with and without ERMS,
Intel and AMD) while not pessimizing the case where there is work to do.

Sample results for zeroing 64 bytes (ops/second):
Ryzen Threadripper 1950X 91433212 -> 147265741
Intel(R) Xeon(R) CPU X5675 @ 3.07GHz 90714044 -> 121992888

bzero and bcopy are on their way out and were not modified. Nothing in the
tree uses them.
sys/amd64/amd64/support.S