From 0061df4ed91c91d6b20f3edc0aab437f3fed4969 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Mon, 1 Jun 1998 14:26:00 +0000 Subject: Update. 1998-05-30 Philip Blundell * 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. --- stdlib/gmp-impl.h | 18 ++++++++++++++++++ stdlib/longlong.h | 2 ++ 2 files changed, 20 insertions(+) (limited to 'stdlib') diff --git a/stdlib/gmp-impl.h b/stdlib/gmp-impl.h index 837fcfd..3dbb837 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 40ccc89..197aac4 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 -- cgit v1.1