PPro and egcs
Jeffrey A Law
law@cygnus.com
Mon Oct 27 13:36:00 GMT 1997
--
Jeff Law (law@cygnus.com)
Cygnus Solutions EGCS GNU Compiler System
http://www.cygnus.com http://www.cygnus.com/egcs
In message < m0xPwLd-0004edC@ocean.lucon.org >you write:
> >
> >
> > 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?
> >
>
> No. How about we do this?
>
> If operands 2/3 are immediate operands, we emit
>
>
> jmp next
> .align 4
> operand2:
> .4bytes operand2
> operand3:
> .4bytes operand3
> next:
> cmovxx operand2,operand0
> cmovyy operand3,operand0
Possibly, but we'd be better off disallowing constants to begin with if
that's the code we'd have to generate to support them.
jeff
More information about the Gcc
mailing list