PR target/18701
* combine.c (gen_lowpart_for_combine): When stripping SUBREG of
MEM, adjust imode and isize.
From-SVN: r92760
+2004-12-31 Hans-Peter Nilsson <hp@bitrange.com>
+
+ PR target/18701
+ * combine.c (gen_lowpart_for_combine): When stripping SUBREG of
+ MEM, adjust imode and isize.
+
2004-12-30 Richard Henderson <rth@redhat.com>
* config/ia64/ia64.c (hfa_element_mode): Return false for
if (GET_CODE (x) == SUBREG && MEM_P (SUBREG_REG (x)))
{
x = SUBREG_REG (x);
- if (GET_MODE (x) == omode)
+
+ /* For use in case we fall down into the address adjustments
+ further below, we need to adjust the known mode and size of
+ x; imode and isize, since we just adjusted x. */
+ imode = GET_MODE (x);
+
+ if (imode == omode)
return x;
+
+ isize = GET_MODE_SIZE (imode);
}
result = gen_lowpart_common (omode, x);