expr.c (expand_expr): Don't force into registers if EXPAND_INITIALIZER.
authorRichard Henderson <rth@redhat.com>
Wed, 10 Apr 2002 07:11:32 +0000 (00:11 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Wed, 10 Apr 2002 07:11:32 +0000 (00:11 -0700)
        * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
        if EXPAND_INITIALIZER.

From-SVN: r52118

gcc/ChangeLog
gcc/expr.c

index e5047f286d6760f812a3809587533060c3eaca95..f6e47a8a8b87f66708ee280d28051967c78c0527 100644 (file)
@@ -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.
index 4871c4b7bdf8f13698747db3cb7c8dbec4c885ae..3e0add257f769f79e9197b3e631dd483b51a8714 100644 (file)
@@ -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;