msvcrt - memmove/memcpy optimizations
Zebediah Figura
z.figura12 at gmail.com
Fri Aug 14 09:18:42 CDT 2020
On 8/14/20 3:27 AM, piotr at codeweavers.com wrote:
> Hi Fabian,
>
> I'll be back from vacation on Monday (currently I have very limited
> internet access). I'll look on it then.
>
> 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.
I believe you are correct. I misread their licensing files and thought
they used LGPL 2, not GPL 2.
>
> Musl also have platform specific implementation of memove (for i386 and
> x64) written is assembly. I bet it should be good enough for Wine.
>
> Thanks,
> Piotr
>
> On Aug 12, 2020 23:33, Fabian Maurer <dark.shadow4 at web.de> wrote:
>
> 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
>
>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20200814/9b6b62c6/attachment.sig>
More information about the wine-devel
mailing list