diff options
author | Kenneth Zadeck <zadeck@naturalbridge.com> | 2012-06-09 12:40:40 +0000 |
---|---|---|
committer | Kenneth Zadeck <zadeck@gcc.gnu.org> | 2012-06-09 12:40:40 +0000 |
commit | aef2b1d1f03eacdad6ec5fac97a04eea7cc68174 (patch) | |
tree | 9508fa69374c5c758353add1e8af1f7ebf515d36 /gcc | |
parent | bca672f610c270de56a934b1ed14bd38f24c5bbe (diff) | |
download | gcc-aef2b1d1f03eacdad6ec5fac97a04eea7cc68174.zip gcc-aef2b1d1f03eacdad6ec5fac97a04eea7cc68174.tar.gz gcc-aef2b1d1f03eacdad6ec5fac97a04eea7cc68174.tar.bz2 |
simplify-rtx.c (simplify_const_binary_operation): Fixed shift count trucation.
2012-06-09 Kenneth Zadeck <zadeck@naturalbridge.com>
* simplify-rtx.c (simplify_const_binary_operation): Fixed shift
count trucation.
From-SVN: r188359
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/simplify-rtx.c | 5 |
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 62f67f4..5c6cc02 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2012-06-09 Kenneth Zadeck <zadeck@naturalbridge.com> + + * simplify-rtx.c (simplify_const_binary_operation): Fixed shift + count trucation. + 2012-06-08 Richard Henderson <rth@redhat.com> PR c++/53602 diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c index e43ee5b..e1bd3cf 100644 --- a/gcc/simplify-rtx.c +++ b/gcc/simplify-rtx.c @@ -3653,7 +3653,10 @@ simplify_const_binary_operation (enum rtx_code code, enum machine_mode mode, unsigned HOST_WIDE_INT cnt; if (SHIFT_COUNT_TRUNCATED) - o1 = double_int_zext (o1, GET_MODE_PRECISION (mode)); + { + o1.high = 0; + o1.low &= GET_MODE_PRECISION (mode) - 1; + } if (!double_int_fits_in_uhwi_p (o1) || double_int_to_uhwi (o1) >= GET_MODE_PRECISION (mode)) |