aboutsummaryrefslogtreecommitdiff
path: root/gcc/rtl.c
diff options
context:
space:
mode:
authorBernd Schmidt <bernds@cygnus.co.uk>1999-10-11 18:42:36 +0000
committerBernd Schmidt <crux@gcc.gnu.org>1999-10-11 18:42:36 +0000
commite63db8f67d6574c04f87109b0e2e70db944f80af (patch)
tree6a9e1c6a8b8037f5e79e81dcbe99eff47c781322 /gcc/rtl.c
parent7c56a6cef7938d2f017efa78300a2bf63956fd2e (diff)
downloadgcc-e63db8f67d6574c04f87109b0e2e70db944f80af.zip
gcc-e63db8f67d6574c04f87109b0e2e70db944f80af.tar.gz
gcc-e63db8f67d6574c04f87109b0e2e70db944f80af.tar.bz2
Bring copy_insn_1 and copy_rtx in sync and simplify them
From-SVN: r29902
Diffstat (limited to 'gcc/rtl.c')
-rw-r--r--gcc/rtl.c23
1 files changed, 3 insertions, 20 deletions
diff --git a/gcc/rtl.c b/gcc/rtl.c
index a20d9e5..e181279 100644
--- 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: