about summary refs log tree commit diff
path: root/stdlib
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-06-01 14:26:00 +0000
committerUlrich Drepper <drepper@redhat.com>1998-06-01 14:26:00 +0000
commit0061df4ed91c91d6b20f3edc0aab437f3fed4969 (patch)
treea1957c3451ad120f161b78f7766483a3b2a263a4 /stdlib
parent112f5896cc947bd7f6d28e4dec473eb429a12787 (diff)
downloadglibc-0061df4ed91c91d6b20f3edc0aab437f3fed4969.tar.gz
glibc-0061df4ed91c91d6b20f3edc0aab437f3fed4969.tar.xz
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.h18
-rw-r--r--stdlib/longlong.h2
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