diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/expr.c | 3 |
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e5047f2..f6e47a8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2002-04-10 Richard Henderson <rth@redhat.com> + + * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers + if EXPAND_INITIALIZER. + 2002-04-09 Richard Henderson <rth@redhat.com> * config/alpha/alpha.md (movdi_er_maybe_g): New. @@ -6326,7 +6326,8 @@ expand_expr (exp, target, tmode, modifier) simplified by validate_replace_rtx during virtual register instantiation, which can result in unrecognizable insns. Avoid this by forcing all overflows into registers. */ - if (TREE_CONSTANT_OVERFLOW (exp)) + if (TREE_CONSTANT_OVERFLOW (exp) + && modifier != EXPAND_INITIALIZER) temp = force_reg (mode, temp); return temp; |