From: rth Date: Sun, 7 Jan 2001 22:50:50 +0000 (+0000) Subject: * jump.c (simplejump_p): Recognize any single_set jump X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=75c64e9cb8e56416a94f3c15e192bee19fb25af6;p=thirdparty%2Fgcc.git * jump.c (simplejump_p): Recognize any single_set jump of the proper form. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38786 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 12d2540dc000..304c7dee3b07 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2001-01-07 Richard Henderson + + * jump.c (simplejump_p): Recognize any single_set jump + of the proper form. + 2001-01-07 Richard Henderson * configure.in (slibdir): Accept an --with-slibdir option. diff --git a/gcc/jump.c b/gcc/jump.c index 1716f073107e..248c1d6dfd30 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