diff options
author | cognet <cognet@FreeBSD.org> | 2005-03-20 00:53:52 +0000 |
---|---|---|
committer | cognet <cognet@FreeBSD.org> | 2005-03-20 00:53:52 +0000 |
commit | 60d20350ea2326ee202ceb0a93adf694a1a73eda (patch) | |
tree | 4fbdc701e4b4707445b267f41a4efecc5ae08b0f /lib/libc | |
parent | f6962ae479f622dcfc6dfb95c52683686bb7170b (diff) | |
download | FreeBSD-src-60d20350ea2326ee202ceb0a93adf694a1a73eda.zip FreeBSD-src-60d20350ea2326ee202ceb0a93adf694a1a73eda.tar.gz |
Use the correct values for softfloat, in both the little endian and the big
endian cases.
Diffstat (limited to 'lib/libc')
-rw-r--r-- | lib/libc/arm/Makefile.inc | 5 | ||||
-rw-r--r-- | lib/libc/arm/_fpmath.h | 16 |
2 files changed, 13 insertions, 8 deletions
diff --git a/lib/libc/arm/Makefile.inc b/lib/libc/arm/Makefile.inc index c1cf60b..90dde632 100644 --- a/lib/libc/arm/Makefile.inc +++ b/lib/libc/arm/Makefile.inc @@ -7,6 +7,5 @@ SOFTFLOAT_BITS=32 CFLAGS+=-DSOFTFLOAT -# Long double is 80 bits -GDTOASRCS+=strtopx.c -MDSRCS+=machdep_ldisx.c +# Long double is just double precision. +MDSRCS+=machdep_ldisd.c diff --git a/lib/libc/arm/_fpmath.h b/lib/libc/arm/_fpmath.h index 80e764f..98d7832 100644 --- a/lib/libc/arm/_fpmath.h +++ b/lib/libc/arm/_fpmath.h @@ -29,16 +29,22 @@ union IEEEl2bits { long double e; struct { +#ifndef __ARMEB__ unsigned int manl :32; - unsigned int manh :32; - unsigned int exp :15; + unsigned int manh :20; + unsigned int exp :11; unsigned int sign :1; - unsigned int junk :16; +#else + unsigned int sign :1; + unsigned int exp :11; + unsigned int manh :20; + unsigned int manl :32; +#endif } bits; }; -#define LDBL_NBIT 0x80000000 -#define mask_nbit_l(u) ((u).bits.manh &= ~LDBL_NBIT) +#define LDBL_NBIT 0 +#define mask_nbit_l(u) ((void)0) #define LDBL_MANH_SIZE 32 #define LDBL_MANL_SIZE 32 |