• Martin Storsjö's avatar
    ntdll: Zero-initialize the syscall_frame used for starting threads on ARM/ARM64. · 482b6a6d
    Martin Storsjö authored
    This fixes an inconsistency since
    fed7e7a7 (ntdll: Simulate a syscall
    return when starting a thread); in that commit, on i386 and
    x86_64, the syscall_frame used for starting the thread was
    zeroed with a memset, while it wasn't on arm and arm64.
    
    This had a noticable effect on float maths, where the
    uninitialized frame->restore_flags field could have the
    CONTEXT_FLOATING_POINT bit set. (call_init_thunk only ORs in
    CONTEXT_INTEGER into the restore_flags field, on all architectures).
    If that bit was set, it would restore uninitialized data into the
    fpscr register, possibly setting the FPU in a nondefault rounding
    mode.
    Signed-off-by: 's avatarMartin Storsjö <martin@martin.st>
    Signed-off-by: 's avatarAlexandre Julliard <julliard@winehq.org>
    482b6a6d
Name
Last commit
Last update
..
tests Loading commit data...
unix Loading commit data...
Makefile.in Loading commit data...
actctx.c Loading commit data...
atom.c Loading commit data...
crypt.c Loading commit data...
debugbuffer.c Loading commit data...
env.c Loading commit data...
error.c Loading commit data...
error.h Loading commit data...
exception.c Loading commit data...
handletable.c Loading commit data...
heap.c Loading commit data...
large_int.c Loading commit data...
loader.c Loading commit data...
locale.c Loading commit data...
make_errors Loading commit data...
math.c Loading commit data...
misc.c Loading commit data...
ntdll.spec Loading commit data...
ntdll_misc.h Loading commit data...
path.c Loading commit data...
printf.c Loading commit data...
printf.h Loading commit data...
process.c Loading commit data...
reg.c Loading commit data...
relay.c Loading commit data...
resource.c Loading commit data...
rtl.c Loading commit data...
rtlbitmap.c Loading commit data...
rtlstr.c Loading commit data...
sec.c Loading commit data...
signal_arm.c Loading commit data...
signal_arm64.c Loading commit data...
signal_i386.c Loading commit data...
signal_x86_64.c Loading commit data...
string.c Loading commit data...
sync.c Loading commit data...
thread.c Loading commit data...
threadpool.c Loading commit data...
time.c Loading commit data...
unixlib.h Loading commit data...
version.c Loading commit data...
version.rc Loading commit data...
wcstring.c Loading commit data...