Hi All, I'm porting GCC 4.4.4 to a new arch and while cross-compiling libgcc I get the following error: ../../../libgcc/../gcc/libgcc2.c: In function ‘__clzsi2’: ../../../libgcc/../gcc/libgcc2.c:716: error: unrecognizable insn: (insn 49 48 50 16 ../../../libgcc/../gcc/libgcc2.c:713 (set (reg:QI 25) (mem/s/u/j:QI (plus:SI (reg/f:SI 22) (reg:SI 23)) [0 __clz_tab S1 A8])) -1 (nil)) ../../../libgcc/../gcc/libgcc2.c:716: internal compiler error: in extract_insn, at recog.c:2048 Please submit a full bug report,
If I understand correctly it complains about a move instruction where src memory location should be (reg22+reg23). My arch defines: #define MAX_REGS_PER_ADDRESS 1 the first pseudo reg is 13 So I don't really understand why it tries to use such a pattern. My arch supports: REG->REG, REG->MEM, MEM->REG, MEM->MEM, IMM->REG, IMM->MEM (MEM can be symbol, REF+index, and IMM+index which doesn't really work now). If I write an asm code for count_leading_zero in longlong.h then it goes on but that piece of C code should compile anyway. Thanks Gabor Kerenyi