[PATCH 13/18] ntdll: Use syscall frame for YMM context in x86_64 NtGetContextThread.

Jacek Caban jacek at codeweavers.com
Fri Jan 22 12:46:57 CST 2021


On 22.01.2021 19:20, Paul Gofman wrote:
> On 1/22/21 21:03, Jacek Caban wrote:
>> On 22.01.2021 18:44, Paul Gofman wrote:
>>>> xsave is part of SSE2, not AVX, and it should ignore unsupported
>>>> requested features, so the patch should be fine as is on hardware
>>>> without AVX. xsave needs, however, to be enabled by OS, so we may need
>>>> a feature check if we want to support OSes without xsave enabled.
>>>>
>>> There was a real bug with that:
>>> https://bugs.winehq.org/show_bug.cgi?id=50271.
>>
>>
>> Looking at the bug report, I think it was about missing AVX support, 
>> not missing XSAVE support, so it should be fine with my patches.
>>
>>
> It was faulting exactly on xrstor instruction, with the mask being 
> taken from what Linux gives us in its xsave structure. I didn't check 
> the mask that time, so I can't fully exclude the possibility that it 
> was the wrong mask somehow and it wouldn't fail with a zero mask, but 
> I got an impression that it is xrstor instruction itself is 
> unsupported. And apparently there wasn't cpuid XSAVE flag set, that's 
> how the fix there is helping. Also, xsave instruction documentation 
> explicitly refers XSAVE CPUID feature flag.
>

It's mentioned in exceptions section of documentation that you linked:

"#UD     If CPUID.01H:ECX.XSAVE[bit 26] = 0."

There is no AVX check. (There is also If "CR4.OSXSAVE[bit 18] = 0.", 
which is how OS may decide to support it or not).


I'm not sure why you conclude that XSAVE CPUID flag wasn't set in case 
of the bug. With current code, both AVX and XSAVE flags to set 
EnabledFeatures, so it wouldn't be set even if XSAVE is supported but 
AVX not.


Jacek


[1] 
https://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-instruction-set-reference-manual-325383.pdf

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20210122/c2c0838f/attachment.htm>


More information about the wine-devel mailing list