A thread that sceKernelRaiseException redirects resumes through RtlRestoreContext with a CONTEXT that has no XSTATE, so the upper halves of ymm0-ymm15 came back as the handler and the delivery path left them. A handler or host routine that runs vzeroupper or any VEX instruction (Zen 2 guest code, the CRT's memcpy) cleared the upper lanes of a thread interrupted in the middle of AVX code. The entry stub now stores ymm0-ymm15 next to the delivery when the CPU and the OS enable AVX, and the exit loads them back right before RtlRestoreContext, which restores only the low halves. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HeC9bA3n74TzJRYv9AgBE8 |
||
|---|---|---|
| .. | ||
| nid | ||
| prx | ||
| tests | ||
| CMakeLists.txt | ||
| HitLog.hpp | ||
| SceShaders.hpp | ||
| SceTypes.hpp | ||