+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.
unsigned int byte)
{
unsigned int inner_size;
- enum machine_mode innermode, partmode;
+ enum machine_mode innermode;
rtx part;
unsigned int final_offset;
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. */