• Jinoh Kang's avatar
    ntdll: Add CFI unwind info to __wine_syscall_dispatcher (i386). · 53c4f638
    Jinoh Kang authored
    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.
    53c4f638
dwarf.h 38.6 KB