expr.c (expand_expr_real_1): Force subregs into a pseudo before applying gen_lowpart.

* expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Force subregs
        into a pseudo before applying gen_lowpart.

From-SVN: r103712
This commit is contained in:
Richard Henderson 2005-08-31 18:06:45 -07:00 committed by Richard Henderson
parent 1738bfd97d
commit 0fd662ee04
2 changed files with 10 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2005-08-31 Richard Henderson <rth@redhat.com>
* expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Force subregs
into a pseudo before applying gen_lowpart.
2005-08-31 Geoffrey Keating <geoffk@apple.com>
* doc/install.texi (Specific): Update cctools version required

View File

@ -7544,7 +7544,11 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode,
else if (TYPE_MODE (type) != BLKmode && GET_MODE (op0) != BLKmode
&& GET_MODE_SIZE (TYPE_MODE (type))
== GET_MODE_SIZE (GET_MODE (op0)))
op0 = gen_lowpart (TYPE_MODE (type), op0);
{
if (GET_CODE (op0) == SUBREG)
op0 = force_reg (GET_MODE (op0), op0);
op0 = gen_lowpart (TYPE_MODE (type), op0);
}
/* If both modes are integral, then we can convert from one to the
other. */
else if (SCALAR_INT_MODE_P (GET_MODE (op0))