This caused non-interactible windows in my Wine builds, where in win32u `dispatch_win_proc_params` got inlined into `call_window_proc` and this mov overwrote the lower 32 bits of `result`, causing WM_NCHITTEST messages to always return 0 or 0xffffffff00000000 (correct result was -1 in that case).
From: Torge Matthies tmatthies@codeweavers.com
Signed-off-by: Torge Matthies tmatthies@codeweavers.com --- dlls/ntdll/unix/signal_x86_64.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/ntdll/unix/signal_x86_64.c b/dlls/ntdll/unix/signal_x86_64.c index ee34da51654..3c61e0728cb 100644 --- a/dlls/ntdll/unix/signal_x86_64.c +++ b/dlls/ntdll/unix/signal_x86_64.c @@ -1647,7 +1647,7 @@ __ASM_GLOBAL_FUNC( user_mode_callback_return, "movq 0x10(%rbp),%rsi\n\t" /* ret_ptr */ "movq 0x18(%rbp),%rdi\n\t" /* ret_len */ "movq %rcx,(%rsi)\n\t" - "movq %rdx,(%rdi)\n\t" + "movl %edx,(%rdi)\n\t" "movdqa -0xe0(%rbp),%xmm15\n\t" "movdqa -0xd0(%rbp),%xmm14\n\t" "movdqa -0xc0(%rbp),%xmm13\n\t"
Thanks for this fix! I was hunting the same issue on arm64, but this led me directly to the solution (in !1318).