+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
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)
}
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:
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));
}
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: