diff options
author | Oleg Endo <olegendo@gcc.gnu.org> | 2019-11-03 12:09:26 +0000 |
---|---|---|
committer | Oleg Endo <olegendo@gcc.gnu.org> | 2019-11-03 12:09:26 +0000 |
commit | da5c1bbe973db144cc1d297ad49b519a870ab0ba (patch) | |
tree | 7cc3cfb18bc9a6317e4be1db94f292d4c2d89bf9 /libgcc/fp-bit.c | |
parent | e3200f1d33a636f31e8935d1ddc16382d6c30fdb (diff) | |
download | gcc-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.c | 20 |
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; |