Move the macros GET_LDBL_EXPSIGN() and SET_LDBL_EXPSIGN() into
math_private.h, so they can be used elsewhere in the math library.
This commit is contained in:
parent
eccf8b3a30
commit
e62394861d
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=226412
@ -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
|
||||
|
@ -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.
|
||||
|
Loading…
Reference in New Issue
Block a user