On Fri, 14 Aug 2020, piotr@codeweavers.com wrote:
I'm not sure how complicated the assembly implementation is but I'm expecting that a separated assembly file will not be needed. Also, AFAIK, we can't take the implementation from glibc. It would be also useful to know how efficient Microsoft implementation is.
Musl also have platform specific implementation of memove (for i386 and x64) written is assembly. I bet it should be good enough for Wine.
FWIW, I happened to try to do some sort of benchmark of various memcpy implementations (for a different usecase in mingw-w64) recently, see https://sourceforge.net/p/mingw-w64/mailman/message/37030146/ for the measurements and a link to the tool I used for testing.
My conclusion there was that the musl x86_64 assembly implementation looks really good, and the musl C implementation also behaved pretty well, if compiled with GCC. The musl C implementation if compiled with clang was rather slow though.
// Martin