http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47898
Summary: error: unable to find a register to spill in class 'FPUL_REGS' Product: gcc Version: 4.3.4 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: mcnic...@austin.ibm.com Created attachment 23472 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23472 Small testcase. I get the following error when using gcc to cross compile to an SH4 target. # /opt/sh4/bin/sh4-linux-gcc -c -O1 sh4-gcc.c sh4-gcc.c: In function 'xml_transport_parser': sh4-gcc.c:104: error: unable to find a register to spill in class 'FPUL_REGS' sh4-gcc.c:104: error: this is the insn: (insn 199 198 200 18 sh4-gcc.c:76 (set (mem/s/j:QI (plus:SI (reg:SI 77 fr13 [320]) (reg:SI 76 fr12 [orig:240 D.2212 ] [240])) [0 name S1 A8]) (reg:QI 1 r1 [284])) 182 {movqi_i} (expr_list:REG_DEAD (reg:QI 1 r1 [284]) (expr_list:REG_DEAD (reg:SI 76 fr12 [orig:240 D.2212 ] [240]) (nil)))) sh4-gcc.c:104: confused by earlier errors, bailing out The problem only seems to happen with -O1. Here is the information about my compiler: #sh4-linux-gcc -v Using built-in specs. Target: sh4-linux Configured with: /usr/src/BUILD/gcc/configure --prefix=/opt/sh4 --target=sh4-linux --with-cpu=sh4a --with-multilib-list=sh4a,sh4a-nofpu --enable-incomplete-targets --disable-nls --disable-libssp --disable-libgomp --disable-libmudflap --enable-shared --enable-languages=c,c++ --enable-cross --enable-__cxa_atexit --enable-threads=posix --with-sysroot=/opt/sh4/crossroot Thread model: posix gcc version 4.3.4 [gcc-4_3-branch revision 152973] (GCC) Attached is a small test case.