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]

support for float/complex math in libgcc cross-compiled


(I'm turning this into a thread of it's own, it's really the
continuation of "error compiling libgcc with ported cross-compiler"
from yesterday.)

I am porting GCC to a new target, and got the following error when
cross-compiling libgcc towards the end of the make process:

/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))

I had a very similar problem some days ago, in the __powidf2 function,
and then the solution was to define the movsf insn.

This time I'm not sure what to do though. The problem now seems to be
with complex number, but 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.

What is really needed in terms of insns or target macros to support
the various types of math of libgcc? Am I missing some insn for moving
from SFmode to SImode?


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