aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2001-01-07 14:50:50 -0800
committerRichard Henderson <rth@gcc.gnu.org>2001-01-07 14:50:50 -0800
commit8cd0792fddd218f00fbfdafde5d11f5d9715c355 (patch)
tree16f8f7bf561a3299e4c92cde5f20818648f75806
parent9c2e06d903eaffa9d196168f1dc0f45cd8361371 (diff)
downloadgcc-8cd0792fddd218f00fbfdafde5d11f5d9715c355.zip
gcc-8cd0792fddd218f00fbfdafde5d11f5d9715c355.tar.gz
gcc-8cd0792fddd218f00fbfdafde5d11f5d9715c355.tar.bz2
jump.c (simplejump_p): Recognize any single_set jump of the proper form.
* jump.c (simplejump_p): Recognize any single_set jump of the proper form. From-SVN: r38786
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/jump.c19
2 files changed, 20 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 12d2540..304c7de 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2001-01-07 Richard Henderson <rth@redhat.com>
+ * jump.c (simplejump_p): Recognize any single_set jump
+ of the proper form.
+
+2001-01-07 Richard Henderson <rth@redhat.com>
+
* configure.in (slibdir): Accept an --with-slibdir option.
Use "test" not "[" in configure. Default to $(libdir).
diff --git a/gcc/jump.c b/gcc/jump.c
index 1716f07..248c1d6 100644
--- a/gcc/jump.c
+++ b/gcc/jump.c
@@ -2161,10 +2161,21 @@ int
simplejump_p (insn)
rtx insn;
{
- return (GET_CODE (insn) == JUMP_INSN
- && GET_CODE (PATTERN (insn)) == SET
- && GET_CODE (SET_DEST (PATTERN (insn))) == PC
- && GET_CODE (SET_SRC (PATTERN (insn))) == LABEL_REF);
+ rtx set;
+
+ if (GET_CODE (insn) != JUMP_INSN)
+ return 0;
+
+ set = PATTERN (insn);
+ if (GET_CODE (set) != SET)
+ {
+ set = single_set_1 (insn);
+ if (set == NULL_RTX)
+ return 0;
+ }
+
+ return (GET_CODE (SET_DEST (set)) == PC
+ && GET_CODE (SET_SRC (set)) == LABEL_REF);
}
/* Return nonzero if INSN is a (possibly) conditional jump