summaryrefslogtreecommitdiffstats
path: root/lib/libc/arm
diff options
context:
space:
mode:
authorcognet <cognet@FreeBSD.org>2005-03-20 00:53:52 +0000
committercognet <cognet@FreeBSD.org>2005-03-20 00:53:52 +0000
commit60d20350ea2326ee202ceb0a93adf694a1a73eda (patch)
tree4fbdc701e4b4707445b267f41a4efecc5ae08b0f /lib/libc/arm
parentf6962ae479f622dcfc6dfb95c52683686bb7170b (diff)
downloadFreeBSD-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/arm')
-rw-r--r--lib/libc/arm/Makefile.inc5
-rw-r--r--lib/libc/arm/_fpmath.h16
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
OpenPOWER on IntegriCloud