[committed] Fix PR target/17643 on main and 3.4

John David Anglin dave@hiauly1.hia.nrc.ca
Mon Dec 27 02:01:00 GMT 2004


The enclosed patch fixes a small regression involving the -mportable-runtime
option on hppa-linux.  Tested on hppa-unknown-linux-gnu.  Committed to
main and 3.4 branch.  3.3 needs a different fix.

Dave
-- 
J. David Anglin                                  dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6602)

2004-12-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/17643
	* pa.c (pa_function_ok_for_sibcall): Sibcalls are not ok when
	generating code for the portable runtime.

Index: config/pa/pa.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/pa/pa.c,v
retrieving revision 1.280
diff -u -3 -p -r1.280 pa.c
--- config/pa/pa.c	15 Dec 2004 05:10:56 -0000	1.280
+++ config/pa/pa.c	27 Dec 2004 00:01:37 -0000
@@ -8091,6 +8126,9 @@ pa_asm_output_mi_thunk (FILE *file, tree
 static bool
 pa_function_ok_for_sibcall (tree decl, tree exp ATTRIBUTE_UNUSED)
 {
+  if (TARGET_PORTABLE_RUNTIME)
+    return false;
+
   /* Sibcalls are ok for TARGET_ELF32 as along as the linker is used in
      single subspace mode and the call is not indirect.  As far as I know,
      there is no operating system support for the multiple subspace mode.
@@ -8108,9 +8146,8 @@ pa_function_ok_for_sibcall (tree decl, t
   if (TARGET_64BIT)
     return false;
 
-  return (decl
-	  && !TARGET_PORTABLE_RUNTIME
-	  && !TREE_PUBLIC (decl));
+  /* Sibcalls are only ok within a translation unit.  */
+  return (decl && !TREE_PUBLIC (decl));
 }
 
 /* Returns 1 if the 6 operands specified in OPERANDS are suitable for



More information about the Gcc-patches mailing list