diff options
author | Andrew Gallatin <gallatin@FreeBSD.org> | 2004-07-19 23:56:07 +0000 |
---|---|---|
committer | Andrew Gallatin <gallatin@FreeBSD.org> | 2004-07-19 23:56:07 +0000 |
commit | df11547f5d598cf160b2ca751e845b2c29f93a12 (patch) | |
tree | 3b3b34c6ec21d9a1c093664f2c9f8f4c55392db9 /lib/libc/powerpc/_fpmath.h | |
parent | 757cd67065430f4bb3bf71121273208ff9e483cb (diff) |
Fix printing of long doubles to match the size that
gcc is using. This fixes devstat consumers (like vmstat, iostat,
systat) so they don't print crazy zillion digit numbers for
disk transfers and bandwidth.
According to gcc, long doubles are 64-bits, rather than 128 bits
like the SVR4 ABI spec wants them to be.. Note that MacOSX also treats
long doubles as 64-bits, and not 128 bits, so we are in good company.
Reviewed by: das
Approved by: grehan
Notes
Notes:
svn path=/head/; revision=132421
Diffstat (limited to 'lib/libc/powerpc/_fpmath.h')
-rw-r--r-- | lib/libc/powerpc/_fpmath.h | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/lib/libc/powerpc/_fpmath.h b/lib/libc/powerpc/_fpmath.h index 9672da30f324..d96bac2cd4e8 100644 --- a/lib/libc/powerpc/_fpmath.h +++ b/lib/libc/powerpc/_fpmath.h @@ -30,21 +30,19 @@ union IEEEl2bits { long double e; struct { unsigned int sign :1; - unsigned int exp :15; - unsigned long long manh :48; - unsigned long long manl :64; + unsigned int exp :11; + unsigned int manh :20; + unsigned int manl :32; } bits; }; #define mask_nbit_l(u) ((void)0) #define LDBL_IMPLICIT_NBIT -#define LDBL_MANH_SIZE 48 -#define LDBL_MANL_SIZE 64 +#define LDBL_MANH_SIZE 20 +#define LDBL_MANL_SIZE 32 #define LDBL_TO_ARRAY32(u, a) do { \ (a)[0] = (uint32_t)(u).bits.manl; \ - (a)[1] = (uint32_t)((u).bits.manl >> 32); \ - (a)[2] = (uint32_t)(u).bits.manh; \ - (a)[3] = (uint32_t)((u).bits.manh >> 32); \ + (a)[1] = (uint32_t)(u).bits.manh; \ } while(0) |