From 8cd0792fddd218f00fbfdafde5d11f5d9715c355 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Sun, 7 Jan 2001 14:50:50 -0800 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/jump.c | 19 +++++++++++++++---- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 12d2540dc00..304c7dee3b0 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 1716f073107..248c1d6dfd3 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 -- 2.30.2