Page MenuHomeFreeBSD

D44433.diff
No OneTemporary

D44433.diff

diff --git a/lib/msun/src/s_fma.c b/lib/msun/src/s_fma.c
--- a/lib/msun/src/s_fma.c
+++ b/lib/msun/src/s_fma.c
@@ -267,7 +267,9 @@
*/
fesetround(oround);
volatile double vzs = zs; /* XXX gcc CSE bug workaround */
- return (xy.hi + vzs + ldexp(xy.lo, spread));
+ xs = ldexp(xy.lo, spread);
+ xy.hi += vzs;
+ return (xy.hi == 0 ? xs : xy.hi + xs);
}
if (oround != FE_TONEAREST) {
diff --git a/lib/msun/src/s_fmal.c b/lib/msun/src/s_fmal.c
--- a/lib/msun/src/s_fmal.c
+++ b/lib/msun/src/s_fmal.c
@@ -248,7 +248,9 @@
*/
fesetround(oround);
volatile long double vzs = zs; /* XXX gcc CSE bug workaround */
- return (xy.hi + vzs + ldexpl(xy.lo, spread));
+ xs = ldexpl(xy.lo, spread);
+ xy.hi += vzs;
+ return (xy.hi == 0 ? xs : xy.hi + xs);
}
if (oround != FE_TONEAREST) {

File Metadata

Mime Type
text/plain
Expires
Wed, Oct 2, 3:00 PM (21 h, 32 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
13358786
Default Alt Text
D44433.diff (808 B)

Event Timeline