diff options
author | John David Anglin <danglin@gcc.gnu.org> | 2014-08-11 19:07:16 +0000 |
---|---|---|
committer | John David Anglin <danglin@gcc.gnu.org> | 2014-08-11 19:07:16 +0000 |
commit | b2f86285bd25e572ff37c4aac6ae35a14214dadb (patch) | |
tree | 76fb0fe40ca173466f2c4ce921648a5831383613 /gcc | |
parent | e2e4599a36c2ee11ff907e09806b67f01e6e1c36 (diff) | |
download | gcc-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')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/pa/pa.c | 4 |
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index af940e0..3bb312a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2014-08-11 John Dave Anglin <danglin@gcc.gnu.org> + + PR target/62038 + * config/pa/pa.c (pa_asm_output_mi_thunk): Use a branch with %r31 link + register. + 2014-08-11 Mircea Namolaru <mircea.namolaru@inria.fr> Replacement of isl_int by isl_val 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) { |