[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MiNT] gmp test fails



Miro Kropacek wrote:
    fdlibm or pml ?

default from easymint, i.e. fdlibm I guess.

This is what I feared from a long time... the libm issues.

Originally I used PML because I was not aware of fdlibm. As it seemed to be quite OK, I never made the effort to switch to fdlibm (yet).

When I made the objstack patch, I'm pretty sure all the tests had passed for 68000. I had compiled them with the cross-compiler and PML, then I ran them on ARAnyM through the hostfs.

I'm not sure, but I may have tried the 68020-60 version and there was failures... I don't remember well. However, I'm not sure if all the floating-point implementations are strictly equivalent, maybe there are some roundings approximations... However the gmp tests are certainly aware of that.

Some time ago I have compiled the latest POV-Ray for MiNT. I used my cross-gcc and PML, as usual. The 68000 and ColdFire version works perfectly (but PML sometimes print warnings on the screen !). The 68020-60 version produces images with very wrong colors.

POV-Ray and GMP are good examples because they heavily use the floating point functions.

Note there is a particularity on GCC for m68k. On 68000 and ColdFire, the floats are returned in d0 as usual. But on 68020+, they are returned in the FPU register fp0 ! If all the libraries are compiled with the same options and the same compiler, there is no problem. But this certainly a source of problems, and I'm sure it is the case for POV-Ray. However I have not yet investigated this issue. Note that this odd return value behaviour was here in GCC 2.95.3 for MiNT, and I kept it in GCC 4.x.

I don't know if all these problems are related.

There are not so much functions in the libm, we should make some basic tests manually, then it would be good to find a testsuite.

About the math libraries, there is one in Newlib, however I don't know if it is as much optimized as fdlibm.

--
Vincent Rivière