| From b9a7775674d91c7af8043a83211ffeaa576327d7 Mon Sep 17 00:00:00 2001 |
| From: Max Filippov <jcmvbkbc@gmail.com> |
| Date: Fri, 10 Apr 2015 17:46:30 +0300 |
| Subject: [PATCH] Fix PR target/65730 |
| |
| 2015-05-20 Max Filippov <jcmvbkbc@gmail.com> |
| gcc/ |
| * config/xtensa/xtensa.c (init_alignment_context): Replace MULT |
| by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT). |
| |
| Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> |
| --- |
| Backported from: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223452 |
| Changes to ChangeLog are dropped. |
| |
| gcc/config/xtensa/xtensa.c | 5 +++-- |
| 1 file changed, 3 insertions(+), 2 deletions(-) |
| |
| Index: b/gcc/config/xtensa/xtensa.c |
| =================================================================== |
| --- a/gcc/config/xtensa/xtensa.c |
| +++ b/gcc/config/xtensa/xtensa.c |
| @@ -1436,8 +1436,9 @@ |
| if (ac->shift != NULL_RTX) |
| { |
| /* Shift is the byte count, but we need the bitcount. */ |
| - ac->shift = expand_simple_binop (SImode, MULT, ac->shift, |
| - GEN_INT (BITS_PER_UNIT), |
| + gcc_assert (exact_log2 (BITS_PER_UNIT) >= 0); |
| + ac->shift = expand_simple_binop (SImode, ASHIFT, ac->shift, |
| + GEN_INT (exact_log2 (BITS_PER_UNIT)), |
| NULL_RTX, 1, OPTAB_DIRECT); |
| ac->modemask = expand_simple_binop (SImode, ASHIFT, |
| GEN_INT (GET_MODE_MASK (mode)), |