From: Jeffrey A Law Date: Wed, 15 Oct 1997 23:41:10 +0000 (+0000) Subject: pa.c (following_call): Fail if the CALL_INSN is an indirect call. X-Git-Tag: releases/egcs-1.0.0~329 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cdc0de30d8f426cd710aa7c2252829822a37d806;p=thirdparty%2Fgcc.git pa.c (following_call): Fail if the CALL_INSN is an indirect call. * pa.c (following_call): Fail if the CALL_INSN is an indirect call. Brought over from devo. From-SVN: r15914 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0e8a1efd6255..34a1d58f3a78 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Wed Oct 15 17:42:41 1997 Jeffrey A Law (law@cygnus.com) + + * pa.c (following_call): Fail if the CALL_INSN is an indirect + call. + Tue Oct 14 12:01:00 1997 Mark Mitchell * cplus-dem.c (demangle_signature): Don't look for return types on diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index 37a7d494e5d9..5a1ccbbf2543 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -5794,10 +5794,14 @@ output_parallel_addb (operands, length) } } -/* Return nonzero if INSN (a jump insn) immediately follows a call. This - is used to discourage creating parallel movb/addb insns since a jump - which immediately follows a call can execute in the delay slot of the - call. */ +/* Return nonzero if INSN (a jump insn) immediately follows a call to + a named function. This is used to discourage creating parallel movb/addb + insns since a jump which immediately follows a call can execute in the + delay slot of the call. + + It is also used to avoid filling the delay slot of a jump which + immediately follows a call since the jump can usually be eliminated + completely by modifying RP in the delay slot of the call. */ following_call (insn) rtx insn; @@ -5809,7 +5813,8 @@ following_call (insn) /* Check for CALL_INSNs and millicode calls. */ if (insn - && (GET_CODE (insn) == CALL_INSN + && ((GET_CODE (insn) == CALL_INSN + && get_attr_type (insn) != TYPE_DYNCALL) || (GET_CODE (insn) == INSN && GET_CODE (PATTERN (insn)) != SEQUENCE && GET_CODE (PATTERN (insn)) != USE