I will look into this. Zeroing the entire thing in this function clears up the valgrind warning (this could be a valgrind bug). However at least setting TagWord is a correction that sets the FPU to the correct state (all floats empty).
On 7/3/2020 9:47 AM, Alexandre Julliard wrote:
Jefferson Carpenter jeffersoncarpenter2@gmail.com writes:
@@ -2270,7 +2270,11 @@ static void init_thread_context( CONTEXT *context, LPTHREAD_START_ROUTINE entry, context->Esp = (DWORD)NtCurrentTeb()->Tib.StackBase - 16; context->Eip = (DWORD)relay; context->FloatSave.ControlWord = 0x27f;
- context->FloatSave.StatusWord = 0;
- context->FloatSave.TagWord = 0xffff; ((XMM_SAVE_AREA32 *)context->ExtendedRegisters)->ControlWord = 0x27f;
- ((XMM_SAVE_AREA32 *)context->ExtendedRegisters)->StatusWord = 0;
- ((XMM_SAVE_AREA32 *)context->ExtendedRegisters)->TagWord = 0; ((XMM_SAVE_AREA32 *)context->ExtendedRegisters)->MxCsr = 0x1f80;
The entire context is already initialized to 0, this shouldn't be necessary.