AnyPS5/core
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
..
Decoder feat(jpegenc): honor the encode restart interval 2026-10-06 14:16:07 +02:00
libs fix(libkernel): keep ymm upper halves across a redirected raise 2026-10-08 10:47:33 +02:00
relinker Merge pull request #1168 from oguzhanozfe/fix/decoder-moffs-length 2026-10-08 10:39:59 +02:00
shader/recompiler feat(shader): implement 1D array gathers 2026-10-07 23:01:09 +02:00