* explow.c (plus_constant_wide): Reinitialize Y for restart.
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>
Wed, 4 Jul 2001 02:29:46 +0000 (02:29 +0000)
committerRichard Kenner <kenner@gcc.gnu.org>
Wed, 4 Jul 2001 02:29:46 +0000 (22:29 -0400)
From-SVN: r43745

gcc/ChangeLog
gcc/explow.c

index ef408b6f8dd6315f81adae217d3e1de7a13c1c80..93cd67c32e8df64cbaed53d834ee420db4348bab 100644 (file)
@@ -1,3 +1,7 @@
+Tue Jul  3 22:33:15 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * explow.c (plus_constant_wide): Reinitialize Y for restart.
+
 2001-07-03  Stan Shebs  <shebs@apple.com>
 
        * darwin.h (SECTION_FUNCTION): Remove WAS_TEXT argument, remove
index bf5eb89622af5ea52b9edfc24a89b80eaab79e2a..778b9719bf68a8aa673e7f0fb2a053b6128a6e2e 100644 (file)
@@ -78,7 +78,7 @@ plus_constant_wide (x, c)
      register HOST_WIDE_INT c;
 {
   register RTX_CODE code;
-  rtx y = x;
+  rtx y;
   register enum machine_mode mode;
   register rtx tem;
   int all_constant = 0;
@@ -90,6 +90,8 @@ plus_constant_wide (x, c)
 
   code = GET_CODE (x);
   mode = GET_MODE (x);
+  y = x;
+
   switch (code)
     {
     case CONST_INT:
@@ -608,10 +610,12 @@ validize_mem (ref)
 {
   if (GET_CODE (ref) != MEM)
     return ref;
-  if (memory_address_p (GET_MODE (ref), XEXP (ref, 0)))
+  if (! (flag_force_addr && CONSTANT_ADDRESS_P (XEXP (ref, 0)))
+      || memory_address_p (GET_MODE (ref), XEXP (ref, 0)))
     return ref;
+
   /* Don't alter REF itself, since that is probably a stack slot.  */
-  return change_address (ref, GET_MODE (ref), XEXP (ref, 0));
+  return replace_equiv_address (ref, XEXP (ref, 0));
 }
 \f
 /* Given REF, either a MEM or a REG, and T, either the type of X or