(encode, decode): Use 4 HOST_WIDE_INTs for encoded value with HOST_BITS_PER_WIDE_INT...
authorTorbjorn Granlund <tege@gnu.org>
Wed, 15 Jun 1994 02:23:14 +0000 (02:23 +0000)
committerTorbjorn Granlund <tege@gnu.org>
Wed, 15 Jun 1994 02:23:14 +0000 (02:23 +0000)
commit37bdb7e3147c67ba3e41ff7d6c4ddb848775fe22
tree7f4131b6f6da8fbc845712d6904193f1c805fa0f
parent4c9a05bc5560ebb1144228bccb5312871a3089f7
(encode, decode): Use 4 HOST_WIDE_INTs for encoded value with HOST_BITS_PER_WIDE_INT/2 bits in each.

(encode, decode): Use 4 HOST_WIDE_INTs for encoded
value with HOST_BITS_PER_WIDE_INT/2 bits in each.
(LOWPART, HIGHPART): New macros.
(BASE): Move definition outside of div_and_round_double.
(add_double, mul_double, lshift_double, rshift_double): Rewrite.
(lrotate_double): Use LOWPART, HIGHPART, and BASE.
(rrotate_double): Likewise.
(div_and_round_double): Major changes to code for general case.
Now it actually produces non-garbage results for large operands.
(div_and_round_double): Simplify condition for special code used when
divisor < BASE.
(const_binop): Delete special cases for multiplying by 0, 1, 2, 4, 8.
(fold, case *_DIV_EXPR): Don't try to optimize for overflow.

From-SVN: r7473
gcc/fold-const.c