I set up your patch and I get an internal error on this test program: extern void foo(int, int); extern int bar(void); int startup;
void foobar() { int i; while(1) { if (bar()) { foo(0,0); } } } Here's the error: /home/beyler/cyclops64/src/tnt/kernel/process_manager/testnode.c: In function 'foobar': /home/beyler/cyclops64/src/tnt/kernel/process_manager/testnode.c:15: internal compiler error: in insert_regs, at cse.c:1156 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. I think it's got something to do with my machine description but this only happens when the values of foo are both 0. I haven't found another case where it fails. It seems when the compiler sees two constants 0 for the register (r8 which is my first input register), it fails on the second. Somewhere between both calls, it must remove the quantity. Any ideas ? Jc