[PATCH] kernel32: Save xmm0 - 3 to work around a Delphi bug on x86_64.

Huw Davies huw at codeweavers.com
Tue Feb 6 08:40:59 CST 2018


On Tue, Feb 06, 2018 at 03:03:27PM +0100, Alexandre Julliard wrote:
> Huw Davies <huw at codeweavers.com> writes:
> 
> > When delay loading a symbol, Delphi saves rcx, rdx, r8 and r9 to the
> > stack.  It then calls GetProcAddress(), pops the saved registers and
> > calls the function.  This works fine if all of the parameters are
> > ints.  However, since it does not save xmm0 - 3, it relies on
> > GetProcAddress() preserving these registers if the function takes
> > floating point parameters.
> 
> Is that really inside Delphi code?  Don't we have the same bug in ours?

Yes, GetProcAddress is called from within Delphi code.  And yes, it
looks like we have the same bug in ours.  I'll take a look at that.

Huw.



More information about the wine-devel mailing list