diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 578fe7234d08..9105c222d1b9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ Tue Mar 31 16:57:33 1998 Jim Wilson + * profile.c (branch_prob): Add code to recognize HPPA tablejump entry + branch. + * toplev.c (rest_of__compilation): Call init_recog_no_volatile at end. Mon Mar 30 13:11:05 1998 Stan Cox diff --git a/gcc/profile.c b/gcc/profile.c index 39a375ed54c2..7ce327b07616 100644 --- a/gcc/profile.c +++ b/gcc/profile.c @@ -744,9 +744,19 @@ branch_prob (f, dump_file) tablejump = pattern; else if (GET_CODE (pattern) == RETURN) dest = num_blocks - 1; + else if (GET_CODE (pattern) != SET) + abort (); else if ((tem = SET_SRC (pattern)) && GET_CODE (tem) == LABEL_REF) dest = label_to_bb[CODE_LABEL_NUMBER (XEXP (tem, 0))]; + /* Recognize HPPA table jump entry. This code is similar to + the code above in the PARALLEL case. */ + else if (GET_CODE (tem) == PLUS + && GET_CODE (XEXP (tem, 0)) == MEM + && GET_CODE (XEXP (XEXP (tem, 0), 0)) == PLUS + && GET_CODE (XEXP (XEXP (XEXP (tem, 0), 0), 0)) == PC + && GET_CODE (XEXP (tem, 1)) == LABEL_REF) + dest = label_to_bb[CODE_LABEL_NUMBER (XEXP (XEXP (tem, 1), 0))]; else { rtx label_ref;