ntdll: Add CFI unwind info to __wine_syscall_dispatcher (i386).

This change is adding DWARF (CFI) unwind information to the hand-written assembly of the __wine_syscall_dispatcher function. This enables unwinding through the dispatcher from the Linux stack into (and through) the Windows stack.

The general idea is that the syscall_frame struct contains the content of the callee-save registers before the function call (in particular the stack pointer and the return address). At any point of the execution, we have a pointer into the syscall_frame in $ebx, $ecx, $ebp, or $esp.

For the CFI codes the general idea is that we are defining the computations of the callee-save registers based on the syscall_frame using DWARF’s breg instruction, rather than relative to CFA.

cc/ @florian-kuebler

Merge request reports

Loading