diff options
author | Marc Espie <espie@cvs.openbsd.org> | 1999-07-18 16:38:59 +0000 |
---|---|---|
committer | Marc Espie <espie@cvs.openbsd.org> | 1999-07-18 16:38:59 +0000 |
commit | 6cd1705862866b49116ca4c1e1c724064c1a0dbe (patch) | |
tree | 0d30a4844b89bff3fb6d4af2931b6b91793144b1 /gnu/egcs/gcc/real.c | |
parent | 3ea7d6f69d05ad249133b00a14f4e681262ce71c (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.c | 8 |
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 |