seen when building the OpenJDK Zero port on ix86: works when using -march=i486 instead of -march=i585.
$ g++-4.2 -c -march=i586 -g -O3 -fPIC -c jvm.ii $ g++-4.3 -c -march=i586 -g -O3 -fPIC -c jvm.ii /scratch/packages/openjdk/u/openjdk-6-6b14-1.4.1/build-zero/openjdk/hotspot/src/share/vm/prims/jvm.cpp: In function 'jboolean JVM_CX8Field(JNIEnv*, _jobject*, _jfieldID*, jlong, jlong)': /scratch/packages/openjdk/u/openjdk-6-6b14-1.4.1/build-zero/openjdk/hotspot/src/share/vm/prims/jvm.cpp:4206: error: unable to find a register to spill in class 'GENERAL_REGS' /scratch/packages/openjdk/u/openjdk-6-6b14-1.4.1/build-zero/openjdk/hotspot/src/share/vm/prims/jvm.cpp:4206: error: this is the insn: (insn:HI 71 68 72 11 /scratch/packages/openjdk/u/openjdk-6-6b14-1.4.1/build-zero/openjdk/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp:295 (parallel [ (set (reg:DI 65 [ D.129908 ]) (mem/v:DI (plus:SI (reg/f:SI 58 [ prephitmp.14780 ]) (reg/v/f:SI 71 [ fid ])) [-1 S8 A64])) (set (mem/v:DI (plus:SI (reg/f:SI 58 [ prephitmp.14780 ]) (reg/v/f:SI 71 [ fid ])) [-1 S8 A64]) (unspec_volatile:DI [ (mem/v:DI (plus:SI (reg/f:SI 58 [ prephitmp.14780 ]) (reg/v/f:SI 71 [ fid ])) [-1 S8 A64]) (reg/v:DI 72 [ oldVal ]) (reg:SI 101 [ newVal ]) (reg:SI 102 [ newVal+4 ]) ] 10)) (clobber (reg:CC 17 flags)) ]) 1507 {*sync_double_compare_and_swapdi_pic} (expr_list:REG_DEAD (reg:SI 102 [ newVal+4 ]) (expr_list:REG_DEAD (reg:SI 101 [ newVal ]) (expr_list:REG_DEAD (reg/v/f:SI 71 [ fid ]) (expr_list:REG_DEAD (reg/f:SI 58 [ prephitmp.14780 ]) (expr_list:REG_UNUSED (reg:CC 17 flags) (nil))))))) -- Summary: [4.3/4.4 regression ICE in spill_failure, at reload1.c:2093 Product: gcc Version: 4.3.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: doko at ubuntu dot com GCC host triplet: i486-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39431