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

Reply via email to