From: Jim Wilson Date: Wed, 11 May 1994 21:44:22 +0000 (-0700) Subject: (cse_insn): Set src_eqv if the dest is a STRICT_LOW_PART. X-Git-Tag: misc/cutover-egcs-0~6665 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7b3ab05e789445ae6b21463ec01cc2d77bd21171;p=thirdparty%2Fgcc.git (cse_insn): Set src_eqv if the dest is a STRICT_LOW_PART. From-SVN: r7278 --- diff --git a/gcc/cse.c b/gcc/cse.c index 88454035bcfc..926f06b68a02 100644 --- a/gcc/cse.c +++ b/gcc/cse.c @@ -6044,10 +6044,14 @@ cse_insn (insn, in_libcall_block) fold_rtx (x, insn); } - /* Store the equivalent value in SRC_EQV, if different. */ + /* Store the equivalent value in SRC_EQV, if different, or if the DEST + is a STRICT_LOW_PART. The latter condition is necessary because SRC_EQV + is handled specially for this case, and if it isn't set, then there will + be no equivalence for the destinatation. */ if (n_sets == 1 && REG_NOTES (insn) != 0 && (tem = find_reg_note (insn, REG_EQUAL, NULL_RTX)) != 0 - && ! rtx_equal_p (XEXP (tem, 0), SET_SRC (sets[0].rtl))) + && (! rtx_equal_p (XEXP (tem, 0), SET_SRC (sets[0].rtl)) + || GET_CODE (SET_DEST (sets[0].rtl)) == STRICT_LOW_PART)) src_eqv = canon_reg (XEXP (tem, 0), NULL_RTX); /* Canonicalize sources and addresses of destinations.