------- Comment #38 from gcc at breakpoint dot cc 2010-06-09 07:54 ------- (In reply to comment #28) > Please bootstrap and test this addition to e500.h > > /* When setting up caller-save slots (MODE == VOIDmode) ensure we > allocate space for DFmode. Save gprs in the correct mode too. */ > #define HARD_REGNO_CALLER_SAVE_MODE(REGNO, NREGS, MODE) \ > (TARGET_E500_DOUBLE && ((MODE) == VOIDmode || (MODE) == DFmode) \ > ? DFmode \ > : choose_hard_reg_mode ((REGNO), (NREGS), false)) >
Okay. Now I found something: inst/bin/powerpc-linux-gnuspe-gcc extract_chmLib.i -o extract_chmLib.S -S -O2 extract_chmLib.c: In function '_extract_callback': extract_chmLib.c:29: internal compiler error: in change_address_1, at emit-rtl.c:1954 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. extract_chmLib.i is attached. Adding -mfloat-gprs=single which avoids using 64bit gprs for double makes this go away. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44364