On Wed, 26 Jul 2000, Ove Kaaven wrote:
>
> On 25 Jul 2000, Alexandre Julliard wrote:
>
> > No, just output the raw instruction bytes with .byte (and a comment
> > explaining what instruction it was supposed to be ;-). We are already
> > doing this at a few places for "exotic" instructions.
>
> Fine. Apply this, then...
>
> Index: wine/msdos/dpmi.c
> ===================================================================
> RCS file: /home/wine/wine/msdos/dpmi.c,v
> retrieving revision 1.37
> diff -u -r1.37 dpmi.c
> --- wine/msdos/dpmi.c 2000/07/25 12:24:39 1.37
> +++ wine/msdos/dpmi.c 2000/07/25 23:45:13
> @@ -221,7 +219,7 @@
> "pushfl\n"
> "mov %7,%%es\n"
> "mov %5,%%ds\n"
> - ".byte 0x36; lcall *(%3)\n"
> + ".byte 0x36, 0xff, 0x18\n" /* lcall *%ss:(%eax) */
> "popl %%ds\n"
> "mov %%es,%0\n"
> "popl %%es\n"
It looks like there might still something wrong (in 1.38). With my
(old) compilers I get:
with gcc 2.7.2.3:
gcc -c -I. -I. -I../include -I../include -g -O2 -Wall -fPIC -D__WINE__
-D_REENTRANT -I/usr/X11R6/include -o dpmi.o dpmi.c
dpmi.c: In function `DPMI_CallRMCBProc':
dpmi.c:254: fixed or forbidden register was spilled.
This may be due to a compiler bug or to impossible asm
statements or clauses.
and with egcs 2.91.66
g++ -x c -c -I. -I. -I../include -I../include -g
-O2 -Wall -fPIC -D__WINE__ -D_REENTRANT -I/usr/X11R6/include -o dpmi.o
dpmi.c
dpmi.c: In function `DPMI_CallRMCBProc':
dpmi.c:254: fixed or forbidden register 3 (bx) was spilled for class
GENERAL_REGS.
This may be due to a compiler bug or to impossible asm
statements or clauses.
gcc --version
2.7.2.3
g++ --version
egcs-2.91.66
as --version
GNU assembler 2.9.1
Copyright 1997 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License. This program has absolutely no warranty.
This assembler was configured for a target of `i486-linux'.
--
Francois Gouget [EMAIL PROTECTED] http://fgouget.free.fr/
The greatest programming project of all took six days; on the seventh day the
programmer rested. We've been trying to debug the *&^%$#@ thing ever since.
Resume: design before you implement.