From a7ebd547fb652723984d8df350c9196990d19fa3 Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Tue, 31 Mar 1998 18:56:59 +0000 Subject: [PATCH] Fix HPPA -fprofile-arcs abort on switch statements. * profile.c (branch_prob): Add code to recognize HPPA tablejump entry branch. From-SVN: r18919 --- gcc/ChangeLog | 3 +++ gcc/profile.c | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 578fe7234d0..9105c222d1b 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 39a375ed54c..7ce327b0761 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; -- 2.30.2