aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/pa/pa.c
diff options
context:
space:
mode:
authorJohn David Anglin <danglin@gcc.gnu.org>2014-08-11 19:07:16 +0000
committerJohn David Anglin <danglin@gcc.gnu.org>2014-08-11 19:07:16 +0000
commitb2f86285bd25e572ff37c4aac6ae35a14214dadb (patch)
tree76fb0fe40ca173466f2c4ce921648a5831383613 /gcc/config/pa/pa.c
parente2e4599a36c2ee11ff907e09806b67f01e6e1c36 (diff)
downloadgcc-b2f86285bd25e572ff37c4aac6ae35a14214dadb.zip
gcc-b2f86285bd25e572ff37c4aac6ae35a14214dadb.tar.gz
gcc-b2f86285bd25e572ff37c4aac6ae35a14214dadb.tar.bz2
re PR target/62038 (Out of range branch target in thunk)
PR target/62038 * config/pa/pa.c (pa_asm_output_mi_thunk): Use a branch with %r31 link register. From-SVN: r213829
Diffstat (limited to 'gcc/config/pa/pa.c')
-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 d52d52f..00084ab 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -8285,7 +8285,9 @@ pa_asm_output_mi_thunk (FILE *file, tree thunk_fndecl, HOST_WIDE_INT delta,
if (!val_14)
output_asm_insn ("addil L'%2,%%r26", xoperands);
- output_asm_insn ("b %0", xoperands);
+ /* An absolute branch without a link register is not considered
+ a call by GAS. We need a call to get a stub if necessary. */
+ output_asm_insn ("bl %0,%%r31", xoperands);
if (val_14)
{