Alexandre Julliard (@julliard) commented about dlls/ntdll/unix/signal_i386.c:
"movzbl (%eax,%edx,1),%ecx\n\t" "movl (%ebx),%eax\n\t" /* table->ServiceTable */ "subl %ecx,%esp\n\t" "shrl $2,%ecx\n\t" "andl $~15,%esp\n\t" "movl %esp,%edi\n\t" "cld\n\t" "rep; movsl\n\t" "call *(%eax,%edx,4)\n\t" - "leal -0x34(%ebp),%esp\n\t"
"\n.L__wine_syscall_dispatcher_restore:\n\t" + "leal -0x34(%ebp),%esp\n\t" + /* remember state when $ebp is pointing to "frame" */ + __ASM_CFI(".cfi_remember_state\n\t") __ASM_CFI_CFA_IS_AT1(esp, 0x0c)
I don't understand why you are changing this. The frame is pointed to by %esp, we don't use %ebp at all, except as a way to get %esp back to the syscall frame after calling the entry point. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/1437#note_16720