aboutsummaryrefslogtreecommitdiff
path: root/gcc/emit-rtl.c
diff options
context:
space:
mode:
authorJames Van Artsdalen <jrv@gnu.org>1992-04-21 05:40:51 +0000
committerJames Van Artsdalen <jrv@gnu.org>1992-04-21 05:40:51 +0000
commitc572e5ba687d4e4c7c380e47750ead7c84a8ef39 (patch)
tree1e418d77f48b5851e28606eae9aadd75114b51ab /gcc/emit-rtl.c
parent5944b57e254405218515bf28f3b1a06aa711083e (diff)
downloadgcc-c572e5ba687d4e4c7c380e47750ead7c84a8ef39.zip
gcc-c572e5ba687d4e4c7c380e47750ead7c84a8ef39.tar.gz
gcc-c572e5ba687d4e4c7c380e47750ead7c84a8ef39.tar.bz2
*** empty log message ***
From-SVN: r808
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r--gcc/emit-rtl.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 00945c8..ad8089b 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -1516,6 +1516,23 @@ prev_label (insn)
}
#ifdef HAVE_cc0
+/* INSN uses CC0 and is being moved into a delay slot. Set up REG_CC_SETTER
+ and REG_CC_USER notes so we can find it. */
+
+void
+link_cc0_insns (insn)
+ rtx insn;
+{
+ rtx user = next_nonnote_insn (insn);
+
+ if (GET_CODE (user) == INSN && GET_CODE (PATTERN (user)) == SEQUENCE)
+ user = XVECEXP (PATTERN (user), 0, 0);
+
+ REG_NOTES (user) = gen_rtx (INSN_LIST, REG_CC_SETTER, insn,
+ REG_NOTES (user));
+ REG_NOTES (insn) = gen_rtx (INSN_LIST, REG_CC_USER, user, REG_NOTES (insn));
+}
+
/* Return the next insn that uses CC0 after INSN, which is assumed to
set it. This is the inverse of prev_cc0_setter (i.e., prev_cc0_setter
applied to the result of this function should yield INSN).