[PATCH 08/18] winedump: Distinguish between 16 and 32 bit nop opcodes in ARM unwind data.

Martin Storsjö martin at martin.st
Tue Nov 9 08:05:45 CST 2021


Signed-off-by: Martin Storsjö <martin at martin.st>
---
 tools/winedump/pe.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/tools/winedump/pe.c b/tools/winedump/pe.c
index 4629c3082f9..5d325fba3da 100644
--- a/tools/winedump/pe.c
+++ b/tools/winedump/pe.c
@@ -1171,13 +1171,20 @@ static void dump_armnt_unwind_info( const struct runtime_function_armnt *fnc )
                 excode = (code << 24) | (excodes[0] << 16) | (excodes[1] << 8) | excodes[2];
                 printf( "%s sp, sp, #%u\n", inepilogue ? "add" : "sub", (excode & 0xffffff) * 4 );
             }
-            else if (code <= 0xfc)
+            else if (code <= 0xfb)
                 printf( "nop\n" );
-            else if (code <= 0xfe)
+            else if (code <= 0xfc)
+                printf( "nop.w\n" );
+            else if (code <= 0xfd)
             {
                 printf( "(end) nop\n" );
                 inepilogue = TRUE;
             }
+            else if (code <= 0xfe)
+            {
+                printf( "(end) nop.w\n" );
+                inepilogue = TRUE;
+            }
             else
             {
                 printf( "end\n" );
-- 
2.25.1




More information about the wine-devel mailing list