aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1992-05-21 15:34:17 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1992-05-21 15:34:17 -0400
commitac2248231c97534516c1d9aa360e6be7555bbc3f (patch)
treefb8ea842da8c0ca09185d955aea7f397e122aa3c /gcc
parentb4ccaa16993e587a2ba5fff1af6670f8c599f7d8 (diff)
downloadgcc-ac2248231c97534516c1d9aa360e6be7555bbc3f.zip
gcc-ac2248231c97534516c1d9aa360e6be7555bbc3f.tar.gz
gcc-ac2248231c97534516c1d9aa360e6be7555bbc3f.tar.bz2
*** empty log message ***
From-SVN: r1043
Diffstat (limited to 'gcc')
-rw-r--r--gcc/reorg.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/reorg.c b/gcc/reorg.c
index ff8c24c..080e7f7 100644
--- a/gcc/reorg.c
+++ b/gcc/reorg.c
@@ -3257,6 +3257,8 @@ relax_delay_slots (first)
#endif
)
{
+ int i;
+
/* All this insn does is execute its delay list and jump to the
following insn. So delete the jump and just execute the delay
list insns.
@@ -3266,6 +3268,11 @@ relax_delay_slots (first)
This allows the count of the jump target to be properly
decremented. */
+ /* Clear the from target bit, since these insns are no longer
+ in delay slots. */
+ for (i = 0; i < XVECLEN (pat, 0); i++)
+ INSN_FROM_TARGET_P (XVECEXP (pat, 0, i)) = 0;
+
trial = PREV_INSN (insn);
delete_insn (insn);
emit_insn_after (pat, trial);