winebuild: Remove a no longer necessary movzwl instruction.
This could cause broken relays to be generated depending on the order of the entry points in the relay list. Also add a few missing tabs in the assembly output.
This commit is contained in:
parent
c205d115c8
commit
392933149b
|
@ -375,7 +375,6 @@ static void output_call16_function( FILE *outfile, ORDDEF *odp )
|
||||||
fprintf( outfile, "\tcall *8(%%ebp)\n" );
|
fprintf( outfile, "\tcall *8(%%ebp)\n" );
|
||||||
|
|
||||||
if (needs_ldt) fprintf( outfile, "\tmovl -4(%%ebp),%%esi\n" );
|
if (needs_ldt) fprintf( outfile, "\tmovl -4(%%ebp),%%esi\n" );
|
||||||
if (odp->flags & FLAG_RET16) fprintf( outfile, "\tmovzwl %%ax,%%eax\n" );
|
|
||||||
|
|
||||||
fprintf( outfile, "\tleave\n" );
|
fprintf( outfile, "\tleave\n" );
|
||||||
fprintf( outfile, "\tret\n" );
|
fprintf( outfile, "\tret\n" );
|
||||||
|
@ -726,17 +725,17 @@ void BuildSpec16File( FILE *outfile, DLLSPEC *spec )
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
fprintf( outfile, "shld $16,%%eax,%%edx\n" );
|
fprintf( outfile, "\tshld $16,%%eax,%%edx\n" );
|
||||||
fprintf( outfile, "orl %%eax,%%eax\n" );
|
fprintf( outfile, "\torl %%eax,%%eax\n" );
|
||||||
nop_words = 1;
|
nop_words = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (argsize)
|
if (argsize)
|
||||||
{
|
{
|
||||||
fprintf( outfile, "lretw $%u\n", argsize );
|
fprintf( outfile, "\tlretw $%u\n", argsize );
|
||||||
nop_words--;
|
nop_words--;
|
||||||
}
|
}
|
||||||
else fprintf( outfile, "lretw\n" );
|
else fprintf( outfile, "\tlretw\n" );
|
||||||
|
|
||||||
if (nop_words) fprintf( outfile, "\t%s\n", nop_sequence[nop_words-1] );
|
if (nop_words) fprintf( outfile, "\t%s\n", nop_sequence[nop_words-1] );
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue