diff options
author | Joern Rennecke <amylaar@spamcop.net> | 2010-11-12 17:24:16 +0000 |
---|---|---|
committer | Joern Rennecke <amylaar@gcc.gnu.org> | 2010-11-12 17:24:16 +0000 |
commit | ae77ff7a0325f4aa208402092ce58cac989fc0c7 (patch) | |
tree | dc893143d1cc5125d178aa81917b8a976274f9fe /gcc/final.c | |
parent | d3c176fcafc5ab0c863b45feb5a3d21fa3c45857 (diff) | |
download | gcc-ae77ff7a0325f4aa208402092ce58cac989fc0c7.tar.gz |
re PR middle-end/44769 (warning for split_double when HOST_BITS_PER_WIDE_INT < BITS_PER_WORD)
PR middle-end/44769
* final.c (split_double): Don't use BITS_PER_WORD directly in
shift count.
From-SVN: r166662
Diffstat (limited to 'gcc/final.c')
-rw-r--r-- | gcc/final.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/final.c b/gcc/final.c index 060a24532c5..c4278ae4922 100644 --- a/gcc/final.c +++ b/gcc/final.c @@ -3807,10 +3807,11 @@ split_double (rtx value, rtx *first, rtx *second) Sign extend each half to HOST_WIDE_INT. */ unsigned HOST_WIDE_INT low, high; unsigned HOST_WIDE_INT mask, sign_bit, sign_extend; + unsigned bits_per_word = BITS_PER_WORD; /* Set sign_bit to the most significant bit of a word. */ sign_bit = 1; - sign_bit <<= BITS_PER_WORD - 1; + sign_bit <<= bits_per_word - 1; /* Set mask so that all bits of the word are set. We could have used 1 << BITS_PER_WORD instead of basing the @@ -3833,7 +3834,7 @@ split_double (rtx value, rtx *first, rtx *second) /* Pick the higher word, shifted to the least significant bits, and sign-extend it. */ high = INTVAL (value); - high >>= BITS_PER_WORD - 1; + high >>= bits_per_word - 1; high >>= 1; high &= mask; if (high & sign_bit) |