msvcrt - memmove/memcpy optimizations

Fabian Maurer dark.shadow4 at web.de
Wed Aug 12 16:33:54 CDT 2020


Hello,

since msvcrt isn't relying on the standard library memmove/memcpy anymore,
there's been a pretty bad performance regression. See https://bugs.winehq.org/
show_bug.cgi?id=49663.

For the best performance, and since those memory operations are pretty common,
we'd presumably like to optimize them as much as possible. You might have seen
my patch for an implementation from musl, although Zebediah rightfully pointed
out we might want to opt for the best performance we can get...
glibc currently offers the best performance, thanks to SSE/AVX implementations
and runtime selection of the best supported path.

First, would you have any objections adding specialized paths written in
assembly for x86?
And if we were to add them, would we link against assembly files, or someway
transform them into inline assembly? AFAIK, Wine didn't come with pure
assembly files yet...

If you want, I could set up a few crude benchmarks to see how different
versions compare.

Regards,
Fabian Maurer





More information about the wine-devel mailing list