Define LDBL_NBIT to be a mask indicating the position of the integer

bit in a long double.  For architectures that don't have such a bit,
LDBL_NBIT is 0.  This makes it possible to say `mantissa & ~LDBL_NBIT'
in places that previously used an #ifdef to select the right expression.
The optimizer should dispense with the extra arithmetic when LDBL_NBIT
is 0.
This commit is contained in:
David Schultz 2005-03-07 04:55:22 +00:00
parent e0fe8e4440
commit 1dfab5edec
6 changed files with 9 additions and 3 deletions
lib/libc

@ -38,6 +38,7 @@ union IEEEl2bits {
#define mask_nbit_l(u) ((void)0)
#define LDBL_IMPLICIT_NBIT
#define LDBL_NBIT 0
#define LDBL_MANH_SIZE 20
#define LDBL_MANL_SIZE 32

@ -38,7 +38,8 @@ union IEEEl2bits {
} bits;
};
#define mask_nbit_l(u) ((u).bits.manh &= 0x7fffffff)
#define LDBL_NBIT 0x80000000
#define mask_nbit_l(u) ((u).bits.manh &= ~LDBL_NBIT)
#define LDBL_MANH_SIZE 32
#define LDBL_MANL_SIZE 32

@ -37,7 +37,8 @@ union IEEEl2bits {
} bits;
};
#define mask_nbit_l(u) ((u).bits.manh &= 0x7fffffff)
#define LDBL_NBIT 0x80000000
#define mask_nbit_l(u) ((u).bits.manh &= ~LDBL_NBIT)
#define LDBL_MANH_SIZE 32
#define LDBL_MANL_SIZE 32

@ -37,7 +37,8 @@ union IEEEl2bits {
} bits;
};
#define mask_nbit_l(u) ((u).bits.manh &= 0x7fffffff)
#define LDBL_NBIT 0x80000000
#define mask_nbit_l(u) ((u).bits.manh &= ~LDBL_NBIT)
#define LDBL_MANH_SIZE 32
#define LDBL_MANL_SIZE 32

@ -38,6 +38,7 @@ union IEEEl2bits {
#define mask_nbit_l(u) ((void)0)
#define LDBL_IMPLICIT_NBIT
#define LDBL_NBIT 0
#define LDBL_MANH_SIZE 20
#define LDBL_MANL_SIZE 32

@ -39,6 +39,7 @@ union IEEEl2bits {
#define mask_nbit_l(u) ((void)0)
#define LDBL_IMPLICIT_NBIT
#define LDBL_NBIT 0
#define LDBL_MANH_SIZE 48
#define LDBL_MANL_SIZE 64