summaryrefslogtreecommitdiff
path: root/gnu/egcs/gcc/real.c
diff options
context:
space:
mode:
authorMarc Espie <espie@cvs.openbsd.org>1999-07-18 16:38:59 +0000
committerMarc Espie <espie@cvs.openbsd.org>1999-07-18 16:38:59 +0000
commit6cd1705862866b49116ca4c1e1c724064c1a0dbe (patch)
tree0d30a4844b89bff3fb6d4af2931b6b91793144b1 /gnu/egcs/gcc/real.c
parent3ea7d6f69d05ad249133b00a14f4e681262ce71c (diff)
Update to 990629 snapshot
closer to gcc 2.95 release.
Diffstat (limited to 'gnu/egcs/gcc/real.c')
-rw-r--r--gnu/egcs/gcc/real.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/gnu/egcs/gcc/real.c b/gnu/egcs/gcc/real.c
index e6a15fed515..2d615757af1 100644
--- a/gnu/egcs/gcc/real.c
+++ b/gnu/egcs/gcc/real.c
@@ -6400,17 +6400,19 @@ ereal_from_double (d)
/* Convert array of HOST_WIDE_INT to equivalent array of 16-bit pieces. */
if (REAL_WORDS_BIG_ENDIAN)
{
+#if HOST_BITS_PER_WIDE_INT == 32
s[0] = (unsigned EMUSHORT) (d[0] >> 16);
s[1] = (unsigned EMUSHORT) d[0];
-#if HOST_BITS_PER_WIDE_INT == 32
s[2] = (unsigned EMUSHORT) (d[1] >> 16);
s[3] = (unsigned EMUSHORT) d[1];
#else
/* In this case the entire target double is contained in the
first array element. The second element of the input is
ignored. */
- s[2] = (unsigned EMUSHORT) (d[0] >> 48);
- s[3] = (unsigned EMUSHORT) (d[0] >> 32);
+ s[0] = (unsigned EMUSHORT) (d[0] >> 48);
+ s[1] = (unsigned EMUSHORT) (d[0] >> 32);
+ s[2] = (unsigned EMUSHORT) (d[0] >> 16);
+ s[3] = (unsigned EMUSHORT) d[0];
#endif
}
else