Thanks a lot for your input, I think I understand some of that code better now.

I stumbled upon a solution last night, on realizing that the problem
was with the DFmode powidf2 and seeing that I had not defined the
movsf or movdf insns (because I thought I shouldn't need them, having
no HW floating point support).

Defining them solved the problem, but now I have a very similar one
with the complex arithmetic __mulsc3 function in libgcc:

/cygdrive/c/home/risc/src/gcc-4.1.2/gcc/libgcc2.c:1702: error: insn
does not satisfy its constraints:
(insn 1468 1467 1471
/cygdrive/c/home/risc/src/gcc-4.1.2/gcc/libgcc2.c:1701 (set
(mem/c/i:SF (plus:SI (mem/f/c:SI (plus:SI (reg/f:SI 29 r29)
                        (const_int -296 [0xfffffed8])) [0 D.2393+0 S4 A8])
                (const_int 4 [0x4])) [0 <result>+4 S4 A8])
        (reg:SF 0 r0 [orig:51 D.2338+4 ] [51])) 8 {movsf} (nil)
    (nil))

This time I'm not sure what to do though. Do I really have to define
complex movsc-insns? I haven't found any other ports doing that, so
I'm guessing there's something else I'm missing.

Reply via email to