OSDN Git Service

* explow.c (plus_constant_wide): Reinitialize Y for restart.
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 4 Jul 2001 02:29:46 +0000 (02:29 +0000)
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 4 Jul 2001 02:29:46 +0000 (02:29 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@43745 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/explow.c

index ef408b6..93cd67c 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 bf5eb89..778b971 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