PPro and egcs
Jeffrey A Law
law@cygnus.com
Mon Oct 27 00:08:00 GMT 1997
In message < m0xPI2T-0004edC@ocean.lucon.org >you write:
> Hi,
>
> Has anyone tried egcs on PPro? I got an error.
>
> # gcc -O -march=i686 -S foo.c -fomit-frame-pointer
> foo.c: In function `nfs_readpage_sync':
> foo.c:1618: internal error--insn does not satisfy its constraints:
> (insn 317 316 139 (parallel[
> (set (reg/v:SI 3 %ebx)
> (if_then_else:SI (ne (cc0)
> (const_int 0))
> (reg:SI 0 %eax)
> (const_int -22)))
> (clobber (reg:SI 0 %eax))
> ] ) 374 {movsicc_1} (nil)
> (expr_list:REG_DEAD (reg:SI 0 %eax)
> (expr_list:REG_UNUSED (reg:SI 0 %eax)
> (nil))))
> gcc: Internal compiler error: program cc1 got fatal signal 6
I don't have a ppro, nor do I know anything about the architecture.
Can the cmov instruction accept a constant as a source operand?
If so, then I would think that changing "rm,0" to "rmi,0" and "0,rm" to "0,rmi"
in movsicc_1 would fix this problem (and generate better code). A similar change
to the other conditional move patterns would probably also be desirable.
Otherwise we'll have to come up with a more complicated fix.
jeff
More information about the Gcc
mailing list