This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

porting gcc to new arch: unrecognizable insn


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]