Use the correct values for softfloat, in both the little endian and the big

endian cases.
This commit is contained in:
Olivier Houchard 2005-03-20 00:53:52 +00:00
parent 7fc53c7b12
commit 2b2714935b
2 changed files with 13 additions and 8 deletions

View File

@ -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

View File

@ -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