Commit 32f2ce02 by Hans-Peter Nilsson Committed by Hans-Peter Nilsson

re PR target/18701 (mmix-knuth-mmixware gcc.c-torture/execute failures:…

re PR target/18701 (mmix-knuth-mmixware gcc.c-torture/execute failures: 20010224-1.c, 20020216-1.c, 20040218-1.c, 20040709-2.c)

	PR target/18701
	* combine.c (gen_lowpart_for_combine): When stripping SUBREG of
	MEM, adjust imode and isize.

From-SVN: r92760
parent 8c8a5f7c
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> 2004-12-30 Richard Henderson <rth@redhat.com>
* config/ia64/ia64.c (hfa_element_mode): Return false for * config/ia64/ia64.c (hfa_element_mode): Return false for
......
...@@ -9355,8 +9355,16 @@ gen_lowpart_for_combine (enum machine_mode omode, rtx x) ...@@ -9355,8 +9355,16 @@ gen_lowpart_for_combine (enum machine_mode omode, rtx x)
if (GET_CODE (x) == SUBREG && MEM_P (SUBREG_REG (x))) if (GET_CODE (x) == SUBREG && MEM_P (SUBREG_REG (x)))
{ {
x = 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; return x;
isize = GET_MODE_SIZE (imode);
} }
result = gen_lowpart_common (omode, x); result = gen_lowpart_common (omode, x);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment