From: Uros Bizjak Date: Wed, 3 Nov 2010 22:44:04 +0000 (+0100) Subject: Revert: X-Git-Tag: releases/gcc-4.4.6~285 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8197abecff6748ed5030b57a4c959f2987865c64;p=thirdparty%2Fgcc.git Revert: 2010-10-30 Uros Bizjak PR middle-end/44569 * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements, determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX. From-SVN: r166282 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e5c1b7832c79..73ce585d92b2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2010-11-04 Uros Bizjak + + Revert: + 2010-10-30 Uros Bizjak + + PR middle-end/44569 + * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements, + determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX. + 2010-11-04 Alan Modra * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static. diff --git a/gcc/lower-subreg.c b/gcc/lower-subreg.c index 933524d1d239..ea9c6a0d3477 100644 --- a/gcc/lower-subreg.c +++ b/gcc/lower-subreg.c @@ -388,7 +388,7 @@ simplify_subreg_concatn (enum machine_mode outermode, rtx op, unsigned int byte) { unsigned int inner_size; - enum machine_mode innermode, partmode; + enum machine_mode innermode; rtx part; unsigned int final_offset; @@ -401,19 +401,11 @@ simplify_subreg_concatn (enum machine_mode outermode, rtx op, inner_size = GET_MODE_SIZE (innermode) / XVECLEN (op, 0); part = XVECEXP (op, 0, byte / inner_size); - partmode = GET_MODE (part); - - if (partmode == VOIDmode) - { - gcc_assert (VECTOR_MODE_P (innermode)); - partmode = GET_MODE_INNER (innermode); - } - final_offset = byte % inner_size; if (final_offset + GET_MODE_SIZE (outermode) > inner_size) return NULL_RTX; - return simplify_gen_subreg (outermode, part, partmode, final_offset); + return simplify_gen_subreg (outermode, part, GET_MODE (part), final_offset); } /* Wrapper around simplify_gen_subreg which handles CONCATN. */