This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
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>