This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: State of m68k float emulation in lb1sf68.asm (muldf, divdf)
- From: <tm_gccmail at kloo dot net>
- To: Pavel Pisa <pisa at cmp dot felk dot cvut dot cz>
- Cc: gcc at gcc dot gnu dot org
- Date: Fri, 14 Nov 2003 11:46:01 -0800 (PST)
- Subject: Re: State of m68k float emulation in lb1sf68.asm (muldf, divdf)
On Fri, 14 Nov 2003 tm_gccmail@kloo.net wrote:
> On Fri, 14 Nov 2003, Pavel Pisa wrote:
>
> > Hello everybody,
> >
> > I have looked into lb1sf68.asm and I have found that implementation
> > is very ineffective. It can be many times improved at least for CPU32
> > targets I expect 6-20 times improvement.
> >
> > Kazu Hirata sugests to start discussion about this case
> > on GCC list.
> >
> > The core part of muldf implementation can be rewritten to use
> > something like (not fully evaluated) u64*u64->u128, this can be realized
> > by four u32*u32->u64.
>
> I believe you only need three.
>
> The result of the fourth multiply will be shifted left 64, which means
> it will not be used.
>
> Toshi
Oh wait, never mind. I thought you meant u64*u64->u64.
I don't think you need u64*u64->u128 anyway. IEEE754 DFmode only has 54
bits of fraction, so the extra precision is wasted.
Toshi