Martin Storsjö : winedump: Fix printing of the prologue version of the "ldr lr, [sp], #offset" opcode.

Alexandre Julliard julliard at winehq.org
Tue Nov 9 15:55:08 CST 2021


Module: wine
Branch: master
Commit: ae7979a42d418908f1f37d689a2274a71d82b215
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=ae7979a42d418908f1f37d689a2274a71d82b215

Author: Martin Storsjö <martin at martin.st>
Date:   Tue Nov  9 16:05:46 2021 +0200

winedump: Fix printing of the prologue version of the "ldr lr, [sp], #offset" opcode.

This isn't mentioned in the documentation (which only writes out the
instruction that is executed while unwinding, i.e. the mirror form of
it), but a prologue version of this instruction would look like this.

Signed-off-by: Martin Storsjö <martin at martin.st>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 tools/winedump/pe.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/winedump/pe.c b/tools/winedump/pe.c
index 5d325fba3da..43ba0618615 100644
--- a/tools/winedump/pe.c
+++ b/tools/winedump/pe.c
@@ -1113,7 +1113,7 @@ static void dump_armnt_unwind_info( const struct runtime_function_armnt *fnc )
                     if (inepilogue)
                         printf( "ldr lr, [sp], #%u\n", (excode & 0x0f) * 4 );
                     else
-                        printf( "unknown 32\n" );
+                        printf( "str lr, [sp, #-%u]!\n", (excode & 0x0f) * 4 );
                 }
                 else
                     printf( "unknown 32\n" );




More information about the wine-cvs mailing list