summaryrefslogtreecommitdiff
path: root/gcc/final.c
diff options
context:
space:
mode:
authorJoern Rennecke <amylaar@spamcop.net>2010-11-12 17:24:16 +0000
committerJoern Rennecke <amylaar@gcc.gnu.org>2010-11-12 17:24:16 +0000
commitae77ff7a0325f4aa208402092ce58cac989fc0c7 (patch)
treedc893143d1cc5125d178aa81917b8a976274f9fe /gcc/final.c
parentd3c176fcafc5ab0c863b45feb5a3d21fa3c45857 (diff)
downloadgcc-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.c5
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)