Date: Sun, 16 Oct 2011 05:36:39 +0000 (UTC) From: David Schultz <das@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r226412 - head/lib/msun/src Message-ID: <201110160536.p9G5adOW047127@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201110160536.p9G5adOW047127>