compiling WINE with latest snapshot - unrecog. insn

Marcus Meissner marcus@jet.franken.de
Fri Jan 8 08:17:00 GMT 1999


Hi,

while compiling the latest WINE CVS with "gcc version egcs-2.92.34 19990107
(gcc2 ss-980609 experimental)" on linux 2.2-pre5, fails with:

gcc -c -g -O2 -Wall -fPIC -D__WINE__ -D_REENTRANT -I../include -I../include -I. -I. -I/usr/X11R6/include -o winsock.o winsock.c
winsock.c: In function `fd_set_import':
winsock.c:205: internal error--unrecognizable insn:
(insn 25 177 27 (parallel[ 
            (set (mem/s:BLK (reg/v:SI 5 %edi) 0)
                (asm_operands/v ("cld ; rep ; stosl") ("=m") 0[ 
                        (reg:SI 0 %eax)
                        (reg/v:SI 2 %ecx)
                        (reg/v:SI 5 %edi)
                    ] 
                    [ 
                        (asm_input:SI ("a"))
                        (asm_input:SI ("1"))
                        (asm_input:SI ("2"))
                    ]  ("winsock.c") 187))
            (set (reg/v:SI 2 %ecx)
                (asm_operands/v ("cld ; rep ; stosl") ("=&c") 1[ 
                        (reg:SI 0 %eax)
                        (reg/v:SI 2 %ecx)
                        (reg/v:SI 5 %edi)
                    ] 
                    [ 
                        (asm_input:SI ("a"))
                        (asm_input:SI ("1"))
                        (asm_input:SI ("2"))
                    ]  ("winsock.c") 187))
            (set (reg/v:SI 5 %edi)
                (asm_operands/v ("cld ; rep ; stosl") ("=&D") 2[ 
                        (reg:SI 0 %eax)
                        (reg/v:SI 2 %ecx)
                        (reg/v:SI 5 %edi)
                    ] 
                    [ 
                        (asm_input:SI ("a"))
                        (asm_input:SI ("1"))
                        (asm_input:SI ("2"))
                    ]  ("winsock.c") 187))
            (clobber (mem:BLK (scratch) 0))
        ] ) -1 (nil)
    (nil))
toplev.c:1397: Internal compiler error in function fatal_insn
make[1]: *** [winsock.o] Error 1
make: *** [misc] Error 2


Line  187 is:

	FD_ZERO(fds);

fds is a function argument (fd_set *fds).

This FD_ZERO expands to:
        do { int __d0, __d1; __asm__ __volatile__("cld ; rep ; stosl" :"=m" (*(_
_kernel_fd_set *) (  fds  )), "=&c" (__d0), "=&D" (__d1) :"a" (0), "1" ((1024 / 
(8 * sizeof(unsigned long)) ) ), "2" ((__kernel_fd_set *) (  fds  )) : "memory")
; } while (0)  ;

I think the kernel people have the __asm__ already adapted to egcs.

Ciao, Marcus



More information about the Gcc-bugs mailing list