2010-10-30  Uros Bizjak  <ubizjak@gmail.com>

	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
This commit is contained in:
Uros Bizjak 2010-11-03 23:44:04 +01:00 committed by Uros Bizjak
parent e977d24c8e
commit 8197abecff
2 changed files with 11 additions and 10 deletions

View File

@ -1,3 +1,12 @@
2010-11-04 Uros Bizjak <ubizjak@gmail.com>
Revert:
2010-10-30 Uros Bizjak <ubizjak@gmail.com>
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 <amodra@gmail.com>
* config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.

View File

@ -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. */