OSDN Git Service

Bring copy_insn_1 and copy_rtx in sync and simplify them
authorcrux <crux@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 11 Oct 1999 18:42:36 +0000 (18:42 +0000)
committercrux <crux@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 11 Oct 1999 18:42:36 +0000 (18:42 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29902 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 888a886..4b6c13a 100644 (file)
@@ -1,3 +1,8 @@
+Mon Oct 11 20:31:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
+
+       * rtl.c (copy_rtx): Don't use accessor macros to copy fields.
+       * emit-rtl.c (copy_insn_1): Likewise.
+
 Mon Oct 11 13:29:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
 
        * config/mips/mips.c (mips_build_va_list): Correct
index d121ae7..1918a43 100644 (file)
@@ -3473,22 +3473,16 @@ copy_insn_1 (orig)
 
   for (i = 0; i < GET_RTX_LENGTH (GET_CODE (copy)); i++)
     {
+      copy->fld[i] = orig->fld[i];
       switch (*format_ptr++)
        {
        case 'e':
-         XEXP (copy, i) = XEXP (orig, i);
          if (XEXP (orig, i) != NULL)
            XEXP (copy, i) = copy_insn_1 (XEXP (orig, i));
          break;
 
-       case '0':
-       case 'u':
-         XEXP (copy, i) = XEXP (orig, i);
-         break;
-
        case 'E':
        case 'V':
-         XVEC (copy, i) = XVEC (orig, i);
          if (XVEC (orig, i) == orig_asm_constraints_vector)
            XVEC (copy, i) = copy_asm_constraints_vector;
          else if (XVEC (orig, i) == orig_asm_operands_vector)
@@ -3510,20 +3504,13 @@ copy_insn_1 (orig)
          }
 
        case 't':
-         XTREE (copy, i) = XTREE (orig, i);
-         break;
-
        case 'w':
-         XWINT (copy, i) = XWINT (orig, i);
-         break;
-
        case 'i':
-         XINT (copy, i) = XINT (orig, i);
-         break;
-
        case 's':
        case 'S':
-         XSTR (copy, i) = XSTR (orig, i);
+       case 'u':
+       case '0':
+         /* These are left unchanged.  */
          break;
 
        default:
index a20d9e5..e181279 100644 (file)
--- a/gcc/rtl.c
+++ b/gcc/rtl.c
@@ -418,21 +418,16 @@ copy_rtx (orig)
 
   for (i = 0; i < GET_RTX_LENGTH (GET_CODE (copy)); i++)
     {
+      copy->fld[i] = orig->fld[i];
       switch (*format_ptr++)
        {
        case 'e':
-         XEXP (copy, i) = XEXP (orig, i);
          if (XEXP (orig, i) != NULL)
            XEXP (copy, i) = copy_rtx (XEXP (orig, i));
          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));
@@ -450,25 +445,13 @@ copy_rtx (orig)
          }
 
        case 't':
-         XTREE (copy, i) = XTREE (orig, i);
-         break;
-
        case 'w':
-         XWINT (copy, i) = XWINT (orig, i);
-         break;
-
        case 'i':
-         XINT (copy, i) = XINT (orig, i);
-         break;
-
        case 's':
        case 'S':
-         XSTR (copy, i) = XSTR (orig, i);
-         break;
-
+       case 'u':
        case '0':
-         /* Copy this through the wide int field; that's safest. */
-         X0WINT (copy, i) = X0WINT (orig, i);
+         /* These are left unchanged.  */
          break;
          
        default: