From: Richard Stallman Date: Sat, 19 Sep 1992 05:33:47 +0000 (+0000) Subject: (subst_constants): Do substitute in address of MEM dest. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=91594e4329d7b2b70ea5715e560f0e43458d7837;p=gcc.git (subst_constants): Do substitute in address of MEM dest. From-SVN: r2162 --- diff --git a/gcc/integrate.c b/gcc/integrate.c index ca915434a63..424f9a6ede6 100644 --- a/gcc/integrate.c +++ b/gcc/integrate.c @@ -2346,7 +2346,8 @@ subst_constants (loc, insn, map) src = SET_SRC (x); while (GET_CODE (*dest_loc) == ZERO_EXTRACT - || GET_CODE (*dest_loc) == SIGN_EXTRACT + /* By convention, we always use ZERO_EXTRACT in the dest. */ +/* || GET_CODE (*dest_loc) == SIGN_EXTRACT */ || GET_CODE (*dest_loc) == SUBREG || GET_CODE (*dest_loc) == STRICT_LOW_PART) { @@ -2358,6 +2359,10 @@ subst_constants (loc, insn, map) dest_loc = &XEXP (*dest_loc, 0); } + /* Do substitute in the address of a destination in memory. */ + if (GET_CODE (*dest_loc) == MEM) + subst_constants (&XEXP (*dest_loc, 0), insn, map); + /* Check for the case of DEST a SUBREG, both it and the underlying register are less than one word, and the SUBREG has the wider mode. In the case, we are really setting the underlying register to the