diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1992-05-25 21:33:51 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1992-05-25 21:33:51 -0400 |
commit | 178c39f68b8df001076d4ede516e2d498c122004 (patch) | |
tree | 3ab7da0cad15866825e02ab5769530a1ab8f2c53 | |
parent | 700f6f985c4d5645116d34470d9112183ee7a31b (diff) | |
download | gcc-178c39f68b8df001076d4ede516e2d498c122004.zip gcc-178c39f68b8df001076d4ede516e2d498c122004.tar.gz gcc-178c39f68b8df001076d4ede516e2d498c122004.tar.bz2 |
*** empty log message ***
From-SVN: r1087
-rw-r--r-- | gcc/cse.c | 7 |
1 files changed, 4 insertions, 3 deletions
@@ -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; |