|
Message-ID: <20200109170002.GW30412@brightrain.aerifal.cx> Date: Thu, 9 Jan 2020 12:00:02 -0500 From: Rich Felker <dalias@...c.org> To: musl@...ts.openwall.com Subject: Re: [PATCH] math: move i386 sqrtf to C On Thu, Jan 09, 2020 at 06:55:11PM +0300, Alexander Monakov wrote: > I should have asked earlier, but - is everyone happy with this style of > expressing removal of excess precision, or should I use eval_as_float? > > +{ > + long double t; > [...] > + return (float)t; > +} musl requires C99+ with conforming floating point behavior so I think this is okay, and I'd prefer to avoid having dependency on libm.h machinery that's not strictly needed in src/math/$(ARCH) since it increases the cost of changing that machinery (requires looking at arch-specific files). My recollection was that eval_as_float is mostly an artifact of nsz's math functions supporting and being compatible with somewhat non-conforming compilers. If we want to ensure correct rounding (important for sqrt[f]) even on broken compilers (some ppl use gcc 3.x, and pcc may be broken too?) perhaps we should just do the store from asm too? Note that eval_as_float only helps if -ffloat-store is used, which is a nasty hack and also nonconforming, arguably worse than the behavior without it, so we should probably drop use of that as a fallback, and use fp_barrier[f] instead if needed. Rich
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.