Thanks, Unfortunately that is not my source code... powerpc-eabi-gcc -Wall -W -O2 -g -fno-strict-aliasing -ffunction-sections -fdata-sections -fno-schedule-insns -std=gnu99 -fcall-used-cr2 -fcall-used-cr3 -fcall-used-cr4 -Xassembler -mregnames ... *.c
../net/src/net_dbg.c:668: error: Attempt to delete prologue/epilogue insn: (insn 238 237 239 22 ../net/src/net_dbg.c:668 (set (reg:SI 12 12) (mem:SI (plus:SI (reg/f:SI 1 1) (const_int 12 [0xc])) [0 S4 A8])) -1 (nil) (nil)) ../net/src/net_dbg.c:668: internal compiler error: in propagate_one_insn, at flow.c:1699 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. ../net/src/rtab_fr.c:299: error: Attempt to delete prologue/epilogue insn: (insn 457 456 458 47 ../net/src/rtab_fr.c:299 (set (reg:SI 12 12) (mem:SI (plus:SI (reg/f:SI 1 1) (const_int 12 [0xc])) [0 S4 A8])) -1 (nil) (nil)) ../net/src/rtab_fr.c:299: internal compiler error: in propagate_one_insn, at flow.c:1699 Please submit a full bug report, with preprocessed source if appropriate. If I just give the option"-fcall-used-cr4" and not cr2/3, I just have the first ICE $ powerpc-eabi-gcc -v Using built-in specs. Target: powerpc-eabi Configured with: ../gcc-4.1.1/configure --target=powerpc-eabi --with-cpu=440 --enable-languages=c,c++ Thread model: single gcc version 4.1.1 The initial i386 compiler is GCC-4.1.1 bootstrapped on cygwin: $ gcc -v Using built-in specs. Target: i686-pc-cygwin Configured with: ../gcc-4.1.1/configure Thread model: single gcc version 4.1.1 Etienne. ----- Message d'origine ---- De : Ian Lance Taylor <[EMAIL PROTECTED]> À : Etienne Lorrain <[EMAIL PROTECTED]> Cc : gcc@gcc.gnu.org Envoyé le : Mardi, 28 Novembre 2006, 15h26mn 27s Objet : Re: PPC440, GCC-4.1.1 supposes cr{2,3,4} saved but the hard real time kernel doesn't... Etienne Lorrain <[EMAIL PROTECTED]> writes: > My problem is quite simple, the PPC has few conditions registers and some are > assumed to be saved over function calls (in my test case NU_Sleep()), but the > hard real time kernel do not save those (partial flags) registers. > This behaviour is perfectly documented in gcc-4.1.1/gcc/config/rs6000 line > 709, but is there a simple solution (maybe involving recompiling the > compiler) to force re-testing values after function calls? > I do remember the i386 option -mreg-alloc="dacbSDB", but it does not seem to > be supported for PPC; the best would be a compiler option to say "full CC > register clobber by function call". You want the -fcall-used-REG option. See the documentation. Ian ___________________________________________________________________________ Découvrez une nouvelle façon d'obtenir des réponses à toutes vos questions ! Profitez des connaissances, des opinions et des expériences des internautes sur Yahoo! Questions/Réponses http://fr.answers.yahoo.com