]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
pa.c (following_call): Fail if the CALL_INSN is an indirect call.
authorJeffrey A Law <law@cygnus.com>
Wed, 15 Oct 1997 23:41:10 +0000 (23:41 +0000)
committerJeff Law <law@gcc.gnu.org>
Wed, 15 Oct 1997 23:41:10 +0000 (17:41 -0600)
        * pa.c (following_call): Fail if the CALL_INSN is an indirect
        call.
Brought over from devo.

From-SVN: r15914

gcc/ChangeLog
gcc/config/pa/pa.c

index 0e8a1efd6255848ab93edf082d1391f407541ef4..34a1d58f3a78ffbfea041707c4c8f8fc688fda1c 100644 (file)
@@ -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  <mmitchell@usa.net>
 
        * cplus-dem.c (demangle_signature): Don't look for return types on
index 37a7d494e5d93563c0e1af152565b8d38793e693..5a1ccbbf2543ec2fa78a7b44bd1cb1952094f1af 100644 (file)
@@ -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