"David Kane" <davidfrkane@xxxxxxxxxxx> writes: > ../../../../source/gcc-3.4-20050121/gcc/libgcc2.c: In function `__mulsi3': > ../../../../source/gcc-3.4-20050121/gcc/libgcc2.c:537: error: unrecognizable > insn: > (insn 129 69 70 2 ../../../../source/gcc-3.4-20050121/gcc/libgcc2.c:531 (set > (subreg:HI (mem:SI (reg/f:HI 14 r14) [4 __w+0 S4 A16]) 0) > (reg:HI 4 r4 [54])) -1 (nil) > (nil)) > ../../../../source/gcc-3.4-20050121/gcc/libgcc2.c:537: internal compiler > error: in extract_insn, at recog.c:2083 The compiler is trying to store an HImode value in a register to memory, and it can't find an insn to do that. If HARD_REGNO_MODE_OK is going to return true for storing HImode in r4, then the compiler requires that you provide a way to store that register into memory. Either the movhi insn must be able to do this, or you must define SECONDARY_RELOAD_CLASS to tell reload to store the value into a different register which can be stored to memory. It is also possible that there is some problem with the memory address, and that it is not being recognized by GO_IF_LEGITIMATE_ADDRESS, and is not being fixed by LEGITIMIZE_RELOAD_ADDRESS. Ian