This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Unreviewed patch for PR 11297


On Mon, Jul 07, 2003 at 11:07:03AM -0400, David Edelsohn wrote:
> >>>>> Jakub Jelinek writes:
> 
> Jakub> Can we please move on:
> Jakub> http://gcc.gnu.org/ml/gcc-patches/2003-06/msg03025.html
> Jakub> I believe ppc-linux is still not bootstrappable without it.
> 
> 	I still am waiting on you and Janis and Alan to come to a
> conclusion about how you intended it to work.

Alan clarified the ppc64 !binds_local_p case, so I think all the sequences
gcc with the above patch creates ({-m32,-m64} {-fno-pic,-fpic,-fPIC}
{binds_local_p decl passed to *mi_thunk,!binds_local_p decl passed to it})
are correct.
The binds_local_p case stopped working in CVS after:

2003-01-08  David Edelsohn  <edelsohn@gnu.org>
        (rs6000_output_mi_thunk): Re-implement as RTL.

(but cp/method.c was never passing binds_local_p decl to it at that time,
so it was not visible).

-  if (current_file_function_operand (XEXP (DECL_RTL (function), 0), VOIDmode)
+  SYMBOL_REF_FLAG (funexp) = 0;
+  if (current_file_function_operand (funexp, VOIDmode)
       && (! lookup_attribute ("longcall",
                              TYPE_ATTRIBUTES (TREE_TYPE (function)))
          || lookup_attribute ("shortcall",
                               TYPE_ATTRIBUTES (TREE_TYPE (function)))))
-    {
-...output local call sequence
-    }
-  else
-    {
-...output plt call sequence
-    }
+    SYMBOL_REF_FLAG (funexp) = 1;
+...output call sequence

when current_file_function_operand uses SYMBOL_REF_FLAG (funexp)
means the flag was lost and Janis' changes only kept the
status quo after this change:
  SYMBOL_REF_FLAGS (funexp) &= ~SYMBOL_FLAG_LOCAL;
  funexp = gen_rtx_MEM (FUNCTION_MODE, funexp);

	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]