This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: PPro and egcs
- To: hjl at lucon dot org (H.J. Lu)
- Subject: Re: PPro and egcs
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Mon, 27 Oct 1997 14:35:55 -0700
- cc: egcs at cygnus dot com
- Reply-To: law at cygnus dot com
--
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