Hello, it occurred to me that as far as userland is concerned, the FPU/SEE thread state only consists of i386_fp_save & i386_fp_regs, and userland simply uses frstor to restore it when sigreturning. It seems that gnumach has grown better support for the fancier SSE registers in its internal state tracking (i386_fpsave_state / i386_xfp_save), but this doesn't seem to be exported to userland.
I don't know much about SSE and those registers and fxsave/fxrstor and xsave/xrstor, but it seems clear enough that this will result in string operations breaking after a thread receives a signal (assuming gnumach does things correctly -- otherwise, after any context switch). Let's do something about this. Sergey