aboutsummaryrefslogtreecommitdiff
path: root/lib/libc/powerpc/_fpmath.h
diff options
context:
space:
mode:
authorAndrew Gallatin <gallatin@FreeBSD.org>2004-07-19 23:56:07 +0000
committerAndrew Gallatin <gallatin@FreeBSD.org>2004-07-19 23:56:07 +0000
commitdf11547f5d598cf160b2ca751e845b2c29f93a12 (patch)
tree3b3b34c6ec21d9a1c093664f2c9f8f4c55392db9 /lib/libc/powerpc/_fpmath.h
parent757cd67065430f4bb3bf71121273208ff9e483cb (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.h14
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)