rtl.c (copy_most_rtx): Move from here ...
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>
Fri, 8 Mar 2002 12:29:13 +0000 (12:29 +0000)
committerRichard Kenner <kenner@gcc.gnu.org>
Fri, 8 Mar 2002 12:29:13 +0000 (07:29 -0500)
* rtl.c (copy_most_rtx): Move from here ...
* emit-rtl.c (copy_most_rtx): ... to here.

From-SVN: r50435

gcc/ChangeLog
gcc/emit-rtl.c
gcc/rtl.c

index 254d804ea5f9055c508240b3fde185fc21b38928..b951136272edeb8e8fa4bae9eef8d498d85b5f05 100644 (file)
@@ -1,3 +1,8 @@
+Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * rtl.c (copy_most_rtx): Move from here ...
+       * emit-rtl.c (copy_most_rtx): ... to here.
+
 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
 
        * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
index 47574278e9dbb365b0fab863079973f0b413df07..e3d557fe809881f79bd1b4a2166fb31c5bce5418 100644 (file)
@@ -2238,6 +2238,106 @@ reset_used_decls (blk)
     reset_used_decls (t);
 }
 
+/* Similar to `copy_rtx' except that if MAY_SHARE is present, it is
+   placed in the result directly, rather than being copied.  */
+
+rtx
+copy_most_rtx (orig, may_share)
+     rtx orig;
+     rtx may_share;
+{
+  rtx copy;
+  int i, j;
+  RTX_CODE code;
+  const char *format_ptr;
+
+  if (orig == may_share)
+    return orig;
+
+  code = GET_CODE (orig);
+
+  switch (code)
+    {
+    case REG:
+    case QUEUED:
+    case CONST_INT:
+    case CONST_DOUBLE:
+    case CONST_VECTOR:
+    case SYMBOL_REF:
+    case CODE_LABEL:
+    case PC:
+    case CC0:
+      return orig;
+    default:
+      break;
+    }
+
+  copy = rtx_alloc (code);
+  PUT_MODE (copy, GET_MODE (orig));
+  copy->in_struct = orig->in_struct;
+  copy->volatil = orig->volatil;
+  copy->unchanging = orig->unchanging;
+  copy->integrated = orig->integrated;
+  copy->frame_related = orig->frame_related;
+
+  format_ptr = GET_RTX_FORMAT (GET_CODE (copy));
+
+  for (i = 0; i < GET_RTX_LENGTH (GET_CODE (copy)); i++)
+    {
+      switch (*format_ptr++)
+       {
+       case 'e':
+         XEXP (copy, i) = XEXP (orig, i);
+         if (XEXP (orig, i) != NULL && XEXP (orig, i) != may_share)
+           XEXP (copy, i) = copy_most_rtx (XEXP (orig, i), may_share);
+         break;
+
+       case 'u':
+         XEXP (copy, i) = XEXP (orig, i);
+         break;
+
+       case 'E':
+       case 'V':
+         XVEC (copy, i) = XVEC (orig, i);
+         if (XVEC (orig, i) != NULL)
+           {
+             XVEC (copy, i) = rtvec_alloc (XVECLEN (orig, i));
+             for (j = 0; j < XVECLEN (copy, i); j++)
+               XVECEXP (copy, i, j)
+                 = copy_most_rtx (XVECEXP (orig, i, j), may_share);
+           }
+         break;
+
+       case 'w':
+         XWINT (copy, i) = XWINT (orig, i);
+         break;
+
+       case 'n':
+       case 'i':
+         XINT (copy, i) = XINT (orig, i);
+         break;
+
+       case 't':
+         XTREE (copy, i) = XTREE (orig, i);
+         break;
+
+       case 's':
+       case 'S':
+         XSTR (copy, i) = XSTR (orig, i);
+         break;
+
+       case '0':
+         /* Copy this through the wide int field; that's safest.  */
+         X0WINT (copy, i) = X0WINT (orig, i);
+         break;
+
+       default:
+         abort ();
+       }
+    }
+  return copy;
+}
+
 /* Mark ORIG as in use, and return a copy of it if it was already in use.
    Recursively does the same for subexpressions.  */
 
index 50058ee38fc7b072794f7560ae58d8cd4ddd0838..7d70059cbba1b2de40ea979f6b5d7fb128c99c76 100644 (file)
--- a/gcc/rtl.c
+++ b/gcc/rtl.c
@@ -441,106 +441,6 @@ copy_rtx (orig)
   return copy;
 }
 
-/* Similar to `copy_rtx' except that if MAY_SHARE is present, it is
-   placed in the result directly, rather than being copied.  */
-
-rtx
-copy_most_rtx (orig, may_share)
-     rtx orig;
-     rtx may_share;
-{
-  rtx copy;
-  int i, j;
-  RTX_CODE code;
-  const char *format_ptr;
-
-  if (orig == may_share)
-    return orig;
-
-  code = GET_CODE (orig);
-
-  switch (code)
-    {
-    case REG:
-    case QUEUED:
-    case CONST_INT:
-    case CONST_DOUBLE:
-    case CONST_VECTOR:
-    case SYMBOL_REF:
-    case CODE_LABEL:
-    case PC:
-    case CC0:
-      return orig;
-    default:
-      break;
-    }
-
-  copy = rtx_alloc (code);
-  PUT_MODE (copy, GET_MODE (orig));
-  copy->in_struct = orig->in_struct;
-  copy->volatil = orig->volatil;
-  copy->unchanging = orig->unchanging;
-  copy->integrated = orig->integrated;
-  copy->frame_related = orig->frame_related;
-
-  format_ptr = GET_RTX_FORMAT (GET_CODE (copy));
-
-  for (i = 0; i < GET_RTX_LENGTH (GET_CODE (copy)); i++)
-    {
-      switch (*format_ptr++)
-       {
-       case 'e':
-         XEXP (copy, i) = XEXP (orig, i);
-         if (XEXP (orig, i) != NULL && XEXP (orig, i) != may_share)
-           XEXP (copy, i) = copy_most_rtx (XEXP (orig, i), may_share);
-         break;
-
-       case 'u':
-         XEXP (copy, i) = XEXP (orig, i);
-         break;
-
-       case 'E':
-       case 'V':
-         XVEC (copy, i) = XVEC (orig, i);
-         if (XVEC (orig, i) != NULL)
-           {
-             XVEC (copy, i) = rtvec_alloc (XVECLEN (orig, i));
-             for (j = 0; j < XVECLEN (copy, i); j++)
-               XVECEXP (copy, i, j)
-                 = copy_most_rtx (XVECEXP (orig, i, j), may_share);
-           }
-         break;
-
-       case 'w':
-         XWINT (copy, i) = XWINT (orig, i);
-         break;
-
-       case 'n':
-       case 'i':
-         XINT (copy, i) = XINT (orig, i);
-         break;
-
-       case 't':
-         XTREE (copy, i) = XTREE (orig, i);
-         break;
-
-       case 's':
-       case 'S':
-         XSTR (copy, i) = XSTR (orig, i);
-         break;
-
-       case '0':
-         /* Copy this through the wide int field; that's safest.  */
-         X0WINT (copy, i) = X0WINT (orig, i);
-         break;
-
-       default:
-         abort ();
-       }
-    }
-  return copy;
-}
-
 /* Create a new copy of an rtx.  Only copy just one level.  */
 
 rtx