wine/dlls/ntdll signal_i386.c exception.c

Marcus Meissner marcus at
Mon Oct 31 11:20:40 CST 2005

> >+"	leal	-12(%ebp), %eax\n"
> >+"	.byte 0x64\n"
> >+"	movl (0),%ecx\n"
> > 
> >
> Is it not possible to use the proper %fs prefix instead of having to put 
> a bytecode in manually?

It will likely not build with all assemblers. This is taken from the
wine_push_frame() inline assemblercode directly.

> >+"	movl %ecx,(%eax)\n"
> >+"	.byte 0x64\n"
> >+"	movl %eax,(0)\n"
> >+"	movl	20(%ebp), %eax\n"
> >+"	pushl	%eax\n"
> > 
> >
> There is no need to move the variable into %eax before pushing, as 
> "pushl 20(%ebp)" will work as shortens the assembly.

I used the assembler code that gcc generated directly. :/
> >+ * For i386 this function is implemented in assembler in signal_i386.c.
> > 
> >
> It seems bad to split the function's implementation up like this? We 
> also now lose the TRACE's that were previously printed from within 
> EXC_CallHandler. If they are superfluous to requirements we might as 
> well delete them from the generic function too.

I did not want to merge the TRACE()s into assembler, because this one might
change and thenthe assembler would need to be ported.

They could go from the generic one, yes.
Ciao, Marcus

More information about the wine-devel mailing list