aboutsummaryrefslogtreecommitdiff
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
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.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