Author: das
Date: Sun Oct 16 05:36:39 2011
New Revision: 226412
URL: http://svn.freebsd.org/changeset/base/226412

Log:
  Move the macros GET_LDBL_EXPSIGN() and SET_LDBL_EXPSIGN() into
  math_private.h, so they can be used elsewhere in the math library.

Modified:
  head/lib/msun/src/e_hypotl.c
  head/lib/msun/src/math_private.h

Modified: head/lib/msun/src/e_hypotl.c
==============================================================================
--- head/lib/msun/src/e_hypotl.c        Sun Oct 16 05:36:23 2011        
(r226411)
+++ head/lib/msun/src/e_hypotl.c        Sun Oct 16 05:36:39 2011        
(r226412)
@@ -21,13 +21,6 @@ __FBSDID("$FreeBSD$");
 #include "math.h"
 #include "math_private.h"
 
-#define        GET_LDBL_EXPSIGN(i, v) do {     \
-       union IEEEl2bits uv;            \
-                                       \
-       uv.e = v;                       \
-       i = uv.xbits.expsign;           \
-} while (0)
-
 #define        GET_LDBL_MAN(h, l, v) do {      \
        union IEEEl2bits uv;            \
                                        \
@@ -36,14 +29,6 @@ __FBSDID("$FreeBSD$");
        l = uv.bits.manl;               \
 } while (0)
 
-#define        SET_LDBL_EXPSIGN(v, i) do {     \
-       union IEEEl2bits uv;            \
-                                       \
-       uv.e = v;                       \
-       uv.xbits.expsign = i;           \
-       v = uv.e;                       \
-} while (0)
-
 #undef GET_HIGH_WORD
 #define        GET_HIGH_WORD(i, v)     GET_LDBL_EXPSIGN(i, v)
 #undef SET_HIGH_WORD

Modified: head/lib/msun/src/math_private.h
==============================================================================
--- head/lib/msun/src/math_private.h    Sun Oct 16 05:36:23 2011        
(r226411)
+++ head/lib/msun/src/math_private.h    Sun Oct 16 05:36:39 2011        
(r226412)
@@ -188,6 +188,25 @@ do {                                                       
        \
   (d) = sf_u.value;                                            \
 } while (0)
 
+/* Get expsign as a 16 bit int from a long double.  */
+
+#define        GET_LDBL_EXPSIGN(i,d)                                   \
+do {                                                           \
+  union IEEEl2bits ge_u;                                       \
+  ge_u.e = (d);                                                        \
+  (i) = ge_u.xbits.expsign;                                    \
+} while (0)
+
+/* Set expsign of a long double from a 16 bit int.  */
+
+#define        SET_LDBL_EXPSIGN(d,v)                                   \
+do {                                                           \
+  union IEEEl2bits se_u;                                       \
+  se_u.e = (d);                                                        \
+  se_u.xbits.expsign = (v);                                    \
+  (d) = se_u.e;                                                        \
+} while (0)
+
 #ifdef FLT_EVAL_METHOD
 /*
  * Attempt to get strict C99 semantics for assignment with non-C99 compilers.
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to