[Bug bootstrap/14221] Compiler from stage1 ICE on system header: Illegal instruction

v dot haisman at sh dot cvut dot cz gcc-bugzilla@gcc.gnu.org
Tue Mar 2 00:55:00 GMT 2004

------- Additional Comments From v dot haisman at sh dot cvut dot cz  2004-03-02 00:54 -------

(gdb) run -fpreprocessed crtstuff.i -quiet -dumpbase crtstuff.c -march=pentium3
-auxbase-strip crtbegin.o -g0 -O2 -W -Wall -Wwrite-strings -Wstrict-prototypes
-Wmissing-prototypes -Wold-style-definition -version -finhibit-size-directive
-fno-inline-functions -fno-exceptions -fno-zero-initialized-in-bss
-fno-unit-at-a-time -o crtstuff.s
The program being debugged has been started already.
Start it from the beginning? (y or n) y

Starting program: /home/4/wilx/tmp/gcc34/objdir/gcc/cc1 -fpreprocessed
crtstuff.i -quiet -dumpbase crtstuff.c -march=pentium3 -auxbase-strip crtbegin.o
-g0 -O2 -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes
-Wold-style-definition -version -finhibit-size-directive -fno-inline-functions
-fno-exceptions -fno-zero-initialized-in-bss -fno-unit-at-a-time -o crtstuff.s
Breakpoint 2 at 0x80494dc
Breakpoint 3 at 0x80491fc
Breakpoint 2 at 0x28501c5d
Breakpoint 3 at 0x285013ec
GNU C version 3.4.0 20040301 (prerelease) (i386-unknown-freebsd4.9)
        compiled by GNU C version 3.4.0 20040301 (prerelease).
GGC heuristics: --param ggc-min-expand=47 --param ggc-min-heapsize=32395

Program received signal SIGILL, Illegal instruction.
ggc_collect_1 (zone=0x8413a20, need_marking=true) at
1072          float min_expand = allocated_last_gc * PARAM_VALUE
(gdb) info line ../../srcdir/gcc/ggc-zone.c:1072
Line 1072 of "../../srcdir/gcc/ggc-zone.c" starts at address 0x828dd79
   and ends at 0x828dd81 <ggc_collect_1+65>.
(gdb) disassemble  0x828dd79 0x828dd81
Dump of assembler code from 0x828dd79 to 0x828dd81:
0x0828dd79 <ggc_collect_1+57>:  cvtsi2ss 0x184(%ecx),%xmm0
End of assembler dump.

It seems that this is the instructions that causes the SIGILL. What is strange
is that it should work. This instruction is part of P3 instruction set and
according to the CPUID utility output the CPU is P3. 
I think it must be some huge misinterpretation of facts on my side because
anything that uses vector extensions and is compiled with -msse gives me SIGILL.
I can bootstrap with just --with-arch=i686 fine.



More information about the Gcc-bugs mailing list