diff options
author | das <das@FreeBSD.org> | 2005-03-07 04:55:22 +0000 |
---|---|---|
committer | das <das@FreeBSD.org> | 2005-03-07 04:55:22 +0000 |
commit | 5bfaaf046488af0dd3a30704b1de957d8e998484 (patch) | |
tree | 0587ae7e38dc49cbd8c4f33e5beaf44770486b0f /lib/libc | |
parent | e08a3e75cadf3db2f91c84aa1fb0e266b4334fc4 (diff) | |
download | FreeBSD-src-5bfaaf046488af0dd3a30704b1de957d8e998484.zip FreeBSD-src-5bfaaf046488af0dd3a30704b1de957d8e998484.tar.gz |
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.
Diffstat (limited to 'lib/libc')
-rw-r--r-- | lib/libc/alpha/_fpmath.h | 1 | ||||
-rw-r--r-- | lib/libc/amd64/_fpmath.h | 3 | ||||
-rw-r--r-- | lib/libc/arm/_fpmath.h | 3 | ||||
-rw-r--r-- | lib/libc/i386/_fpmath.h | 3 | ||||
-rw-r--r-- | lib/libc/powerpc/_fpmath.h | 1 | ||||
-rw-r--r-- | lib/libc/sparc64/_fpmath.h | 1 |
6 files changed, 9 insertions, 3 deletions
diff --git a/lib/libc/alpha/_fpmath.h b/lib/libc/alpha/_fpmath.h index e449668..8b6d09e 100644 --- a/lib/libc/alpha/_fpmath.h +++ b/lib/libc/alpha/_fpmath.h @@ -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 diff --git a/lib/libc/amd64/_fpmath.h b/lib/libc/amd64/_fpmath.h index 08ec6f2..8f8cf6f 100644 --- a/lib/libc/amd64/_fpmath.h +++ b/lib/libc/amd64/_fpmath.h @@ -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 diff --git a/lib/libc/arm/_fpmath.h b/lib/libc/arm/_fpmath.h index d7a78aa..80e764f 100644 --- a/lib/libc/arm/_fpmath.h +++ b/lib/libc/arm/_fpmath.h @@ -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 diff --git a/lib/libc/i386/_fpmath.h b/lib/libc/i386/_fpmath.h index d7a78aa..80e764f 100644 --- a/lib/libc/i386/_fpmath.h +++ b/lib/libc/i386/_fpmath.h @@ -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 diff --git a/lib/libc/powerpc/_fpmath.h b/lib/libc/powerpc/_fpmath.h index 58ee942..6d80eb4 100644 --- a/lib/libc/powerpc/_fpmath.h +++ b/lib/libc/powerpc/_fpmath.h @@ -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 diff --git a/lib/libc/sparc64/_fpmath.h b/lib/libc/sparc64/_fpmath.h index f4de8fd..e5f2238 100644 --- a/lib/libc/sparc64/_fpmath.h +++ b/lib/libc/sparc64/_fpmath.h @@ -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 |