From e63db8f67d6574c04f87109b0e2e70db944f80af Mon Sep 17 00:00:00 2001 From: Bernd Schmidt Date: Mon, 11 Oct 1999 18:42:36 +0000 Subject: [PATCH] Bring copy_insn_1 and copy_rtx in sync and simplify them From-SVN: r29902 --- gcc/ChangeLog | 5 +++++ gcc/emit-rtl.c | 21 ++++----------------- gcc/rtl.c | 23 +++-------------------- 3 files changed, 12 insertions(+), 37 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 888a886f646..4b6c13a6f0c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Mon Oct 11 20:31:51 1999 Bernd Schmidt + + * 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 * config/mips/mips.c (mips_build_va_list): Correct 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: diff --git a/gcc/rtl.c b/gcc/rtl.c index a20d9e5e190..e181279010a 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: -- 2.30.2