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