Module Name:    src
Committed By:   dsl
Date:           Fri Mar 14 22:21:32 UTC 2014

Modified Files:
        src/lib/libm/src: math_private.h

Log Message:
There is some very odd code in s_exp2.c that only works if 'double'
   values are rounded to 53 bit mantissa in teh x87 registers.
This hasn't been true since Nov 11 2013.
Forcing a store-load for 'double' in STRICT_ASSIGN() seems to fix things
  (at least enough for the few random test cases).
I suspect the code could be changed so that the number of mantissa bits
  didn't matter.


To generate a diff of this commit:
cvs rdiff -u -r1.20 -r1.21 src/lib/libm/src/math_private.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libm/src/math_private.h
diff -u src/lib/libm/src/math_private.h:1.20 src/lib/libm/src/math_private.h:1.21
--- src/lib/libm/src/math_private.h:1.20	Tue Nov 19 19:24:34 2013
+++ src/lib/libm/src/math_private.h	Fri Mar 14 22:21:31 2014
@@ -11,7 +11,7 @@
 
 /*
  * from: @(#)fdlibm.h 5.1 93/09/24
- * $NetBSD: math_private.h,v 1.20 2013/11/19 19:24:34 joerg Exp $
+ * $NetBSD: math_private.h,v 1.21 2014/03/14 22:21:31 dsl Exp $
  */
 
 #ifndef _MATH_PRIVATE_H_
@@ -185,7 +185,7 @@ do {								\
 #define	STRICT_ASSIGN(type, lval, rval) do {	\
 	volatile type __lval;			\
 						\
-	if (sizeof(type) >= sizeof(double))	\
+	if (sizeof(type) >= sizeof(long double))	\
 		(lval) = (rval);		\
 	else {					\
 		__lval = (rval);		\

Reply via email to