summaryrefslogtreecommitdiff
path: root/gcc/reorg.c
diff options
context:
space:
mode:
authorhp <hp@138bc75d-0d04-0410-961f-82ee72b054a4>2000-04-12 20:46:22 +0000
committerhp <hp@138bc75d-0d04-0410-961f-82ee72b054a4>2000-04-12 20:46:22 +0000
commit9e5256ce26637e8e626ad4204d26242a04df501c (patch)
treebc48b9ecca681a64c34f3b4beb68bbcf82162b4c /gcc/reorg.c
parent8624bfa604792f9cb9865400b6c87356077f1204 (diff)
downloadgcc-9e5256ce26637e8e626ad4204d26242a04df501c.tar.gz
* reorg.c (fill_slots_from_thread): Check side_effects_p when
trying the "opposite arithmetic" approach. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33125 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/reorg.c')
-rw-r--r--gcc/reorg.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/reorg.c b/gcc/reorg.c
index 3997c746ed8..379def73cbb 100644
--- a/gcc/reorg.c
+++ b/gcc/reorg.c
@@ -2808,7 +2808,8 @@ fill_slots_from_thread (insn, condition, thread, opposite_thread, likely,
dest = SET_DEST (pat), src = SET_SRC (pat);
if ((GET_CODE (src) == PLUS || GET_CODE (src) == MINUS)
&& rtx_equal_p (XEXP (src, 0), dest)
- && ! reg_overlap_mentioned_p (dest, XEXP (src, 1)))
+ && ! reg_overlap_mentioned_p (dest, XEXP (src, 1))
+ && ! side_effects_p (pat))
{
rtx other = XEXP (src, 1);
rtx new_arith;