diff options
author | Ulrich Drepper <drepper@redhat.com> | 1998-06-01 14:26:00 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1998-06-01 14:26:00 +0000 |
commit | 0061df4ed91c91d6b20f3edc0aab437f3fed4969 (patch) | |
tree | a1957c3451ad120f161b78f7766483a3b2a263a4 /stdlib | |
parent | 112f5896cc947bd7f6d28e4dec473eb429a12787 (diff) | |
download | glibc-0061df4ed91c91d6b20f3edc0aab437f3fed4969.tar glibc-0061df4ed91c91d6b20f3edc0aab437f3fed4969.tar.gz glibc-0061df4ed91c91d6b20f3edc0aab437f3fed4969.tar.bz2 glibc-0061df4ed91c91d6b20f3edc0aab437f3fed4969.zip |
Update.
1998-05-30 Philip Blundell <Philip.Blundell@pobox.com>
* stdlib/gmp-impl.h: Support strange mixed-endian double format
used by ARM systems.
* sysdeps/arm/fpu/bits/fenv.h (FE_EXCEPTION_SHIFT): Rename to
FE_EXCEPT_SHIFT.
* sysdeps/arm/bits/fenv.h: Deleted.
* sysdeps/arm/fpu/ieee754.h: New file.
* sysdeps/arm/gmp-mparam.h: New file.
* stdlib/longlong.h (umul_ppmm): Temporarily disable broken ARM
implementation.
Diffstat (limited to 'stdlib')
-rw-r--r-- | stdlib/gmp-impl.h | 18 | ||||
-rw-r--r-- | stdlib/longlong.h | 2 |
2 files changed, 20 insertions, 0 deletions
diff --git a/stdlib/gmp-impl.h b/stdlib/gmp-impl.h index 837fcfdb28..3dbb837d1e 100644 --- a/stdlib/gmp-impl.h +++ b/stdlib/gmp-impl.h @@ -327,6 +327,23 @@ extern void impn_sqr_n _PROTO ((mp_ptr prodp, mp_srcptr up, mp_size_t size, #define IEEE_DOUBLE_BIG_ENDIAN 1 #endif +#ifndef IEEE_DOUBLE_MIXED_ENDIAN +#define IEEE_DOUBLE_MIXED_ENDIAN 0 +#endif + +#if IEEE_DOUBLE_MIXED_ENDIAN +union ieee_double_extract +{ + struct + { + unsigned int manh:20; + unsigned int exp:11; + unsigned int sig:1; + unsigned int manl:32; + } s; + double d; +}; +#else #if IEEE_DOUBLE_BIG_ENDIAN union ieee_double_extract { @@ -352,3 +369,4 @@ union ieee_double_extract double d; }; #endif +#endif diff --git a/stdlib/longlong.h b/stdlib/longlong.h index 40ccc89cc3..197aac41da 100644 --- a/stdlib/longlong.h +++ b/stdlib/longlong.h @@ -190,6 +190,7 @@ extern UDItype __udiv_qrnnd __P ((UDItype *, UDItype, UDItype, UDItype)); "rI" ((USItype)(bh)), \ "r" ((USItype)(al)), \ "rI" ((USItype)(bl))) +#if 0 #define umul_ppmm(xh, xl, a, b) \ __asm__ ("%@ Inlined umul_ppmm mov %|r0, %2, lsr #16 @@ -211,6 +212,7 @@ extern UDItype __udiv_qrnnd __P ((UDItype *, UDItype, UDItype, UDItype)); : "r0", "r1", "r2") #define UMUL_TIME 20 #define UDIV_TIME 100 +#endif #endif /* __arm__ */ #if defined (__clipper__) && W_TYPE_SIZE == 32 |