This is the mail archive of the gcc@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]

Re: ppc-eabi: interaction betwen section name attributes and -msdata


> Cc: gcc@gcc.gnu.org
> Reply-To: jtc@redback.com
> From: jtc@redback.com (J.T. Conklin)
> Date: 06 Jul 2001 15:35:22 -0700
> User-Agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/20.4 (Emerald)
> X-OriginalArrivalTime: 06 Jul 2001 22:35:23.0450 (UTC) FILETIME=[F200F1A0:01C1066B]
> 
> >>>>> "Geoff" == Geoff Keating <geoffk@geoffk.org> writes:
> >> It appears that rs6000_encode_section_info() does exactly that.
> >> I'm not sure how much good it does only there.  I was thinking of
> >> moving that bit of code into it's own function, and re-using in the
> >> other functions/macros that compare size against g_switch_value.
> 
> Geoff> Yes.  When I said it wasn't a good idea, I was speaking from
> Geoff> painful experience :-).
> Geoff>
> Geoff> I guess if you don't want to implement the new feature,
> Geoff> splitting out the existing code would be OK.
> 
> After further investigation, simply tweaking the existing code in
> rs6000_encode_section_info() was all that was necessary to fix my
> two problems.
> 
> Do you see any problems with the enclosed patch?

No, it all looks fine.  Please commit it.

>         --jtc
> 
> 2001-07-06  J.T. Conklin  <jtc@redback.com>
> 
> 	* config/rs6000/rs6000.c (rs6000_encode_section_info): Don't put
> 	the variable in a small data section if an section attribute was
> 	specified.  Fixed off by one errors comparing section attributes
> 	and small data section names.
> 
> *** rs6000.c	2001/07/06 00:25:37	1.1
> --- rs6000.c	2001/07/06 21:43:52
> ***************
> *** 7794,7812 ****
>   	    abort ();
>   	}
>   
> !       if ((size > 0 && size <= g_switch_value)
>   	  || (name
> ! 	      && ((len == sizeof (".sdata") - 1
>   		   && strcmp (name, ".sdata") == 0)
> ! 		  || (len == sizeof (".sdata2") - 1
>   		      && strcmp (name, ".sdata2") == 0)
> ! 		  || (len == sizeof (".sbss") - 1
>   		      && strcmp (name, ".sbss") == 0)
> ! 		  || (len == sizeof (".sbss2") - 1
>   		      && strcmp (name, ".sbss2") == 0)
> ! 		  || (len == sizeof (".PPC.EMB.sdata0") - 1
>   		      && strcmp (name, ".PPC.EMB.sdata0") == 0)
> ! 		  || (len == sizeof (".PPC.EMB.sbss0") - 1
>   		      && strcmp (name, ".PPC.EMB.sbss0") == 0))))
>   	{
>   	  rtx sym_ref = XEXP (DECL_RTL (decl), 0);
> --- 7794,7813 ----
>   	    abort ();
>   	}
>   
> !       if ((!name 
> ! 	   && (size > 0 && size <= g_switch_value))
>   	  || (name
> ! 	      && ((len == sizeof (".sdata")
>   		   && strcmp (name, ".sdata") == 0)
> ! 		  || (len == sizeof (".sdata2")
>   		      && strcmp (name, ".sdata2") == 0)
> ! 		  || (len == sizeof (".sbss")
>   		      && strcmp (name, ".sbss") == 0)
> ! 		  || (len == sizeof (".sbss2")
>   		      && strcmp (name, ".sbss2") == 0)
> ! 		  || (len == sizeof (".PPC.EMB.sdata0")
>   		      && strcmp (name, ".PPC.EMB.sdata0") == 0)
> ! 		  || (len == sizeof (".PPC.EMB.sbss0")
>   		      && strcmp (name, ".PPC.EMB.sbss0") == 0))))
>   	{
>   	  rtx sym_ref = XEXP (DECL_RTL (decl), 0);
> 
> 
> -- 
> J.T. Conklin
> RedBack Networks
> 


-- 
- Geoffrey Keating <geoffk@geoffk.org>


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