PR target/62038
authordanglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 11 Aug 2014 19:07:16 +0000 (19:07 +0000)
committerdanglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 11 Aug 2014 19:07:16 +0000 (19:07 +0000)
* config/pa/pa.c (pa_asm_output_mi_thunk): Use a branch with %r31 link
register.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213829 138bc75d-0d04-0410-961f-82ee72b054a4

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

index af940e0..3bb312a 100644 (file)
@@ -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
index d52d52f..00084ab 100644 (file)
@@ -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)
        {