winedump: Distinguish between 16 and 32 bit nop opcodes in ARM unwind data.

Signed-off-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Martin Storsjö 2021-11-09 16:05:45 +02:00 committed by Alexandre Julliard
parent 825e8d8105
commit 22d2b61a64

View file

@ -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]; excode = (code << 24) | (excodes[0] << 16) | (excodes[1] << 8) | excodes[2];
printf( "%s sp, sp, #%u\n", inepilogue ? "add" : "sub", (excode & 0xffffff) * 4 ); printf( "%s sp, sp, #%u\n", inepilogue ? "add" : "sub", (excode & 0xffffff) * 4 );
} }
else if (code <= 0xfc) else if (code <= 0xfb)
printf( "nop\n" ); printf( "nop\n" );
else if (code <= 0xfe) else if (code <= 0xfc)
printf( "nop.w\n" );
else if (code <= 0xfd)
{ {
printf( "(end) nop\n" ); printf( "(end) nop\n" );
inepilogue = TRUE; inepilogue = TRUE;
} }
else if (code <= 0xfe)
{
printf( "(end) nop.w\n" );
inepilogue = TRUE;
}
else else
{ {
printf( "end\n" ); printf( "end\n" );