aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/pa
diff options
context:
space:
mode:
authorJohn David Anglin <dave.anglin@nrc-cnrc.gc.ca>2009-01-06 04:00:28 +0000
committerJohn David Anglin <danglin@gcc.gnu.org>2009-01-06 04:00:28 +0000
commit44b864717ee1da2bb98ef4b459da47361d351ebd (patch)
tree5b3693dcc709d3963f8daa06df5d2b6d334b7c64 /gcc/config/pa
parent311aab0649dded5e7f9bb84dd78040871d6812d9 (diff)
downloadgcc-44b864717ee1da2bb98ef4b459da47361d351ebd.zip
gcc-44b864717ee1da2bb98ef4b459da47361d351ebd.tar.gz
gcc-44b864717ee1da2bb98ef4b459da47361d351ebd.tar.bz2
pa.c (output_call): Relocate non-jump insns in the delay slot of long absolute calls when...
* 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
Diffstat (limited to 'gcc/config/pa')
-rw-r--r--gcc/config/pa/pa.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index 2182086..960814f 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -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