From 605201baf919a11f7914c8817fd2a756ee4fe13a Mon Sep 17 00:00:00 2001
From: John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
Date: Fri, 9 Jul 2004 20:11:59 +0000
Subject: [PATCH] re PR target/16459 (ld: libbackend.a(expr.o)(.text+0x40c2c):
 cannot handle R_PARISC_PCREL17F for $$dyncall)

	PR target/16459
	* pa.c (output_indirect_call): Use %r2 as the link register when
	calling $$dyncall with a pc-relative branch.

From-SVN: r84394
---
 gcc/ChangeLog      | 6 ++++++
 gcc/config/pa/pa.c | 2 +-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a34758c0ffee..4fbf790c0167 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2004-07-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+	PR target/16459
+	* pa.c (output_indirect_call): Use %r2 as the link register when
+	calling $$dyncall with a pc-relative branch.
+
 2004-07-08  Gerald Pfeifer  <gerald@pfeifer.com>
 
 	* doc/install.texi (Binaries): Mention OpenPKG.
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index cf7da9c1faa0..da065ce6dec0 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -7545,7 +7545,7 @@ output_indirect_call (rtx insn, rtx call_dest)
      No need to check target flags as the length uniquely identifies
      the remaining cases.  */
   if (attr_length_indirect_call (insn) == 8)
-    return ".CALL\tARGW0=GR\n\t{bl|b,l} $$dyncall,%%r31\n\tcopy %%r31,%%r2";
+    return ".CALL\tARGW0=GR\n\t{bl|b,l} $$dyncall,%%r2\n\tcopy %%r2,%%r31";
 
   /* Long millicode call, but we are not generating PIC or portable runtime
      code.  */
-- 
GitLab