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