regmove.c (regmove_optimize): Use lowpart_subreg instead of gen_rtx_SUBREG with incorrect offset to compute...

* regmove.c (regmove_optimize): Use lowpart_subreg instead of
	gen_rtx_SUBREG with incorrect offset to compute SRC_SUBREG.

From-SVN: r90762
This commit is contained in:
Ulrich Weigand 2004-11-16 21:11:33 +00:00 committed by Ulrich Weigand
parent a3fcfe27d8
commit d281a1f1bd
2 changed files with 9 additions and 3 deletions

View file

@ -1,3 +1,8 @@
2004-11-16 Ulrich Weigand <uweigand@de.ibm.com>
* regmove.c (regmove_optimize): Use lowpart_subreg instead of
gen_rtx_SUBREG with incorrect offset to compute SRC_SUBREG.
2004-11-16 Devang Patel <dpatel@apple.com>
* tree-if-conv.c (clean_predicate_lists): Update gcc_assert check.

View file

@ -1150,10 +1150,11 @@ regmove_optimize (rtx f, int nregs, FILE *regmove_dump_file)
&& GET_MODE_SIZE (GET_MODE (dst))
>= GET_MODE_SIZE (GET_MODE (SUBREG_REG (dst))))
{
src_subreg
= gen_rtx_SUBREG (GET_MODE (SUBREG_REG (dst)),
src, SUBREG_BYTE (dst));
dst = SUBREG_REG (dst);
src_subreg = lowpart_subreg (GET_MODE (dst),
src, GET_MODE (src));
if (!src_subreg)
continue;
}
if (!REG_P (dst)
|| REGNO (dst) < FIRST_PSEUDO_REGISTER)