diff options
author | Jeff Law <law@gcc.gnu.org> | 1993-10-17 19:40:26 -0600 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1993-10-17 19:40:26 -0600 |
commit | 51b8cba1261d04a4104d0a09e6b7d59c5eb5fea5 (patch) | |
tree | fe970e3cc3c35423882b71d44f61168bbe702d21 | |
parent | ee80d1cd86d126eeb5abfe04cae3a5d0dfbbabe8 (diff) | |
download | gcc-51b8cba1261d04a4104d0a09e6b7d59c5eb5fea5.zip gcc-51b8cba1261d04a4104d0a09e6b7d59c5eb5fea5.tar.gz gcc-51b8cba1261d04a4104d0a09e6b7d59c5eb5fea5.tar.bz2 |
reload1.c (eliminate_regs_in_insn): Rerecognize some loads and stores.
* reload1.c (eliminate_regs_in_insn): Rerecognize some loads and
stores.
From-SVN: r5792
-rw-r--r-- | gcc/reload1.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c index 19c1479..00d781c 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -3198,6 +3198,14 @@ eliminate_regs_in_insn (insn, replace) if ((GET_CODE (old_body) == SET && GET_CODE (SET_SRC (old_body)) == REG && (GET_CODE (new_body) != SET || GET_CODE (SET_SRC (new_body)) != REG)) + /* If this was a load from or store to memory, compare + the MEM in recog_operand to the one in the insn. If they + are not equal, then rerecognize the insn. */ + || (GET_CODE (old_body) == SET + && ((GET_CODE (SET_SRC (old_body)) == MEM + && SET_SRC (old_body) != recog_operand[1]) + || (GET_CODE (SET_DEST (old_body)) == MEM + && SET_DEST (old_body) != recog_operand[0]))) /* If this was an add insn before, rerecognize. */ || (GET_CODE (old_body) == SET |