]> 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>
Thu, 8 Jan 2009 02:46:56 +0000 (02:46 +0000)
committerJohn David Anglin <danglin@gcc.gnu.org>
Thu, 8 Jan 2009 02:46:56 +0000 (02:46 +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: r143181

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

index ec727fb803e95f05445b5c238865664a04a63ff4..81126c64bbcbf7512c67eb1bb3867fd63869e113 100644 (file)
@@ -1,3 +1,8 @@
+2009-01-07  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.
+
 2008-12-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
 
        PR bootstrap/37295
index 5d3689cad3cd84082de33f435e70c99a5d10b0b7..91ec2dc3c2bec096235f60833d9f6948ac796eaa 100644 (file)
@@ -7462,7 +7462,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