summaryrefslogtreecommitdiff
path: root/gcc/emit-rtl.c
diff options
context:
space:
mode:
authorcrux <crux@138bc75d-0d04-0410-961f-82ee72b054a4>1999-10-11 18:42:36 +0000
committercrux <crux@138bc75d-0d04-0410-961f-82ee72b054a4>1999-10-11 18:42:36 +0000
commitd925550de6043d9f82199658f3a9c34e39aa081c (patch)
tree6a9e1c6a8b8037f5e79e81dcbe99eff47c781322 /gcc/emit-rtl.c
parent6c65e8d76ee07cd4919e48b7a3f80426e76e7aa7 (diff)
downloadgcc-d925550de6043d9f82199658f3a9c34e39aa081c.tar.gz
Bring copy_insn_1 and copy_rtx in sync and simplify them
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29902 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r--gcc/emit-rtl.c21
1 files changed, 4 insertions, 17 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index d121ae7b25a..1918a437abc 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -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: