• Martin Storsjo's avatar
    ntdll: Fix more corner cases for arm64 packed info unwinding. · 3395ee36
    Martin Storsjo authored
    Make sure to restore sp from fp for CR == 3.
    
    Fix unwinding of partial prologues/epilogues - the previous logic
    had an off-by-one for the pos/skip handling; fix a few more
    corner cases with odd number of saved registers.
    
    Functions with the H flag set (saving x0-x7 on the stack) should
    be considred having 4 nops (for the instructions saving the
    registers) in the prologue for unwind purposes. When unwinding
    through a partial epilogue, the same 4 nops should also be
    considered to be there (even though no sane epilogue would restore
    the registers there) based on how windows handles partial epilogue
    unwinding in those cases.
    
    Uncomment prologue/epilogue cases in an existing test and add
    tests for many more cases.
    Signed-off-by: 's avatarMartin Storsjo <martin@martin.st>
    Signed-off-by: 's avatarAlexandre Julliard <julliard@winehq.org>
    3395ee36
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...
critsection.c Loading commit data...
crypt.c Loading commit data...
debugbuffer.c Loading commit data...
directory.c Loading commit data...
env.c Loading commit data...
error.c 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...
loadorder.c Loading commit data...
locale.c Loading commit data...
make_errors Loading commit data...
misc.c Loading commit data...
nt.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...
virtual.c Loading commit data...
wcstring.c Loading commit data...