PPro and egcs
H.J. Lu
hjl@lucon.org
Mon Oct 27 16:30:00 GMT 1997
> > > > 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
>
I tried it. But it failed to compile _bb.o in libgcc2.a.
It aborted in find_reloads (). It seems that there weren't
enough registers for reload.
--
H.J. Lu (hjl@gnu.ai.mit.edu)
More information about the Gcc
mailing list