]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
pa.c (output_call): Relocate non-jump insns in the delay slot of long absolute calls...
authorJohn David Anglin <dave.anglin@nrc-cnrc.gc.ca>
Tue, 6 Jan 2009 04:00:28 +0000 (04:00 +0000)
committerJohn David Anglin <danglin@gcc.gnu.org>
Tue, 6 Jan 2009 04:00:28 +0000 (04:00 +0000)
* pa.c (output_call): Relocate non-jump insns in the delay slot of long
absolute calls when generating PA 2.0 code.

From-SVN: r143113

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

index 0fda2b414dc6698fdd8d08c5e29042e73a6cd720..f61a382b5f9a8acfea8253fb2d733ea1d9856a82 100644 (file)
@@ -1,3 +1,8 @@
+2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * pa.c (output_call): Relocate non-jump insns in the delay slot of long
+       absolute calls when generating PA 2.0 code.
+
 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
 
        PR rtl-optimization/38583
index 21820869d5c464b11b63c2750843a5f5ea88af13..960814f65d776595318849f8410ed9abacaf2076 100644 (file)
@@ -7547,7 +7547,9 @@ output_call (rtx insn, rtx call_dest, int sibcall)
          if (seq_length != 0
              && GET_CODE (NEXT_INSN (insn)) != JUMP_INSN
              && !sibcall
-             && (!TARGET_PA_20 || indirect_call))
+             && (!TARGET_PA_20
+                 || indirect_call
+                 || ((TARGET_LONG_ABS_CALL || local_call) && !flag_pic)))
            {
              /* A non-jump insn in the delay slot.  By definition we can
                 emit this insn before the call (and in fact before argument