AnyPS5/core/libs
clem-gb 15c1962e82 fix(libkernel): keep ymm upper halves across a redirected raise
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
2026-10-08 10:47:33 +02:00
..
nid fix(nid): reject libraries that define symbol versions 2026-10-08 03:04:07 +00:00
prx fix(libkernel): keep ymm upper halves across a redirected raise 2026-10-08 10:47:33 +02:00
tests fix(libkernel): keep ymm upper halves across a redirected raise 2026-10-08 10:47:33 +02:00
CMakeLists.txt build(libs): strip the MinGW static runtime flags once for all libraries 2026-10-07 10:10:38 +00:00
HitLog.hpp style(prx): apply CONVENTIONS.md to misc PRX additions 2026-09-29 04:24:39 +03:00
SceShaders.hpp feat(libs): libSce types impl + shaders refactor 2026-09-08 10:20:57 +03:00
SceTypes.hpp feat(libSceHttp2): complete asynchronous requests through the kqueue option 2026-10-07 10:39:14 +00:00