This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
egcs is broken on ppro.
- To: egcs at cygnus dot com
- Subject: egcs is broken on ppro.
- From: hjl at lucon dot org (H.J. Lu)
- Date: Sun, 26 Oct 1997 20:07:06 -0800 (PST)
It turns out egcs is broken on Intel Pentim Pro. In additon to the
small test case I sent earlier, I even got the same compiler error
when I built egcs. See below.
I think the problem is the spill register %eax is used long before
reload when the arch has conditional move. For whatever reason,
egcs reuse %eax as the spill register.
--
H.J. Lu (hjl@gnu.ai.mit.edu)
---
gcc -c -DIN_GCC -DUSE_GNULIBC_1 -mcpu=pentiumpro -march=pentiumpro -funroll-loops -O2 -g -pipe -fno-exceptions -DHAVE_CONFIG_H -I. -I/home/work/gnu/src/egcs/gcc -I/home/work/gnu/src/egcs/gcc/config /home/work/gnu/src/egcs/gcc/expr.c
/home/work/gnu/src/egcs/gcc/expr.c: In function `expand_assignment':
/home/work/gnu/src/egcs/gcc/expr.c:3081: internal error--insn does not satisfy its constraints:
(insn/s 1055 1054 341 (parallel[
(set (reg/v:SI 1 %edx)
(if_then_else:SI (ne (cc0)
(const_int 0))
(reg:SI 0 %eax)
(const_int 1)))
(clobber (reg:SI 0 %eax))
] ) 374 {movsicc_1} (insn_list 329 (insn_list 331 (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
cpp: output pipe has been closed