From: Richard Kenner Date: Tue, 26 May 1992 01:33:51 +0000 (-0400) Subject: *** empty log message *** X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=178c39f68b8df001076d4ede516e2d498c122004;p=gcc.git *** empty log message *** From-SVN: r1087 --- diff --git a/gcc/cse.c b/gcc/cse.c index 940a0bedb59..dc7096b2c10 100644 --- a/gcc/cse.c +++ b/gcc/cse.c @@ -2360,10 +2360,11 @@ canon_reg (x, insn) rtx new = canon_reg (XEXP (x, i), insn); /* If replacing pseudo with hard reg or vice versa, ensure the - insn remains valid. */ + insn remains valid. Likewise if the insn has MATCH_DUPs. */ if (new && GET_CODE (new) == REG && GET_CODE (XEXP (x, i)) == REG - && ((REGNO (new) < FIRST_PSEUDO_REGISTER) - != (REGNO (XEXP (x, i)) < FIRST_PSEUDO_REGISTER))) + && (((REGNO (new) < FIRST_PSEUDO_REGISTER) + != (REGNO (XEXP (x, i)) < FIRST_PSEUDO_REGISTER)) + || (insn != 0 && insn_n_dups[recog_memoized (insn)] > 0))) validate_change (insn, &XEXP (x, i), new, 0); else XEXP (x, i) = new;