aboutsummaryrefslogtreecommitdiff
path: root/libgcc/fp-bit.c
diff options
context:
space:
mode:
authorOleg Endo <olegendo@gcc.gnu.org>2019-11-03 12:09:26 +0000
committerOleg Endo <olegendo@gcc.gnu.org>2019-11-03 12:09:26 +0000
commitda5c1bbe973db144cc1d297ad49b519a870ab0ba (patch)
tree7cc3cfb18bc9a6317e4be1db94f292d4c2d89bf9 /libgcc/fp-bit.c
parente3200f1d33a636f31e8935d1ddc16382d6c30fdb (diff)
downloadgcc-da5c1bbe973db144cc1d297ad49b519a870ab0ba.zip
gcc-da5c1bbe973db144cc1d297ad49b519a870ab0ba.tar.gz
gcc-da5c1bbe973db144cc1d297ad49b519a870ab0ba.tar.bz2
re PR libgcc/78804 ([RX] -m64bit-doubles does not work)
libgcc/ PR libgcc/78804 * fp-bit.h: Remove FLOAT_BIT_ORDER_MISMATCH. * fp-bit.c (pack_d, unpack_d): Remove special cases for FLOAT_BIT_ORDER_MISMATCH. * config/arc/t-arc: Remove FLOAT_BIT_ORDER_MISMATCH. From-SVN: r277752
Diffstat (limited to 'libgcc/fp-bit.c')
-rw-r--r--libgcc/fp-bit.c20
1 files changed, 4 insertions, 16 deletions
diff --git a/libgcc/fp-bit.c b/libgcc/fp-bit.c
index a9cc3c0..658f42c 100644
--- a/libgcc/fp-bit.c
+++ b/libgcc/fp-bit.c
@@ -316,12 +316,7 @@ pack_d (const fp_number_type *src)
/* We previously used bitfields to store the number, but this doesn't
handle little/big endian systems conveniently, so use shifts and
masks */
-#ifdef FLOAT_BIT_ORDER_MISMATCH
- dst.bits.fraction = fraction;
- dst.bits.exp = exp;
- dst.bits.sign = sign;
-#else
-# if defined TFLOAT && defined HALFFRACBITS
+#if defined TFLOAT && defined HALFFRACBITS
{
halffractype high, low, unity;
int lowsign, lowexp;
@@ -394,11 +389,10 @@ pack_d (const fp_number_type *src)
}
dst.value_raw = ((fractype) high << HALFSHIFT) | low;
}
-# else
+#else
dst.value_raw = fraction & ((((fractype)1) << FRACBITS) - (fractype)1);
dst.value_raw |= ((fractype) (exp & ((1 << EXPBITS) - 1))) << FRACBITS;
dst.value_raw |= ((fractype) (sign & 1)) << (FRACBITS | EXPBITS);
-# endif
#endif
#if defined(FLOAT_WORD_ORDER_MISMATCH) && !defined(FLOAT)
@@ -450,12 +444,7 @@ unpack_d (FLO_union_type * src, fp_number_type * dst)
src = &swapped;
#endif
-#ifdef FLOAT_BIT_ORDER_MISMATCH
- fraction = src->bits.fraction;
- exp = src->bits.exp;
- sign = src->bits.sign;
-#else
-# if defined TFLOAT && defined HALFFRACBITS
+#if defined TFLOAT && defined HALFFRACBITS
{
halffractype high, low;
@@ -498,11 +487,10 @@ unpack_d (FLO_union_type * src, fp_number_type * dst)
}
}
}
-# else
+#else
fraction = src->value_raw & ((((fractype)1) << FRACBITS) - 1);
exp = ((int)(src->value_raw >> FRACBITS)) & ((1 << EXPBITS) - 1);
sign = ((int)(src->value_raw >> (FRACBITS + EXPBITS))) & 1;
-# endif
#endif
dst->sign = sign;