aboutsummaryrefslogtreecommitdiff
path: root/contrib/gcc/jump.c
diff options
context:
space:
mode:
authorDavid E. O'Brien <obrien@FreeBSD.org>2002-12-04 15:42:16 +0000
committerDavid E. O'Brien <obrien@FreeBSD.org>2002-12-04 15:42:16 +0000
commit45fc31f8dde65cd5b7930b1047a99745f440e9f3 (patch)
tree78b77287e56e2a87be73638176124be85a8fc6c7 /contrib/gcc/jump.c
parent90cbf5083e47af838ba7e17a308c7e6ac72444dc (diff)
downloadsrc-45fc31f8dde65cd5b7930b1047a99745f440e9f3.tar.gz
src-45fc31f8dde65cd5b7930b1047a99745f440e9f3.zip
Gcc 3.2.1 release virgin vendor import. (19-Nov-2002)
Notes
Notes: svn path=/vendor/gcc/dist/; revision=107590
Diffstat (limited to 'contrib/gcc/jump.c')
-rw-r--r--contrib/gcc/jump.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/contrib/gcc/jump.c b/contrib/gcc/jump.c
index 1a26b5924b93..14baeed32cfb 100644
--- a/contrib/gcc/jump.c
+++ b/contrib/gcc/jump.c
@@ -1076,6 +1076,21 @@ simplejump_p (insn)
&& GET_CODE (SET_DEST (PATTERN (insn))) == PC
&& GET_CODE (SET_SRC (PATTERN (insn))) == LABEL_REF);
}
+/* Return 1 if INSN is an tablejump. */
+
+int
+tablejump_p (insn)
+ rtx insn;
+{
+ rtx table;
+ return (GET_CODE (insn) == JUMP_INSN
+ && JUMP_LABEL (insn)
+ && NEXT_INSN (JUMP_LABEL (insn))
+ && (table = next_active_insn (JUMP_LABEL (insn)))
+ && GET_CODE (table) == JUMP_INSN
+ && (GET_CODE (PATTERN (table)) == ADDR_VEC
+ || GET_CODE (PATTERN (table)) == ADDR_DIFF_VEC));
+}
/* Return nonzero if INSN is a (possibly) conditional jump
and nothing more.