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.


Reply via email to