Thank you for the bug report. I've confirmed this with gcc-linaro-4.6-2011.06-0 on ARM:
michaelh@ursa2:~/linaro/bugs$ /tools/toolchains/arch/armv7l/gcc-linaro-4.6-2011.06-0-armv7l-maverick-cbuild130-ursa3-cortexa9r1/bin/g++ -O2 -c ValueRecords.ii
../../../src/share/native/sun/font/layout/ValueRecords.cpp: In member function 'void ValueRecord::adjustPosition(ValueFormat, const char*, GlyphIterator&, const LEFontInstance*) const':
../../../src/share/native/sun/font/layout/ValueRecords.cpp:162:1: error: could not find a spill register
(insn 210 212 214 13 (set (subreg:SI (reg:HI 463) 0)
(fix:SI (fix:SF (reg:SF 0 r0)))) ../../../src/share/native/sun/font/layout/ValueRecords.cpp:112 668 {*truncsisf2_vfp}
(expr_list:REG_DEAD (reg:SF 0 r0)
(nil)))
../../../src/share/native/sun/font/layout/ValueRecords.cpp:162:1: internal compiler error: in failed_reload, at reload1.c:6011
This is a VFP specific fault. One work-around is to compile with -mfloat-abi=soft. The fault does not exist in gcc-linaro-4.5-2011.06-0, gcc-4.5.3, gcc-4.6.1, or GCC trunk.
The fault was exposed by r106753. The fault existed in trunk from at least r172224 until r174044 but was gone by r174684.
I've set it to high priority as it is a ftbfs, occurs at all optimisation levels, and is in a significant package.
Thank you for the bug report. I've confirmed this with gcc-linaro- 4.6-2011. 06-0 on ARM:
michaelh@ ursa2:~ /linaro/ bugs$ /tools/ toolchains/ arch/armv7l/ gcc-linaro- 4.6-2011. 06-0-armv7l- maverick- cbuild130- ursa3-cortexa9r 1/bin/g+ + -O2 -c ValueRecords.ii ./src/share/ native/ sun/font/ layout/ ValueRecords. cpp: In member function 'void ValueRecord: :adjustPosition (ValueFormat, const char*, GlyphIterator&, const LEFontInstance*) const': ./src/share/ native/ sun/font/ layout/ ValueRecords. cpp:162: 1: error: could not find a spill register ./src/share/ native/ sun/font/ layout/ ValueRecords. cpp:112 668 {*truncsisf2_vfp} list:REG_ DEAD (reg:SF 0 r0) ./src/share/ native/ sun/font/ layout/ ValueRecords. cpp:162: 1: internal compiler error: in failed_reload, at reload1.c:6011
../../.
../../.
(insn 210 212 214 13 (set (subreg:SI (reg:HI 463) 0)
(fix:SI (fix:SF (reg:SF 0 r0)))) ../../.
(expr_
(nil)))
../../.
This is a VFP specific fault. One work-around is to compile with -mfloat-abi=soft. The fault does not exist in gcc-linaro- 4.5-2011. 06-0, gcc-4.5.3, gcc-4.6.1, or GCC trunk.
The fault was exposed by r106753. The fault existed in trunk from at least r172224 until r174044 but was gone by r174684.
I've set it to high priority as it is a ftbfs, occurs at all optimisation levels, and is in a significant package.