egcs is broken on ppro.

H.J. Lu hjl@lucon.org
Sun Oct 26 20:07:00 GMT 1997


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



More information about the Gcc mailing list