This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: gcc 4.4.0 on ARM/WinCE float problem
On Thu, 2009-07-23 at 15:06 +0200, Danny Backx wrote:
> On Thu, 2009-07-23 at 11:52 +0100, Dave Korn wrote:
> > Danny Backx wrote:
> > > On Thu, 2009-07-23 at 10:07 +0100, Dave Korn wrote:
> >
> > > Kai Ruottu wrote :
> > >> Comparing the output from some earlier working GCC with the gcc-4.4.0
> > >> output would reveal if something was wrong in preparing inputs for
> > >> the soft-float routines... Or maybe something was changed in the
> > >> soft-float routines... What if you try a 'libgcc.a' taken from some
> > >> earlier working GCC ?
> > >
> > > Did that, see below. I think this means that the stuff in libgcc.a cause
> > > the issue.
It turns out that different functions are used :
- my 4.4 implementation takes its multiply code from dp-bit.c
- the 4.1 implementation takes it from ieee754-df.S
I've now tweaked gcc/config/arm/t-wince-pe (to use _arm_muldivf3 instead
of _muldivf3 in LIB1ASMFUNCS). Then the gcc build fails (double
definitions). Worked around that by tweaking dp-bit.c .
Result :
Foo 34 12.000000 67
12 * 3 -> 36.000000
36 -> 0.000000
36 d -> 36.000000
The 12 * 3 line is different from before : it displays the expected
result now.
I guess I need to figure out how to make this work with Makefile work,
not tweaks to dp-bit.c .
Looking further ...
Danny
--
Danny Backx ; danny.backx - at - scarlet.be ; http://danny.backx.info