aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-10-06 06:57:08 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1994-10-06 06:57:08 -0400
commitce15adaa116fa31401863c4d2f94dd507e935af2 (patch)
tree28ca4a185141bb183fa46a77dd2bfd1d73398a16 /gcc
parentaf5b53ed8d64db12ab1c684f86f5b44077616068 (diff)
downloadgcc-ce15adaa116fa31401863c4d2f94dd507e935af2.zip
gcc-ce15adaa116fa31401863c4d2f94dd507e935af2.tar.gz
gcc-ce15adaa116fa31401863c4d2f94dd507e935af2.tar.bz2
(try_merge_delay_insns): Update THREAD if it is split.
From-SVN: r8226
Diffstat (limited to 'gcc')
-rw-r--r--gcc/reorg.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/reorg.c b/gcc/reorg.c
index 2cff2c9..430bc7d 100644
--- a/gcc/reorg.c
+++ b/gcc/reorg.c
@@ -1762,6 +1762,7 @@ try_merge_delay_insns (insn, thread)
for (trial = thread; !stop_search_p (trial, 1); trial = next_trial)
{
rtx pat = PATTERN (trial);
+ rtx oldtrial = trial;
next_trial = next_nonnote_insn (trial);
@@ -1781,6 +1782,8 @@ try_merge_delay_insns (insn, thread)
&& (trial = try_split (pat, trial, 0)) != 0
/* Update next_trial, in case try_split succeeded. */
&& (next_trial = next_nonnote_insn (trial))
+ /* Likewise THREAD. */
+ && (thread = oldtrial == thread ? trial : thread)
&& rtx_equal_p (PATTERN (next_to_match), PATTERN (trial))
/* Have to test this condition if annul condition is different
from (and less restrictive than) non-annulling one. */