mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 20:40:05 +00:00
soft-fp: fix preprocessor indentation.
This commit is contained in:
parent
5560275828
commit
71b4dea7dc
11
ChangeLog
11
ChangeLog
@ -1,3 +1,14 @@
|
||||
2013-10-12 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* soft-fp/double.h: Indent preprocessor directives inside #if.
|
||||
* soft-fp/extended.h: Likewise.
|
||||
* soft-fp/op-2.h: Likewise.
|
||||
* soft-fp/op-4.h: Likewise.
|
||||
* soft-fp/op-common.h: Likewise.
|
||||
* soft-fp/quad.h: Likewise.
|
||||
* soft-fp/single.h: Likewise.
|
||||
* soft-fp/soft-fp.h: Likewise.
|
||||
|
||||
2013-10-12 Yuri Chornoivan <yurchor@ukr.net>
|
||||
|
||||
* iconv/iconv_prog.c: Fix typos.
|
||||
|
142
soft-fp/double.h
142
soft-fp/double.h
@ -31,15 +31,15 @@
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#if _FP_W_TYPE_SIZE < 32
|
||||
#error "Here's a nickel kid. Go buy yourself a real computer."
|
||||
# error "Here's a nickel kid. Go buy yourself a real computer."
|
||||
#endif
|
||||
|
||||
#if _FP_W_TYPE_SIZE < 64
|
||||
#define _FP_FRACTBITS_D (2 * _FP_W_TYPE_SIZE)
|
||||
#define _FP_FRACTBITS_DW_D (4 * _FP_W_TYPE_SIZE)
|
||||
# define _FP_FRACTBITS_D (2 * _FP_W_TYPE_SIZE)
|
||||
# define _FP_FRACTBITS_DW_D (4 * _FP_W_TYPE_SIZE)
|
||||
#else
|
||||
#define _FP_FRACTBITS_D _FP_W_TYPE_SIZE
|
||||
#define _FP_FRACTBITS_DW_D (2 * _FP_W_TYPE_SIZE)
|
||||
# define _FP_FRACTBITS_D _FP_W_TYPE_SIZE
|
||||
# define _FP_FRACTBITS_DW_D (2 * _FP_W_TYPE_SIZE)
|
||||
#endif
|
||||
|
||||
#define _FP_FRACBITS_D 53
|
||||
@ -74,101 +74,101 @@ union _FP_UNION_D
|
||||
{
|
||||
DFtype flt;
|
||||
struct _FP_STRUCT_LAYOUT {
|
||||
#if __BYTE_ORDER == __BIG_ENDIAN
|
||||
# if __BYTE_ORDER == __BIG_ENDIAN
|
||||
unsigned sign : 1;
|
||||
unsigned exp : _FP_EXPBITS_D;
|
||||
unsigned frac1 : _FP_FRACBITS_D - (_FP_IMPLBIT_D != 0) - _FP_W_TYPE_SIZE;
|
||||
unsigned frac0 : _FP_W_TYPE_SIZE;
|
||||
#else
|
||||
# else
|
||||
unsigned frac0 : _FP_W_TYPE_SIZE;
|
||||
unsigned frac1 : _FP_FRACBITS_D - (_FP_IMPLBIT_D != 0) - _FP_W_TYPE_SIZE;
|
||||
unsigned exp : _FP_EXPBITS_D;
|
||||
unsigned sign : 1;
|
||||
#endif
|
||||
# endif
|
||||
} bits __attribute__((packed));
|
||||
};
|
||||
|
||||
#define FP_DECL_D(X) _FP_DECL(2,X)
|
||||
#define FP_UNPACK_RAW_D(X,val) _FP_UNPACK_RAW_2(D,X,val)
|
||||
#define FP_UNPACK_RAW_DP(X,val) _FP_UNPACK_RAW_2_P(D,X,val)
|
||||
#define FP_PACK_RAW_D(val,X) _FP_PACK_RAW_2(D,val,X)
|
||||
#define FP_PACK_RAW_DP(val,X) \
|
||||
# define FP_DECL_D(X) _FP_DECL(2,X)
|
||||
# define FP_UNPACK_RAW_D(X,val) _FP_UNPACK_RAW_2(D,X,val)
|
||||
# define FP_UNPACK_RAW_DP(X,val) _FP_UNPACK_RAW_2_P(D,X,val)
|
||||
# define FP_PACK_RAW_D(val,X) _FP_PACK_RAW_2(D,val,X)
|
||||
# define FP_PACK_RAW_DP(val,X) \
|
||||
do { \
|
||||
if (!FP_INHIBIT_RESULTS) \
|
||||
_FP_PACK_RAW_2_P(D,val,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_UNPACK_D(X,val) \
|
||||
# define FP_UNPACK_D(X,val) \
|
||||
do { \
|
||||
_FP_UNPACK_RAW_2(D,X,val); \
|
||||
_FP_UNPACK_CANONICAL(D,2,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_UNPACK_DP(X,val) \
|
||||
# define FP_UNPACK_DP(X,val) \
|
||||
do { \
|
||||
_FP_UNPACK_RAW_2_P(D,X,val); \
|
||||
_FP_UNPACK_CANONICAL(D,2,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_UNPACK_SEMIRAW_D(X,val) \
|
||||
# define FP_UNPACK_SEMIRAW_D(X,val) \
|
||||
do { \
|
||||
_FP_UNPACK_RAW_2(D,X,val); \
|
||||
_FP_UNPACK_SEMIRAW(D,2,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_UNPACK_SEMIRAW_DP(X,val) \
|
||||
# define FP_UNPACK_SEMIRAW_DP(X,val) \
|
||||
do { \
|
||||
_FP_UNPACK_RAW_2_P(D,X,val); \
|
||||
_FP_UNPACK_SEMIRAW(D,2,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_PACK_D(val,X) \
|
||||
# define FP_PACK_D(val,X) \
|
||||
do { \
|
||||
_FP_PACK_CANONICAL(D,2,X); \
|
||||
_FP_PACK_RAW_2(D,val,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_PACK_DP(val,X) \
|
||||
# define FP_PACK_DP(val,X) \
|
||||
do { \
|
||||
_FP_PACK_CANONICAL(D,2,X); \
|
||||
if (!FP_INHIBIT_RESULTS) \
|
||||
_FP_PACK_RAW_2_P(D,val,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_PACK_SEMIRAW_D(val,X) \
|
||||
# define FP_PACK_SEMIRAW_D(val,X) \
|
||||
do { \
|
||||
_FP_PACK_SEMIRAW(D,2,X); \
|
||||
_FP_PACK_RAW_2(D,val,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_PACK_SEMIRAW_DP(val,X) \
|
||||
# define FP_PACK_SEMIRAW_DP(val,X) \
|
||||
do { \
|
||||
_FP_PACK_SEMIRAW(D,2,X); \
|
||||
if (!FP_INHIBIT_RESULTS) \
|
||||
_FP_PACK_RAW_2_P(D,val,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_ISSIGNAN_D(X) _FP_ISSIGNAN(D,2,X)
|
||||
#define FP_NEG_D(R,X) _FP_NEG(D,2,R,X)
|
||||
#define FP_ADD_D(R,X,Y) _FP_ADD(D,2,R,X,Y)
|
||||
#define FP_SUB_D(R,X,Y) _FP_SUB(D,2,R,X,Y)
|
||||
#define FP_MUL_D(R,X,Y) _FP_MUL(D,2,R,X,Y)
|
||||
#define FP_DIV_D(R,X,Y) _FP_DIV(D,2,R,X,Y)
|
||||
#define FP_SQRT_D(R,X) _FP_SQRT(D,2,R,X)
|
||||
#define _FP_SQRT_MEAT_D(R,S,T,X,Q) _FP_SQRT_MEAT_2(R,S,T,X,Q)
|
||||
#define FP_FMA_D(R,X,Y,Z) _FP_FMA(D,2,4,R,X,Y,Z)
|
||||
# define FP_ISSIGNAN_D(X) _FP_ISSIGNAN(D,2,X)
|
||||
# define FP_NEG_D(R,X) _FP_NEG(D,2,R,X)
|
||||
# define FP_ADD_D(R,X,Y) _FP_ADD(D,2,R,X,Y)
|
||||
# define FP_SUB_D(R,X,Y) _FP_SUB(D,2,R,X,Y)
|
||||
# define FP_MUL_D(R,X,Y) _FP_MUL(D,2,R,X,Y)
|
||||
# define FP_DIV_D(R,X,Y) _FP_DIV(D,2,R,X,Y)
|
||||
# define FP_SQRT_D(R,X) _FP_SQRT(D,2,R,X)
|
||||
# define _FP_SQRT_MEAT_D(R,S,T,X,Q) _FP_SQRT_MEAT_2(R,S,T,X,Q)
|
||||
# define FP_FMA_D(R,X,Y,Z) _FP_FMA(D,2,4,R,X,Y,Z)
|
||||
|
||||
#define FP_CMP_D(r,X,Y,un) _FP_CMP(D,2,r,X,Y,un)
|
||||
#define FP_CMP_EQ_D(r,X,Y) _FP_CMP_EQ(D,2,r,X,Y)
|
||||
#define FP_CMP_UNORD_D(r,X,Y) _FP_CMP_UNORD(D,2,r,X,Y)
|
||||
# define FP_CMP_D(r,X,Y,un) _FP_CMP(D,2,r,X,Y,un)
|
||||
# define FP_CMP_EQ_D(r,X,Y) _FP_CMP_EQ(D,2,r,X,Y)
|
||||
# define FP_CMP_UNORD_D(r,X,Y) _FP_CMP_UNORD(D,2,r,X,Y)
|
||||
|
||||
#define FP_TO_INT_D(r,X,rsz,rsg) _FP_TO_INT(D,2,r,X,rsz,rsg)
|
||||
#define FP_FROM_INT_D(X,r,rs,rt) _FP_FROM_INT(D,2,X,r,rs,rt)
|
||||
# define FP_TO_INT_D(r,X,rsz,rsg) _FP_TO_INT(D,2,r,X,rsz,rsg)
|
||||
# define FP_FROM_INT_D(X,r,rs,rt) _FP_FROM_INT(D,2,X,r,rs,rt)
|
||||
|
||||
#define _FP_FRAC_HIGH_D(X) _FP_FRAC_HIGH_2(X)
|
||||
#define _FP_FRAC_HIGH_RAW_D(X) _FP_FRAC_HIGH_2(X)
|
||||
# define _FP_FRAC_HIGH_D(X) _FP_FRAC_HIGH_2(X)
|
||||
# define _FP_FRAC_HIGH_RAW_D(X) _FP_FRAC_HIGH_2(X)
|
||||
|
||||
#define _FP_FRAC_HIGH_DW_D(X) _FP_FRAC_HIGH_4(X)
|
||||
# define _FP_FRAC_HIGH_DW_D(X) _FP_FRAC_HIGH_4(X)
|
||||
|
||||
#else
|
||||
|
||||
@ -176,101 +176,101 @@ union _FP_UNION_D
|
||||
{
|
||||
DFtype flt;
|
||||
struct _FP_STRUCT_LAYOUT {
|
||||
#if __BYTE_ORDER == __BIG_ENDIAN
|
||||
# if __BYTE_ORDER == __BIG_ENDIAN
|
||||
unsigned sign : 1;
|
||||
unsigned exp : _FP_EXPBITS_D;
|
||||
_FP_W_TYPE frac : _FP_FRACBITS_D - (_FP_IMPLBIT_D != 0);
|
||||
#else
|
||||
# else
|
||||
_FP_W_TYPE frac : _FP_FRACBITS_D - (_FP_IMPLBIT_D != 0);
|
||||
unsigned exp : _FP_EXPBITS_D;
|
||||
unsigned sign : 1;
|
||||
#endif
|
||||
# endif
|
||||
} bits __attribute__((packed));
|
||||
};
|
||||
|
||||
#define FP_DECL_D(X) _FP_DECL(1,X)
|
||||
#define FP_UNPACK_RAW_D(X,val) _FP_UNPACK_RAW_1(D,X,val)
|
||||
#define FP_UNPACK_RAW_DP(X,val) _FP_UNPACK_RAW_1_P(D,X,val)
|
||||
#define FP_PACK_RAW_D(val,X) _FP_PACK_RAW_1(D,val,X)
|
||||
#define FP_PACK_RAW_DP(val,X) \
|
||||
# define FP_DECL_D(X) _FP_DECL(1,X)
|
||||
# define FP_UNPACK_RAW_D(X,val) _FP_UNPACK_RAW_1(D,X,val)
|
||||
# define FP_UNPACK_RAW_DP(X,val) _FP_UNPACK_RAW_1_P(D,X,val)
|
||||
# define FP_PACK_RAW_D(val,X) _FP_PACK_RAW_1(D,val,X)
|
||||
# define FP_PACK_RAW_DP(val,X) \
|
||||
do { \
|
||||
if (!FP_INHIBIT_RESULTS) \
|
||||
_FP_PACK_RAW_1_P(D,val,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_UNPACK_D(X,val) \
|
||||
# define FP_UNPACK_D(X,val) \
|
||||
do { \
|
||||
_FP_UNPACK_RAW_1(D,X,val); \
|
||||
_FP_UNPACK_CANONICAL(D,1,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_UNPACK_DP(X,val) \
|
||||
# define FP_UNPACK_DP(X,val) \
|
||||
do { \
|
||||
_FP_UNPACK_RAW_1_P(D,X,val); \
|
||||
_FP_UNPACK_CANONICAL(D,1,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_UNPACK_SEMIRAW_D(X,val) \
|
||||
# define FP_UNPACK_SEMIRAW_D(X,val) \
|
||||
do { \
|
||||
_FP_UNPACK_RAW_1(D,X,val); \
|
||||
_FP_UNPACK_SEMIRAW(D,1,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_UNPACK_SEMIRAW_DP(X,val) \
|
||||
# define FP_UNPACK_SEMIRAW_DP(X,val) \
|
||||
do { \
|
||||
_FP_UNPACK_RAW_1_P(D,X,val); \
|
||||
_FP_UNPACK_SEMIRAW(D,1,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_PACK_D(val,X) \
|
||||
# define FP_PACK_D(val,X) \
|
||||
do { \
|
||||
_FP_PACK_CANONICAL(D,1,X); \
|
||||
_FP_PACK_RAW_1(D,val,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_PACK_DP(val,X) \
|
||||
# define FP_PACK_DP(val,X) \
|
||||
do { \
|
||||
_FP_PACK_CANONICAL(D,1,X); \
|
||||
if (!FP_INHIBIT_RESULTS) \
|
||||
_FP_PACK_RAW_1_P(D,val,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_PACK_SEMIRAW_D(val,X) \
|
||||
# define FP_PACK_SEMIRAW_D(val,X) \
|
||||
do { \
|
||||
_FP_PACK_SEMIRAW(D,1,X); \
|
||||
_FP_PACK_RAW_1(D,val,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_PACK_SEMIRAW_DP(val,X) \
|
||||
# define FP_PACK_SEMIRAW_DP(val,X) \
|
||||
do { \
|
||||
_FP_PACK_SEMIRAW(D,1,X); \
|
||||
if (!FP_INHIBIT_RESULTS) \
|
||||
_FP_PACK_RAW_1_P(D,val,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_ISSIGNAN_D(X) _FP_ISSIGNAN(D,1,X)
|
||||
#define FP_NEG_D(R,X) _FP_NEG(D,1,R,X)
|
||||
#define FP_ADD_D(R,X,Y) _FP_ADD(D,1,R,X,Y)
|
||||
#define FP_SUB_D(R,X,Y) _FP_SUB(D,1,R,X,Y)
|
||||
#define FP_MUL_D(R,X,Y) _FP_MUL(D,1,R,X,Y)
|
||||
#define FP_DIV_D(R,X,Y) _FP_DIV(D,1,R,X,Y)
|
||||
#define FP_SQRT_D(R,X) _FP_SQRT(D,1,R,X)
|
||||
#define _FP_SQRT_MEAT_D(R,S,T,X,Q) _FP_SQRT_MEAT_1(R,S,T,X,Q)
|
||||
#define FP_FMA_D(R,X,Y,Z) _FP_FMA(D,1,2,R,X,Y,Z)
|
||||
# define FP_ISSIGNAN_D(X) _FP_ISSIGNAN(D,1,X)
|
||||
# define FP_NEG_D(R,X) _FP_NEG(D,1,R,X)
|
||||
# define FP_ADD_D(R,X,Y) _FP_ADD(D,1,R,X,Y)
|
||||
# define FP_SUB_D(R,X,Y) _FP_SUB(D,1,R,X,Y)
|
||||
# define FP_MUL_D(R,X,Y) _FP_MUL(D,1,R,X,Y)
|
||||
# define FP_DIV_D(R,X,Y) _FP_DIV(D,1,R,X,Y)
|
||||
# define FP_SQRT_D(R,X) _FP_SQRT(D,1,R,X)
|
||||
# define _FP_SQRT_MEAT_D(R,S,T,X,Q) _FP_SQRT_MEAT_1(R,S,T,X,Q)
|
||||
# define FP_FMA_D(R,X,Y,Z) _FP_FMA(D,1,2,R,X,Y,Z)
|
||||
|
||||
/* The implementation of _FP_MUL_D and _FP_DIV_D should be chosen by
|
||||
the target machine. */
|
||||
|
||||
#define FP_CMP_D(r,X,Y,un) _FP_CMP(D,1,r,X,Y,un)
|
||||
#define FP_CMP_EQ_D(r,X,Y) _FP_CMP_EQ(D,1,r,X,Y)
|
||||
#define FP_CMP_UNORD_D(r,X,Y) _FP_CMP_UNORD(D,1,r,X,Y)
|
||||
# define FP_CMP_D(r,X,Y,un) _FP_CMP(D,1,r,X,Y,un)
|
||||
# define FP_CMP_EQ_D(r,X,Y) _FP_CMP_EQ(D,1,r,X,Y)
|
||||
# define FP_CMP_UNORD_D(r,X,Y) _FP_CMP_UNORD(D,1,r,X,Y)
|
||||
|
||||
#define FP_TO_INT_D(r,X,rsz,rsg) _FP_TO_INT(D,1,r,X,rsz,rsg)
|
||||
#define FP_FROM_INT_D(X,r,rs,rt) _FP_FROM_INT(D,1,X,r,rs,rt)
|
||||
# define FP_TO_INT_D(r,X,rsz,rsg) _FP_TO_INT(D,1,r,X,rsz,rsg)
|
||||
# define FP_FROM_INT_D(X,r,rs,rt) _FP_FROM_INT(D,1,X,r,rs,rt)
|
||||
|
||||
#define _FP_FRAC_HIGH_D(X) _FP_FRAC_HIGH_1(X)
|
||||
#define _FP_FRAC_HIGH_RAW_D(X) _FP_FRAC_HIGH_1(X)
|
||||
# define _FP_FRAC_HIGH_D(X) _FP_FRAC_HIGH_1(X)
|
||||
# define _FP_FRAC_HIGH_RAW_D(X) _FP_FRAC_HIGH_1(X)
|
||||
|
||||
#define _FP_FRAC_HIGH_DW_D(X) _FP_FRAC_HIGH_2(X)
|
||||
# define _FP_FRAC_HIGH_DW_D(X) _FP_FRAC_HIGH_2(X)
|
||||
|
||||
#endif /* W_TYPE_SIZE < 64 */
|
||||
|
@ -28,15 +28,15 @@
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#if _FP_W_TYPE_SIZE < 32
|
||||
#error "Here's a nickel, kid. Go buy yourself a real computer."
|
||||
# error "Here's a nickel, kid. Go buy yourself a real computer."
|
||||
#endif
|
||||
|
||||
#if _FP_W_TYPE_SIZE < 64
|
||||
#define _FP_FRACTBITS_E (4*_FP_W_TYPE_SIZE)
|
||||
#define _FP_FRACTBITS_DW_E (8*_FP_W_TYPE_SIZE)
|
||||
# define _FP_FRACTBITS_E (4*_FP_W_TYPE_SIZE)
|
||||
# define _FP_FRACTBITS_DW_E (8*_FP_W_TYPE_SIZE)
|
||||
#else
|
||||
#define _FP_FRACTBITS_E (2*_FP_W_TYPE_SIZE)
|
||||
#define _FP_FRACTBITS_DW_E (4*_FP_W_TYPE_SIZE)
|
||||
# define _FP_FRACTBITS_E (2*_FP_W_TYPE_SIZE)
|
||||
# define _FP_FRACTBITS_DW_E (4*_FP_W_TYPE_SIZE)
|
||||
#endif
|
||||
|
||||
#define _FP_FRACBITS_E 64
|
||||
@ -72,26 +72,26 @@ union _FP_UNION_E
|
||||
XFtype flt;
|
||||
struct _FP_STRUCT_LAYOUT
|
||||
{
|
||||
#if __BYTE_ORDER == __BIG_ENDIAN
|
||||
# if __BYTE_ORDER == __BIG_ENDIAN
|
||||
unsigned long pad1 : _FP_W_TYPE_SIZE;
|
||||
unsigned long pad2 : (_FP_W_TYPE_SIZE - 1 - _FP_EXPBITS_E);
|
||||
unsigned long sign : 1;
|
||||
unsigned long exp : _FP_EXPBITS_E;
|
||||
unsigned long frac1 : _FP_W_TYPE_SIZE;
|
||||
unsigned long frac0 : _FP_W_TYPE_SIZE;
|
||||
#else
|
||||
# else
|
||||
unsigned long frac0 : _FP_W_TYPE_SIZE;
|
||||
unsigned long frac1 : _FP_W_TYPE_SIZE;
|
||||
unsigned exp : _FP_EXPBITS_E;
|
||||
unsigned sign : 1;
|
||||
#endif /* not bigendian */
|
||||
# endif /* not bigendian */
|
||||
} bits __attribute__((packed));
|
||||
};
|
||||
|
||||
|
||||
#define FP_DECL_E(X) _FP_DECL(4,X)
|
||||
# define FP_DECL_E(X) _FP_DECL(4,X)
|
||||
|
||||
#define FP_UNPACK_RAW_E(X, val) \
|
||||
# define FP_UNPACK_RAW_E(X, val) \
|
||||
do { \
|
||||
union _FP_UNION_E _flo; _flo.flt = (val); \
|
||||
\
|
||||
@ -102,7 +102,7 @@ union _FP_UNION_E
|
||||
X##_s = _flo.bits.sign; \
|
||||
} while (0)
|
||||
|
||||
#define FP_UNPACK_RAW_EP(X, val) \
|
||||
# define FP_UNPACK_RAW_EP(X, val) \
|
||||
do { \
|
||||
union _FP_UNION_E *_flo = \
|
||||
(union _FP_UNION_E *)(val); \
|
||||
@ -114,7 +114,7 @@ union _FP_UNION_E
|
||||
X##_s = _flo->bits.sign; \
|
||||
} while (0)
|
||||
|
||||
#define FP_PACK_RAW_E(val, X) \
|
||||
# define FP_PACK_RAW_E(val, X) \
|
||||
do { \
|
||||
union _FP_UNION_E _flo; \
|
||||
\
|
||||
@ -128,7 +128,7 @@ union _FP_UNION_E
|
||||
(val) = _flo.flt; \
|
||||
} while (0)
|
||||
|
||||
#define FP_PACK_RAW_EP(val, X) \
|
||||
# define FP_PACK_RAW_EP(val, X) \
|
||||
do { \
|
||||
if (!FP_INHIBIT_RESULTS) \
|
||||
{ \
|
||||
@ -144,62 +144,62 @@ union _FP_UNION_E
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define FP_UNPACK_E(X,val) \
|
||||
# define FP_UNPACK_E(X,val) \
|
||||
do { \
|
||||
FP_UNPACK_RAW_E(X,val); \
|
||||
_FP_UNPACK_CANONICAL(E,4,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_UNPACK_EP(X,val) \
|
||||
# define FP_UNPACK_EP(X,val) \
|
||||
do { \
|
||||
FP_UNPACK_RAW_EP(X,val); \
|
||||
_FP_UNPACK_CANONICAL(E,4,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_UNPACK_SEMIRAW_E(X,val) \
|
||||
# define FP_UNPACK_SEMIRAW_E(X,val) \
|
||||
do { \
|
||||
FP_UNPACK_RAW_E(X,val); \
|
||||
_FP_UNPACK_SEMIRAW(E,4,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_UNPACK_SEMIRAW_EP(X,val) \
|
||||
# define FP_UNPACK_SEMIRAW_EP(X,val) \
|
||||
do { \
|
||||
FP_UNPACK_RAW_EP(X,val); \
|
||||
_FP_UNPACK_SEMIRAW(E,4,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_PACK_E(val,X) \
|
||||
# define FP_PACK_E(val,X) \
|
||||
do { \
|
||||
_FP_PACK_CANONICAL(E,4,X); \
|
||||
FP_PACK_RAW_E(val,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_PACK_EP(val,X) \
|
||||
# define FP_PACK_EP(val,X) \
|
||||
do { \
|
||||
_FP_PACK_CANONICAL(E,4,X); \
|
||||
FP_PACK_RAW_EP(val,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_PACK_SEMIRAW_E(val,X) \
|
||||
# define FP_PACK_SEMIRAW_E(val,X) \
|
||||
do { \
|
||||
_FP_PACK_SEMIRAW(E,4,X); \
|
||||
FP_PACK_RAW_E(val,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_PACK_SEMIRAW_EP(val,X) \
|
||||
# define FP_PACK_SEMIRAW_EP(val,X) \
|
||||
do { \
|
||||
_FP_PACK_SEMIRAW(E,4,X); \
|
||||
FP_PACK_RAW_EP(val,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_ISSIGNAN_E(X) _FP_ISSIGNAN(E,4,X)
|
||||
#define FP_NEG_E(R,X) _FP_NEG(E,4,R,X)
|
||||
#define FP_ADD_E(R,X,Y) _FP_ADD(E,4,R,X,Y)
|
||||
#define FP_SUB_E(R,X,Y) _FP_SUB(E,4,R,X,Y)
|
||||
#define FP_MUL_E(R,X,Y) _FP_MUL(E,4,R,X,Y)
|
||||
#define FP_DIV_E(R,X,Y) _FP_DIV(E,4,R,X,Y)
|
||||
#define FP_SQRT_E(R,X) _FP_SQRT(E,4,R,X)
|
||||
#define FP_FMA_E(R,X,Y,Z) _FP_FMA(E,4,8,R,X,Y,Z)
|
||||
# define FP_ISSIGNAN_E(X) _FP_ISSIGNAN(E,4,X)
|
||||
# define FP_NEG_E(R,X) _FP_NEG(E,4,R,X)
|
||||
# define FP_ADD_E(R,X,Y) _FP_ADD(E,4,R,X,Y)
|
||||
# define FP_SUB_E(R,X,Y) _FP_SUB(E,4,R,X,Y)
|
||||
# define FP_MUL_E(R,X,Y) _FP_MUL(E,4,R,X,Y)
|
||||
# define FP_DIV_E(R,X,Y) _FP_DIV(E,4,R,X,Y)
|
||||
# define FP_SQRT_E(R,X) _FP_SQRT(E,4,R,X)
|
||||
# define FP_FMA_E(R,X,Y,Z) _FP_FMA(E,4,8,R,X,Y,Z)
|
||||
|
||||
/*
|
||||
* Square root algorithms:
|
||||
@ -212,7 +212,7 @@ union _FP_UNION_E
|
||||
* in two UWtype registers instead of four.
|
||||
*/
|
||||
|
||||
#define _FP_SQRT_MEAT_E(R, S, T, X, q) \
|
||||
# define _FP_SQRT_MEAT_E(R, S, T, X, q) \
|
||||
do { \
|
||||
q = (_FP_W_TYPE)1 << (_FP_W_TYPE_SIZE - 1); \
|
||||
_FP_FRAC_SRL_4(X, (_FP_WORKBITS)); \
|
||||
@ -256,39 +256,39 @@ union _FP_UNION_E
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define FP_CMP_E(r,X,Y,un) _FP_CMP(E,4,r,X,Y,un)
|
||||
#define FP_CMP_EQ_E(r,X,Y) _FP_CMP_EQ(E,4,r,X,Y)
|
||||
#define FP_CMP_UNORD_E(r,X,Y) _FP_CMP_UNORD(E,4,r,X,Y)
|
||||
# define FP_CMP_E(r,X,Y,un) _FP_CMP(E,4,r,X,Y,un)
|
||||
# define FP_CMP_EQ_E(r,X,Y) _FP_CMP_EQ(E,4,r,X,Y)
|
||||
# define FP_CMP_UNORD_E(r,X,Y) _FP_CMP_UNORD(E,4,r,X,Y)
|
||||
|
||||
#define FP_TO_INT_E(r,X,rsz,rsg) _FP_TO_INT(E,4,r,X,rsz,rsg)
|
||||
#define FP_FROM_INT_E(X,r,rs,rt) _FP_FROM_INT(E,4,X,r,rs,rt)
|
||||
# define FP_TO_INT_E(r,X,rsz,rsg) _FP_TO_INT(E,4,r,X,rsz,rsg)
|
||||
# define FP_FROM_INT_E(X,r,rs,rt) _FP_FROM_INT(E,4,X,r,rs,rt)
|
||||
|
||||
#define _FP_FRAC_HIGH_E(X) (X##_f[2])
|
||||
#define _FP_FRAC_HIGH_RAW_E(X) (X##_f[1])
|
||||
# define _FP_FRAC_HIGH_E(X) (X##_f[2])
|
||||
# define _FP_FRAC_HIGH_RAW_E(X) (X##_f[1])
|
||||
|
||||
#define _FP_FRAC_HIGH_DW_E(X) (X##_f[4])
|
||||
# define _FP_FRAC_HIGH_DW_E(X) (X##_f[4])
|
||||
|
||||
#else /* not _FP_W_TYPE_SIZE < 64 */
|
||||
union _FP_UNION_E
|
||||
{
|
||||
XFtype flt;
|
||||
struct _FP_STRUCT_LAYOUT {
|
||||
#if __BYTE_ORDER == __BIG_ENDIAN
|
||||
# if __BYTE_ORDER == __BIG_ENDIAN
|
||||
_FP_W_TYPE pad : (_FP_W_TYPE_SIZE - 1 - _FP_EXPBITS_E);
|
||||
unsigned sign : 1;
|
||||
unsigned exp : _FP_EXPBITS_E;
|
||||
_FP_W_TYPE frac : _FP_W_TYPE_SIZE;
|
||||
#else
|
||||
# else
|
||||
_FP_W_TYPE frac : _FP_W_TYPE_SIZE;
|
||||
unsigned exp : _FP_EXPBITS_E;
|
||||
unsigned sign : 1;
|
||||
#endif
|
||||
# endif
|
||||
} bits;
|
||||
};
|
||||
|
||||
#define FP_DECL_E(X) _FP_DECL(2,X)
|
||||
# define FP_DECL_E(X) _FP_DECL(2,X)
|
||||
|
||||
#define FP_UNPACK_RAW_E(X, val) \
|
||||
# define FP_UNPACK_RAW_E(X, val) \
|
||||
do { \
|
||||
union _FP_UNION_E _flo; _flo.flt = (val); \
|
||||
\
|
||||
@ -298,7 +298,7 @@ union _FP_UNION_E
|
||||
X##_s = _flo.bits.sign; \
|
||||
} while (0)
|
||||
|
||||
#define FP_UNPACK_RAW_EP(X, val) \
|
||||
# define FP_UNPACK_RAW_EP(X, val) \
|
||||
do { \
|
||||
union _FP_UNION_E *_flo = \
|
||||
(union _FP_UNION_E *)(val); \
|
||||
@ -309,7 +309,7 @@ union _FP_UNION_E
|
||||
X##_s = _flo->bits.sign; \
|
||||
} while (0)
|
||||
|
||||
#define FP_PACK_RAW_E(val, X) \
|
||||
# define FP_PACK_RAW_E(val, X) \
|
||||
do { \
|
||||
union _FP_UNION_E _flo; \
|
||||
\
|
||||
@ -322,7 +322,7 @@ union _FP_UNION_E
|
||||
(val) = _flo.flt; \
|
||||
} while (0)
|
||||
|
||||
#define FP_PACK_RAW_EP(fs, val, X) \
|
||||
# define FP_PACK_RAW_EP(fs, val, X) \
|
||||
do { \
|
||||
if (!FP_INHIBIT_RESULTS) \
|
||||
{ \
|
||||
@ -338,62 +338,62 @@ union _FP_UNION_E
|
||||
} while (0)
|
||||
|
||||
|
||||
#define FP_UNPACK_E(X,val) \
|
||||
# define FP_UNPACK_E(X,val) \
|
||||
do { \
|
||||
FP_UNPACK_RAW_E(X,val); \
|
||||
_FP_UNPACK_CANONICAL(E,2,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_UNPACK_EP(X,val) \
|
||||
# define FP_UNPACK_EP(X,val) \
|
||||
do { \
|
||||
FP_UNPACK_RAW_EP(X,val); \
|
||||
_FP_UNPACK_CANONICAL(E,2,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_UNPACK_SEMIRAW_E(X,val) \
|
||||
# define FP_UNPACK_SEMIRAW_E(X,val) \
|
||||
do { \
|
||||
FP_UNPACK_RAW_E(X,val); \
|
||||
_FP_UNPACK_SEMIRAW(E,2,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_UNPACK_SEMIRAW_EP(X,val) \
|
||||
# define FP_UNPACK_SEMIRAW_EP(X,val) \
|
||||
do { \
|
||||
FP_UNPACK_RAW_EP(X,val); \
|
||||
_FP_UNPACK_SEMIRAW(E,2,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_PACK_E(val,X) \
|
||||
# define FP_PACK_E(val,X) \
|
||||
do { \
|
||||
_FP_PACK_CANONICAL(E,2,X); \
|
||||
FP_PACK_RAW_E(val,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_PACK_EP(val,X) \
|
||||
# define FP_PACK_EP(val,X) \
|
||||
do { \
|
||||
_FP_PACK_CANONICAL(E,2,X); \
|
||||
FP_PACK_RAW_EP(val,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_PACK_SEMIRAW_E(val,X) \
|
||||
# define FP_PACK_SEMIRAW_E(val,X) \
|
||||
do { \
|
||||
_FP_PACK_SEMIRAW(E,2,X); \
|
||||
FP_PACK_RAW_E(val,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_PACK_SEMIRAW_EP(val,X) \
|
||||
# define FP_PACK_SEMIRAW_EP(val,X) \
|
||||
do { \
|
||||
_FP_PACK_SEMIRAW(E,2,X); \
|
||||
FP_PACK_RAW_EP(val,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_ISSIGNAN_E(X) _FP_ISSIGNAN(E,2,X)
|
||||
#define FP_NEG_E(R,X) _FP_NEG(E,2,R,X)
|
||||
#define FP_ADD_E(R,X,Y) _FP_ADD(E,2,R,X,Y)
|
||||
#define FP_SUB_E(R,X,Y) _FP_SUB(E,2,R,X,Y)
|
||||
#define FP_MUL_E(R,X,Y) _FP_MUL(E,2,R,X,Y)
|
||||
#define FP_DIV_E(R,X,Y) _FP_DIV(E,2,R,X,Y)
|
||||
#define FP_SQRT_E(R,X) _FP_SQRT(E,2,R,X)
|
||||
#define FP_FMA_E(R,X,Y,Z) _FP_FMA(E,2,4,R,X,Y,Z)
|
||||
# define FP_ISSIGNAN_E(X) _FP_ISSIGNAN(E,2,X)
|
||||
# define FP_NEG_E(R,X) _FP_NEG(E,2,R,X)
|
||||
# define FP_ADD_E(R,X,Y) _FP_ADD(E,2,R,X,Y)
|
||||
# define FP_SUB_E(R,X,Y) _FP_SUB(E,2,R,X,Y)
|
||||
# define FP_MUL_E(R,X,Y) _FP_MUL(E,2,R,X,Y)
|
||||
# define FP_DIV_E(R,X,Y) _FP_DIV(E,2,R,X,Y)
|
||||
# define FP_SQRT_E(R,X) _FP_SQRT(E,2,R,X)
|
||||
# define FP_FMA_E(R,X,Y,Z) _FP_FMA(E,2,4,R,X,Y,Z)
|
||||
|
||||
/*
|
||||
* Square root algorithms:
|
||||
@ -403,7 +403,7 @@ union _FP_UNION_E
|
||||
* in one UWtype registers instead of two, although we don't
|
||||
* have to.
|
||||
*/
|
||||
#define _FP_SQRT_MEAT_E(R, S, T, X, q) \
|
||||
# define _FP_SQRT_MEAT_E(R, S, T, X, q) \
|
||||
do { \
|
||||
q = (_FP_W_TYPE)1 << (_FP_W_TYPE_SIZE - 1); \
|
||||
_FP_FRAC_SRL_2(X, (_FP_WORKBITS)); \
|
||||
@ -428,16 +428,16 @@ union _FP_UNION_E
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define FP_CMP_E(r,X,Y,un) _FP_CMP(E,2,r,X,Y,un)
|
||||
#define FP_CMP_EQ_E(r,X,Y) _FP_CMP_EQ(E,2,r,X,Y)
|
||||
#define FP_CMP_UNORD_E(r,X,Y) _FP_CMP_UNORD(E,2,r,X,Y)
|
||||
# define FP_CMP_E(r,X,Y,un) _FP_CMP(E,2,r,X,Y,un)
|
||||
# define FP_CMP_EQ_E(r,X,Y) _FP_CMP_EQ(E,2,r,X,Y)
|
||||
# define FP_CMP_UNORD_E(r,X,Y) _FP_CMP_UNORD(E,2,r,X,Y)
|
||||
|
||||
#define FP_TO_INT_E(r,X,rsz,rsg) _FP_TO_INT(E,2,r,X,rsz,rsg)
|
||||
#define FP_FROM_INT_E(X,r,rs,rt) _FP_FROM_INT(E,2,X,r,rs,rt)
|
||||
# define FP_TO_INT_E(r,X,rsz,rsg) _FP_TO_INT(E,2,r,X,rsz,rsg)
|
||||
# define FP_FROM_INT_E(X,r,rs,rt) _FP_FROM_INT(E,2,X,r,rs,rt)
|
||||
|
||||
#define _FP_FRAC_HIGH_E(X) (X##_f1)
|
||||
#define _FP_FRAC_HIGH_RAW_E(X) (X##_f0)
|
||||
# define _FP_FRAC_HIGH_E(X) (X##_f1)
|
||||
# define _FP_FRAC_HIGH_RAW_E(X) (X##_f0)
|
||||
|
||||
#define _FP_FRAC_HIGH_DW_E(X) (X##_f[2])
|
||||
# define _FP_FRAC_HIGH_DW_E(X) (X##_f[2])
|
||||
|
||||
#endif /* not _FP_W_TYPE_SIZE < 64 */
|
||||
|
@ -165,36 +165,37 @@
|
||||
|
||||
#if 0
|
||||
|
||||
#ifndef __FP_FRAC_ADDI_2
|
||||
#define __FP_FRAC_ADDI_2(xh, xl, i) \
|
||||
# ifndef __FP_FRAC_ADDI_2
|
||||
# define __FP_FRAC_ADDI_2(xh, xl, i) \
|
||||
(xh += ((xl += i) < i))
|
||||
#endif
|
||||
#ifndef __FP_FRAC_ADD_2
|
||||
#define __FP_FRAC_ADD_2(rh, rl, xh, xl, yh, yl) \
|
||||
# endif
|
||||
# ifndef __FP_FRAC_ADD_2
|
||||
# define __FP_FRAC_ADD_2(rh, rl, xh, xl, yh, yl) \
|
||||
(rh = xh + yh + ((rl = xl + yl) < xl))
|
||||
#endif
|
||||
#ifndef __FP_FRAC_SUB_2
|
||||
#define __FP_FRAC_SUB_2(rh, rl, xh, xl, yh, yl) \
|
||||
# endif
|
||||
# ifndef __FP_FRAC_SUB_2
|
||||
# define __FP_FRAC_SUB_2(rh, rl, xh, xl, yh, yl) \
|
||||
(rh = xh - yh - ((rl = xl - yl) > xl))
|
||||
#endif
|
||||
#ifndef __FP_FRAC_DEC_2
|
||||
#define __FP_FRAC_DEC_2(xh, xl, yh, yl) \
|
||||
# endif
|
||||
# ifndef __FP_FRAC_DEC_2
|
||||
# define __FP_FRAC_DEC_2(xh, xl, yh, yl) \
|
||||
do { \
|
||||
UWtype _t = xl; \
|
||||
xh -= yh + ((xl -= yl) > _t); \
|
||||
} while (0)
|
||||
#endif
|
||||
# endif
|
||||
|
||||
#else
|
||||
|
||||
#undef __FP_FRAC_ADDI_2
|
||||
#define __FP_FRAC_ADDI_2(xh, xl, i) add_ssaaaa(xh, xl, xh, xl, 0, i)
|
||||
#undef __FP_FRAC_ADD_2
|
||||
#define __FP_FRAC_ADD_2 add_ssaaaa
|
||||
#undef __FP_FRAC_SUB_2
|
||||
#define __FP_FRAC_SUB_2 sub_ddmmss
|
||||
#undef __FP_FRAC_DEC_2
|
||||
#define __FP_FRAC_DEC_2(xh, xl, yh, yl) sub_ddmmss(xh, xl, xh, xl, yh, yl)
|
||||
# undef __FP_FRAC_ADDI_2
|
||||
# define __FP_FRAC_ADDI_2(xh, xl, i) add_ssaaaa(xh, xl, xh, xl, 0, i)
|
||||
# undef __FP_FRAC_ADD_2
|
||||
# define __FP_FRAC_ADD_2 add_ssaaaa
|
||||
# undef __FP_FRAC_SUB_2
|
||||
# define __FP_FRAC_SUB_2 sub_ddmmss
|
||||
# undef __FP_FRAC_DEC_2
|
||||
# define __FP_FRAC_DEC_2(xh, xl, yh, yl) \
|
||||
sub_ddmmss(xh, xl, xh, xl, yh, yl)
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -537,7 +537,7 @@
|
||||
(X##_f[3] = I3, X##_f[2] = I2, X##_f[1] = I1, X##_f[0] = I0)
|
||||
|
||||
#ifndef __FP_FRAC_ADD_3
|
||||
#define __FP_FRAC_ADD_3(r2,r1,r0,x2,x1,x0,y2,y1,y0) \
|
||||
# define __FP_FRAC_ADD_3(r2,r1,r0,x2,x1,x0,y2,y1,y0) \
|
||||
do { \
|
||||
_FP_W_TYPE __FP_FRAC_ADD_3_c1, __FP_FRAC_ADD_3_c2; \
|
||||
r0 = x0 + y0; \
|
||||
@ -551,7 +551,7 @@
|
||||
#endif
|
||||
|
||||
#ifndef __FP_FRAC_ADD_4
|
||||
#define __FP_FRAC_ADD_4(r3,r2,r1,r0,x3,x2,x1,x0,y3,y2,y1,y0) \
|
||||
# define __FP_FRAC_ADD_4(r3,r2,r1,r0,x3,x2,x1,x0,y3,y2,y1,y0) \
|
||||
do { \
|
||||
_FP_W_TYPE _c1, _c2, _c3; \
|
||||
r0 = x0 + y0; \
|
||||
@ -569,7 +569,7 @@
|
||||
#endif
|
||||
|
||||
#ifndef __FP_FRAC_SUB_3
|
||||
#define __FP_FRAC_SUB_3(r2,r1,r0,x2,x1,x0,y2,y1,y0) \
|
||||
# define __FP_FRAC_SUB_3(r2,r1,r0,x2,x1,x0,y2,y1,y0) \
|
||||
do { \
|
||||
_FP_W_TYPE _c1, _c2; \
|
||||
r0 = x0 - y0; \
|
||||
@ -583,7 +583,7 @@
|
||||
#endif
|
||||
|
||||
#ifndef __FP_FRAC_SUB_4
|
||||
#define __FP_FRAC_SUB_4(r3,r2,r1,r0,x3,x2,x1,x0,y3,y2,y1,y0) \
|
||||
# define __FP_FRAC_SUB_4(r3,r2,r1,r0,x3,x2,x1,x0,y3,y2,y1,y0) \
|
||||
do { \
|
||||
_FP_W_TYPE _c1, _c2, _c3; \
|
||||
r0 = x0 - y0; \
|
||||
@ -601,7 +601,7 @@
|
||||
#endif
|
||||
|
||||
#ifndef __FP_FRAC_DEC_3
|
||||
#define __FP_FRAC_DEC_3(x2,x1,x0,y2,y1,y0) \
|
||||
# define __FP_FRAC_DEC_3(x2,x1,x0,y2,y1,y0) \
|
||||
do { \
|
||||
UWtype _t0, _t1, _t2; \
|
||||
_t0 = x0, _t1 = x1, _t2 = x2; \
|
||||
@ -610,7 +610,7 @@
|
||||
#endif
|
||||
|
||||
#ifndef __FP_FRAC_DEC_4
|
||||
#define __FP_FRAC_DEC_4(x3,x2,x1,x0,y3,y2,y1,y0) \
|
||||
# define __FP_FRAC_DEC_4(x3,x2,x1,x0,y3,y2,y1,y0) \
|
||||
do { \
|
||||
UWtype _t0, _t1, _t2, _t3; \
|
||||
_t0 = x0, _t1 = x1, _t2 = x2, _t3 = x3; \
|
||||
@ -619,7 +619,7 @@
|
||||
#endif
|
||||
|
||||
#ifndef __FP_FRAC_ADDI_4
|
||||
#define __FP_FRAC_ADDI_4(x3,x2,x1,x0,i) \
|
||||
# define __FP_FRAC_ADDI_4(x3,x2,x1,x0,i) \
|
||||
do { \
|
||||
UWtype _t; \
|
||||
_t = ((x0 += i) < i); \
|
||||
|
@ -1553,7 +1553,7 @@ do { \
|
||||
|
||||
#ifndef __FP_CLZ
|
||||
/* GCC 3.4 and later provide the builtins for us. */
|
||||
#define __FP_CLZ(r, x) \
|
||||
# define __FP_CLZ(r, x) \
|
||||
do { \
|
||||
if (sizeof (_FP_W_TYPE) == sizeof (unsigned int)) \
|
||||
r = __builtin_clz (x); \
|
||||
|
142
soft-fp/quad.h
142
soft-fp/quad.h
@ -31,15 +31,15 @@
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#if _FP_W_TYPE_SIZE < 32
|
||||
#error "Here's a nickel, kid. Go buy yourself a real computer."
|
||||
# error "Here's a nickel, kid. Go buy yourself a real computer."
|
||||
#endif
|
||||
|
||||
#if _FP_W_TYPE_SIZE < 64
|
||||
#define _FP_FRACTBITS_Q (4*_FP_W_TYPE_SIZE)
|
||||
#define _FP_FRACTBITS_DW_Q (8*_FP_W_TYPE_SIZE)
|
||||
# define _FP_FRACTBITS_Q (4*_FP_W_TYPE_SIZE)
|
||||
# define _FP_FRACTBITS_DW_Q (8*_FP_W_TYPE_SIZE)
|
||||
#else
|
||||
#define _FP_FRACTBITS_Q (2*_FP_W_TYPE_SIZE)
|
||||
#define _FP_FRACTBITS_DW_Q (4*_FP_W_TYPE_SIZE)
|
||||
# define _FP_FRACTBITS_Q (2*_FP_W_TYPE_SIZE)
|
||||
# define _FP_FRACTBITS_DW_Q (4*_FP_W_TYPE_SIZE)
|
||||
#endif
|
||||
|
||||
#define _FP_FRACBITS_Q 113
|
||||
@ -75,106 +75,106 @@ union _FP_UNION_Q
|
||||
TFtype flt;
|
||||
struct _FP_STRUCT_LAYOUT
|
||||
{
|
||||
#if __BYTE_ORDER == __BIG_ENDIAN
|
||||
# if __BYTE_ORDER == __BIG_ENDIAN
|
||||
unsigned sign : 1;
|
||||
unsigned exp : _FP_EXPBITS_Q;
|
||||
unsigned long frac3 : _FP_FRACBITS_Q - (_FP_IMPLBIT_Q != 0)-(_FP_W_TYPE_SIZE * 3);
|
||||
unsigned long frac2 : _FP_W_TYPE_SIZE;
|
||||
unsigned long frac1 : _FP_W_TYPE_SIZE;
|
||||
unsigned long frac0 : _FP_W_TYPE_SIZE;
|
||||
#else
|
||||
# else
|
||||
unsigned long frac0 : _FP_W_TYPE_SIZE;
|
||||
unsigned long frac1 : _FP_W_TYPE_SIZE;
|
||||
unsigned long frac2 : _FP_W_TYPE_SIZE;
|
||||
unsigned long frac3 : _FP_FRACBITS_Q - (_FP_IMPLBIT_Q != 0)-(_FP_W_TYPE_SIZE * 3);
|
||||
unsigned exp : _FP_EXPBITS_Q;
|
||||
unsigned sign : 1;
|
||||
#endif /* not bigendian */
|
||||
# endif /* not bigendian */
|
||||
} bits __attribute__((packed));
|
||||
};
|
||||
|
||||
|
||||
#define FP_DECL_Q(X) _FP_DECL(4,X)
|
||||
#define FP_UNPACK_RAW_Q(X,val) _FP_UNPACK_RAW_4(Q,X,val)
|
||||
#define FP_UNPACK_RAW_QP(X,val) _FP_UNPACK_RAW_4_P(Q,X,val)
|
||||
#define FP_PACK_RAW_Q(val,X) _FP_PACK_RAW_4(Q,val,X)
|
||||
#define FP_PACK_RAW_QP(val,X) \
|
||||
# define FP_DECL_Q(X) _FP_DECL(4,X)
|
||||
# define FP_UNPACK_RAW_Q(X,val) _FP_UNPACK_RAW_4(Q,X,val)
|
||||
# define FP_UNPACK_RAW_QP(X,val) _FP_UNPACK_RAW_4_P(Q,X,val)
|
||||
# define FP_PACK_RAW_Q(val,X) _FP_PACK_RAW_4(Q,val,X)
|
||||
# define FP_PACK_RAW_QP(val,X) \
|
||||
do { \
|
||||
if (!FP_INHIBIT_RESULTS) \
|
||||
_FP_PACK_RAW_4_P(Q,val,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_UNPACK_Q(X,val) \
|
||||
# define FP_UNPACK_Q(X,val) \
|
||||
do { \
|
||||
_FP_UNPACK_RAW_4(Q,X,val); \
|
||||
_FP_UNPACK_CANONICAL(Q,4,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_UNPACK_QP(X,val) \
|
||||
# define FP_UNPACK_QP(X,val) \
|
||||
do { \
|
||||
_FP_UNPACK_RAW_4_P(Q,X,val); \
|
||||
_FP_UNPACK_CANONICAL(Q,4,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_UNPACK_SEMIRAW_Q(X,val) \
|
||||
# define FP_UNPACK_SEMIRAW_Q(X,val) \
|
||||
do { \
|
||||
_FP_UNPACK_RAW_4(Q,X,val); \
|
||||
_FP_UNPACK_SEMIRAW(Q,4,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_UNPACK_SEMIRAW_QP(X,val) \
|
||||
# define FP_UNPACK_SEMIRAW_QP(X,val) \
|
||||
do { \
|
||||
_FP_UNPACK_RAW_4_P(Q,X,val); \
|
||||
_FP_UNPACK_SEMIRAW(Q,4,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_PACK_Q(val,X) \
|
||||
# define FP_PACK_Q(val,X) \
|
||||
do { \
|
||||
_FP_PACK_CANONICAL(Q,4,X); \
|
||||
_FP_PACK_RAW_4(Q,val,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_PACK_QP(val,X) \
|
||||
# define FP_PACK_QP(val,X) \
|
||||
do { \
|
||||
_FP_PACK_CANONICAL(Q,4,X); \
|
||||
if (!FP_INHIBIT_RESULTS) \
|
||||
_FP_PACK_RAW_4_P(Q,val,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_PACK_SEMIRAW_Q(val,X) \
|
||||
# define FP_PACK_SEMIRAW_Q(val,X) \
|
||||
do { \
|
||||
_FP_PACK_SEMIRAW(Q,4,X); \
|
||||
_FP_PACK_RAW_4(Q,val,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_PACK_SEMIRAW_QP(val,X) \
|
||||
# define FP_PACK_SEMIRAW_QP(val,X) \
|
||||
do { \
|
||||
_FP_PACK_SEMIRAW(Q,4,X); \
|
||||
if (!FP_INHIBIT_RESULTS) \
|
||||
_FP_PACK_RAW_4_P(Q,val,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_ISSIGNAN_Q(X) _FP_ISSIGNAN(Q,4,X)
|
||||
#define FP_NEG_Q(R,X) _FP_NEG(Q,4,R,X)
|
||||
#define FP_ADD_Q(R,X,Y) _FP_ADD(Q,4,R,X,Y)
|
||||
#define FP_SUB_Q(R,X,Y) _FP_SUB(Q,4,R,X,Y)
|
||||
#define FP_MUL_Q(R,X,Y) _FP_MUL(Q,4,R,X,Y)
|
||||
#define FP_DIV_Q(R,X,Y) _FP_DIV(Q,4,R,X,Y)
|
||||
#define FP_SQRT_Q(R,X) _FP_SQRT(Q,4,R,X)
|
||||
#define _FP_SQRT_MEAT_Q(R,S,T,X,Q) _FP_SQRT_MEAT_4(R,S,T,X,Q)
|
||||
#define FP_FMA_Q(R,X,Y,Z) _FP_FMA(Q,4,8,R,X,Y,Z)
|
||||
# define FP_ISSIGNAN_Q(X) _FP_ISSIGNAN(Q,4,X)
|
||||
# define FP_NEG_Q(R,X) _FP_NEG(Q,4,R,X)
|
||||
# define FP_ADD_Q(R,X,Y) _FP_ADD(Q,4,R,X,Y)
|
||||
# define FP_SUB_Q(R,X,Y) _FP_SUB(Q,4,R,X,Y)
|
||||
# define FP_MUL_Q(R,X,Y) _FP_MUL(Q,4,R,X,Y)
|
||||
# define FP_DIV_Q(R,X,Y) _FP_DIV(Q,4,R,X,Y)
|
||||
# define FP_SQRT_Q(R,X) _FP_SQRT(Q,4,R,X)
|
||||
# define _FP_SQRT_MEAT_Q(R,S,T,X,Q) _FP_SQRT_MEAT_4(R,S,T,X,Q)
|
||||
# define FP_FMA_Q(R,X,Y,Z) _FP_FMA(Q,4,8,R,X,Y,Z)
|
||||
|
||||
#define FP_CMP_Q(r,X,Y,un) _FP_CMP(Q,4,r,X,Y,un)
|
||||
#define FP_CMP_EQ_Q(r,X,Y) _FP_CMP_EQ(Q,4,r,X,Y)
|
||||
#define FP_CMP_UNORD_Q(r,X,Y) _FP_CMP_UNORD(Q,4,r,X,Y)
|
||||
# define FP_CMP_Q(r,X,Y,un) _FP_CMP(Q,4,r,X,Y,un)
|
||||
# define FP_CMP_EQ_Q(r,X,Y) _FP_CMP_EQ(Q,4,r,X,Y)
|
||||
# define FP_CMP_UNORD_Q(r,X,Y) _FP_CMP_UNORD(Q,4,r,X,Y)
|
||||
|
||||
#define FP_TO_INT_Q(r,X,rsz,rsg) _FP_TO_INT(Q,4,r,X,rsz,rsg)
|
||||
#define FP_FROM_INT_Q(X,r,rs,rt) _FP_FROM_INT(Q,4,X,r,rs,rt)
|
||||
# define FP_TO_INT_Q(r,X,rsz,rsg) _FP_TO_INT(Q,4,r,X,rsz,rsg)
|
||||
# define FP_FROM_INT_Q(X,r,rs,rt) _FP_FROM_INT(Q,4,X,r,rs,rt)
|
||||
|
||||
#define _FP_FRAC_HIGH_Q(X) _FP_FRAC_HIGH_4(X)
|
||||
#define _FP_FRAC_HIGH_RAW_Q(X) _FP_FRAC_HIGH_4(X)
|
||||
# define _FP_FRAC_HIGH_Q(X) _FP_FRAC_HIGH_4(X)
|
||||
# define _FP_FRAC_HIGH_RAW_Q(X) _FP_FRAC_HIGH_4(X)
|
||||
|
||||
#define _FP_FRAC_HIGH_DW_Q(X) _FP_FRAC_HIGH_8(X)
|
||||
# define _FP_FRAC_HIGH_DW_Q(X) _FP_FRAC_HIGH_8(X)
|
||||
|
||||
#else /* not _FP_W_TYPE_SIZE < 64 */
|
||||
union _FP_UNION_Q
|
||||
@ -184,100 +184,100 @@ union _FP_UNION_Q
|
||||
_FP_W_TYPE a, b;
|
||||
} longs;
|
||||
struct _FP_STRUCT_LAYOUT {
|
||||
#if __BYTE_ORDER == __BIG_ENDIAN
|
||||
# if __BYTE_ORDER == __BIG_ENDIAN
|
||||
unsigned sign : 1;
|
||||
unsigned exp : _FP_EXPBITS_Q;
|
||||
_FP_W_TYPE frac1 : _FP_FRACBITS_Q - (_FP_IMPLBIT_Q != 0) - _FP_W_TYPE_SIZE;
|
||||
_FP_W_TYPE frac0 : _FP_W_TYPE_SIZE;
|
||||
#else
|
||||
# else
|
||||
_FP_W_TYPE frac0 : _FP_W_TYPE_SIZE;
|
||||
_FP_W_TYPE frac1 : _FP_FRACBITS_Q - (_FP_IMPLBIT_Q != 0) - _FP_W_TYPE_SIZE;
|
||||
unsigned exp : _FP_EXPBITS_Q;
|
||||
unsigned sign : 1;
|
||||
#endif
|
||||
# endif
|
||||
} bits;
|
||||
};
|
||||
|
||||
#define FP_DECL_Q(X) _FP_DECL(2,X)
|
||||
#define FP_UNPACK_RAW_Q(X,val) _FP_UNPACK_RAW_2(Q,X,val)
|
||||
#define FP_UNPACK_RAW_QP(X,val) _FP_UNPACK_RAW_2_P(Q,X,val)
|
||||
#define FP_PACK_RAW_Q(val,X) _FP_PACK_RAW_2(Q,val,X)
|
||||
#define FP_PACK_RAW_QP(val,X) \
|
||||
# define FP_DECL_Q(X) _FP_DECL(2,X)
|
||||
# define FP_UNPACK_RAW_Q(X,val) _FP_UNPACK_RAW_2(Q,X,val)
|
||||
# define FP_UNPACK_RAW_QP(X,val) _FP_UNPACK_RAW_2_P(Q,X,val)
|
||||
# define FP_PACK_RAW_Q(val,X) _FP_PACK_RAW_2(Q,val,X)
|
||||
# define FP_PACK_RAW_QP(val,X) \
|
||||
do { \
|
||||
if (!FP_INHIBIT_RESULTS) \
|
||||
_FP_PACK_RAW_2_P(Q,val,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_UNPACK_Q(X,val) \
|
||||
# define FP_UNPACK_Q(X,val) \
|
||||
do { \
|
||||
_FP_UNPACK_RAW_2(Q,X,val); \
|
||||
_FP_UNPACK_CANONICAL(Q,2,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_UNPACK_QP(X,val) \
|
||||
# define FP_UNPACK_QP(X,val) \
|
||||
do { \
|
||||
_FP_UNPACK_RAW_2_P(Q,X,val); \
|
||||
_FP_UNPACK_CANONICAL(Q,2,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_UNPACK_SEMIRAW_Q(X,val) \
|
||||
# define FP_UNPACK_SEMIRAW_Q(X,val) \
|
||||
do { \
|
||||
_FP_UNPACK_RAW_2(Q,X,val); \
|
||||
_FP_UNPACK_SEMIRAW(Q,2,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_UNPACK_SEMIRAW_QP(X,val) \
|
||||
# define FP_UNPACK_SEMIRAW_QP(X,val) \
|
||||
do { \
|
||||
_FP_UNPACK_RAW_2_P(Q,X,val); \
|
||||
_FP_UNPACK_SEMIRAW(Q,2,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_PACK_Q(val,X) \
|
||||
# define FP_PACK_Q(val,X) \
|
||||
do { \
|
||||
_FP_PACK_CANONICAL(Q,2,X); \
|
||||
_FP_PACK_RAW_2(Q,val,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_PACK_QP(val,X) \
|
||||
# define FP_PACK_QP(val,X) \
|
||||
do { \
|
||||
_FP_PACK_CANONICAL(Q,2,X); \
|
||||
if (!FP_INHIBIT_RESULTS) \
|
||||
_FP_PACK_RAW_2_P(Q,val,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_PACK_SEMIRAW_Q(val,X) \
|
||||
# define FP_PACK_SEMIRAW_Q(val,X) \
|
||||
do { \
|
||||
_FP_PACK_SEMIRAW(Q,2,X); \
|
||||
_FP_PACK_RAW_2(Q,val,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_PACK_SEMIRAW_QP(val,X) \
|
||||
# define FP_PACK_SEMIRAW_QP(val,X) \
|
||||
do { \
|
||||
_FP_PACK_SEMIRAW(Q,2,X); \
|
||||
if (!FP_INHIBIT_RESULTS) \
|
||||
_FP_PACK_RAW_2_P(Q,val,X); \
|
||||
} while (0)
|
||||
|
||||
#define FP_ISSIGNAN_Q(X) _FP_ISSIGNAN(Q,2,X)
|
||||
#define FP_NEG_Q(R,X) _FP_NEG(Q,2,R,X)
|
||||
#define FP_ADD_Q(R,X,Y) _FP_ADD(Q,2,R,X,Y)
|
||||
#define FP_SUB_Q(R,X,Y) _FP_SUB(Q,2,R,X,Y)
|
||||
#define FP_MUL_Q(R,X,Y) _FP_MUL(Q,2,R,X,Y)
|
||||
#define FP_DIV_Q(R,X,Y) _FP_DIV(Q,2,R,X,Y)
|
||||
#define FP_SQRT_Q(R,X) _FP_SQRT(Q,2,R,X)
|
||||
#define _FP_SQRT_MEAT_Q(R,S,T,X,Q) _FP_SQRT_MEAT_2(R,S,T,X,Q)
|
||||
#define FP_FMA_Q(R,X,Y,Z) _FP_FMA(Q,2,4,R,X,Y,Z)
|
||||
# define FP_ISSIGNAN_Q(X) _FP_ISSIGNAN(Q,2,X)
|
||||
# define FP_NEG_Q(R,X) _FP_NEG(Q,2,R,X)
|
||||
# define FP_ADD_Q(R,X,Y) _FP_ADD(Q,2,R,X,Y)
|
||||
# define FP_SUB_Q(R,X,Y) _FP_SUB(Q,2,R,X,Y)
|
||||
# define FP_MUL_Q(R,X,Y) _FP_MUL(Q,2,R,X,Y)
|
||||
# define FP_DIV_Q(R,X,Y) _FP_DIV(Q,2,R,X,Y)
|
||||
# define FP_SQRT_Q(R,X) _FP_SQRT(Q,2,R,X)
|
||||
# define _FP_SQRT_MEAT_Q(R,S,T,X,Q) _FP_SQRT_MEAT_2(R,S,T,X,Q)
|
||||
# define FP_FMA_Q(R,X,Y,Z) _FP_FMA(Q,2,4,R,X,Y,Z)
|
||||
|
||||
#define FP_CMP_Q(r,X,Y,un) _FP_CMP(Q,2,r,X,Y,un)
|
||||
#define FP_CMP_EQ_Q(r,X,Y) _FP_CMP_EQ(Q,2,r,X,Y)
|
||||
#define FP_CMP_UNORD_Q(r,X,Y) _FP_CMP_UNORD(Q,2,r,X,Y)
|
||||
# define FP_CMP_Q(r,X,Y,un) _FP_CMP(Q,2,r,X,Y,un)
|
||||
# define FP_CMP_EQ_Q(r,X,Y) _FP_CMP_EQ(Q,2,r,X,Y)
|
||||
# define FP_CMP_UNORD_Q(r,X,Y) _FP_CMP_UNORD(Q,2,r,X,Y)
|
||||
|
||||
#define FP_TO_INT_Q(r,X,rsz,rsg) _FP_TO_INT(Q,2,r,X,rsz,rsg)
|
||||
#define FP_FROM_INT_Q(X,r,rs,rt) _FP_FROM_INT(Q,2,X,r,rs,rt)
|
||||
# define FP_TO_INT_Q(r,X,rsz,rsg) _FP_TO_INT(Q,2,r,X,rsz,rsg)
|
||||
# define FP_FROM_INT_Q(X,r,rs,rt) _FP_FROM_INT(Q,2,X,r,rs,rt)
|
||||
|
||||
#define _FP_FRAC_HIGH_Q(X) _FP_FRAC_HIGH_2(X)
|
||||
#define _FP_FRAC_HIGH_RAW_Q(X) _FP_FRAC_HIGH_2(X)
|
||||
# define _FP_FRAC_HIGH_Q(X) _FP_FRAC_HIGH_2(X)
|
||||
# define _FP_FRAC_HIGH_RAW_Q(X) _FP_FRAC_HIGH_2(X)
|
||||
|
||||
#define _FP_FRAC_HIGH_DW_Q(X) _FP_FRAC_HIGH_4(X)
|
||||
# define _FP_FRAC_HIGH_DW_Q(X) _FP_FRAC_HIGH_4(X)
|
||||
|
||||
#endif /* not _FP_W_TYPE_SIZE < 64 */
|
||||
|
@ -31,7 +31,7 @@
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#if _FP_W_TYPE_SIZE < 32
|
||||
#error "Here's a nickel kid. Go buy yourself a real computer."
|
||||
# error "Here's a nickel kid. Go buy yourself a real computer."
|
||||
#endif
|
||||
|
||||
#define _FP_FRACTBITS_S _FP_W_TYPE_SIZE
|
||||
|
@ -33,18 +33,18 @@
|
||||
#define SOFT_FP_H
|
||||
|
||||
#ifdef _LIBC
|
||||
#include <sfp-machine.h>
|
||||
# include <sfp-machine.h>
|
||||
#else
|
||||
#include "sfp-machine.h"
|
||||
# include "sfp-machine.h"
|
||||
#endif
|
||||
|
||||
/* Allow sfp-machine to have its own byte order definitions. */
|
||||
#ifndef __BYTE_ORDER
|
||||
#ifdef _LIBC
|
||||
#include <endian.h>
|
||||
#else
|
||||
#error "endianness not defined by sfp-machine.h"
|
||||
#endif
|
||||
# ifdef _LIBC
|
||||
# include <endian.h>
|
||||
# else
|
||||
# error "endianness not defined by sfp-machine.h"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#define _FP_WORKBITS 3
|
||||
@ -65,22 +65,22 @@
|
||||
|
||||
/* By default don't care about exceptions. */
|
||||
#ifndef FP_EX_INVALID
|
||||
#define FP_EX_INVALID 0
|
||||
# define FP_EX_INVALID 0
|
||||
#endif
|
||||
#ifndef FP_EX_OVERFLOW
|
||||
#define FP_EX_OVERFLOW 0
|
||||
# define FP_EX_OVERFLOW 0
|
||||
#endif
|
||||
#ifndef FP_EX_UNDERFLOW
|
||||
#define FP_EX_UNDERFLOW 0
|
||||
# define FP_EX_UNDERFLOW 0
|
||||
#endif
|
||||
#ifndef FP_EX_DIVZERO
|
||||
#define FP_EX_DIVZERO 0
|
||||
# define FP_EX_DIVZERO 0
|
||||
#endif
|
||||
#ifndef FP_EX_INEXACT
|
||||
#define FP_EX_INEXACT 0
|
||||
# define FP_EX_INEXACT 0
|
||||
#endif
|
||||
#ifndef FP_EX_DENORM
|
||||
#define FP_EX_DENORM 0
|
||||
# define FP_EX_DENORM 0
|
||||
#endif
|
||||
|
||||
/* _FP_STRUCT_LAYOUT may be defined as an attribute to determine the
|
||||
@ -90,31 +90,31 @@
|
||||
differences in how consecutive bit-fields are laid out from the
|
||||
default expected by soft-fp. */
|
||||
#ifndef _FP_STRUCT_LAYOUT
|
||||
#define _FP_STRUCT_LAYOUT
|
||||
# define _FP_STRUCT_LAYOUT
|
||||
#endif
|
||||
|
||||
#ifdef _FP_DECL_EX
|
||||
#define FP_DECL_EX \
|
||||
# define FP_DECL_EX \
|
||||
int _fex = 0; \
|
||||
_FP_DECL_EX
|
||||
#else
|
||||
#define FP_DECL_EX int _fex = 0
|
||||
# define FP_DECL_EX int _fex = 0
|
||||
#endif
|
||||
|
||||
/* Initialize any machine-specific state used in FP_ROUNDMODE,
|
||||
FP_TRAPPING_EXCEPTIONS or FP_HANDLE_EXCEPTIONS. */
|
||||
#ifndef FP_INIT_ROUNDMODE
|
||||
#define FP_INIT_ROUNDMODE do {} while (0)
|
||||
# define FP_INIT_ROUNDMODE do {} while (0)
|
||||
#endif
|
||||
|
||||
/* Initialize any machine-specific state used in
|
||||
FP_HANDLE_EXCEPTIONS. */
|
||||
#ifndef FP_INIT_EXCEPTIONS
|
||||
#define FP_INIT_EXCEPTIONS FP_INIT_ROUNDMODE
|
||||
# define FP_INIT_EXCEPTIONS FP_INIT_ROUNDMODE
|
||||
#endif
|
||||
|
||||
#ifndef FP_HANDLE_EXCEPTIONS
|
||||
#define FP_HANDLE_EXCEPTIONS do {} while (0)
|
||||
# define FP_HANDLE_EXCEPTIONS do {} while (0)
|
||||
#endif
|
||||
|
||||
#ifndef FP_INHIBIT_RESULTS
|
||||
@ -123,7 +123,7 @@
|
||||
* check if some exceptions are unmasked
|
||||
* and inhibit it in such a case.
|
||||
*/
|
||||
#define FP_INHIBIT_RESULTS 0
|
||||
# define FP_INHIBIT_RESULTS 0
|
||||
#endif
|
||||
|
||||
#define FP_SET_EXCEPTION(ex) \
|
||||
@ -139,7 +139,7 @@
|
||||
(_fex)
|
||||
|
||||
#ifndef FP_TRAPPING_EXCEPTIONS
|
||||
#define FP_TRAPPING_EXCEPTIONS 0
|
||||
# define FP_TRAPPING_EXCEPTIONS 0
|
||||
#endif
|
||||
|
||||
/* A file using soft-fp may define FP_NO_EXCEPTIONS before including
|
||||
@ -152,17 +152,17 @@
|
||||
_FP_FROM_INT and the macros it calls). */
|
||||
#ifdef FP_NO_EXCEPTIONS
|
||||
|
||||
#undef FP_SET_EXCEPTION
|
||||
#define FP_SET_EXCEPTION(ex) do {} while (0)
|
||||
# undef FP_SET_EXCEPTION
|
||||
# define FP_SET_EXCEPTION(ex) do {} while (0)
|
||||
|
||||
#undef FP_CUR_EXCEPTIONS
|
||||
#define FP_CUR_EXCEPTIONS 0
|
||||
# undef FP_CUR_EXCEPTIONS
|
||||
# define FP_CUR_EXCEPTIONS 0
|
||||
|
||||
#undef FP_TRAPPING_EXCEPTIONS
|
||||
#define FP_TRAPPING_EXCEPTIONS 0
|
||||
# undef FP_TRAPPING_EXCEPTIONS
|
||||
# define FP_TRAPPING_EXCEPTIONS 0
|
||||
|
||||
#undef FP_ROUNDMODE
|
||||
#define FP_ROUNDMODE FP_RND_ZERO
|
||||
# undef FP_ROUNDMODE
|
||||
# define FP_ROUNDMODE FP_RND_ZERO
|
||||
|
||||
#endif
|
||||
|
||||
@ -239,22 +239,22 @@ typedef USItype UHWtype;
|
||||
#endif
|
||||
|
||||
#ifndef CMPtype
|
||||
#define CMPtype int
|
||||
# define CMPtype int
|
||||
#endif
|
||||
|
||||
#define SI_BITS (__CHAR_BIT__ * (int)sizeof(SItype))
|
||||
#define DI_BITS (__CHAR_BIT__ * (int)sizeof(DItype))
|
||||
|
||||
#ifndef umul_ppmm
|
||||
#ifdef _LIBC
|
||||
#include <stdlib/longlong.h>
|
||||
#else
|
||||
#include "longlong.h"
|
||||
#endif
|
||||
# ifdef _LIBC
|
||||
# include <stdlib/longlong.h>
|
||||
# else
|
||||
# include "longlong.h"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef _LIBC
|
||||
#include <stdlib.h>
|
||||
# include <stdlib.h>
|
||||
#else
|
||||
extern void abort (void);
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user