[Fwd: Re: [PATCH] [ARC] Add linker relaxation.]
Claudiu Zissulescu
Claudiu.Zissulescu@synopsys.com
Wed Jul 24 14:30:00 GMT 2019
Forgot to forward to the group.
//Claudiu
-------- Forwarded Message --------
From: Claudiu Zissulescu <claziss@synopsys.com>
To: Nick Clifton <nickc@redhat.com>
Subject: Re: [PATCH] [ARC] Add linker relaxation.
Date: Wed, 24 Jul 2019 17:26:52 +0300
> Hi Nick,
>
> On Wed, 2019-07-24 at 15:07 +0100, Nick Clifton wrote:
> > Hi Claudiu,
> >
> > > Add linker relaxation. The first relaxation added is converting
> > > GOTPC32 to PCREL relocations. This relaxation doesn't change the size of
> > > the binary.
> >
> > As a matter of interest, what is the benefit of this relaxation ?
> > If it does not change the size then why bother ?
>
> Speed :) we replace a load instruction with an add.
>
> > > bfd/
> > > xxxx-xx-xx Claudiu Zissulescu <claziss@synopsys.com>
> > >
> > > * elf32-arc.c (bfd_get_32_me): New function.
> > > (bfd_put_32_me): Likewise.
> > > (arc_elf_relax_section): Likewise.
> > > (bfd_elf32_bfd_relax_section): Define.
> > >
> > > ld/testsuite/
> > > xxxx-xx-xx Claudiu Zissulescu <claziss@synopsys.com>
> > >
> > > * ld-arc/relax-local-pic.d: New test.
> > > * ld-arc/relax-local-pic.s: New file.
> >
> > Given that these changes are ARC specific, you can self-approve.
> > Or were you just posting here to let us know what you are doing ?
> > (If so, then it helps to include "COMMIT" in the subject line,
> > so that I know that the patch does not need a review).
>
> I've already pushed it :) Next time I will add COMMIT in the subject. Please
> apologize me for this.
>
> > > +static bfd_vma
> > > +bfd_get_32_me (bfd * abfd,const unsigned char * data)
> > > +{
> > > + bfd_vma value = 0;
> > > +
> > > + if (bfd_big_endian(abfd)) {
> > > + value = bfd_get_32 (abfd, data);
> > > + }
> > > + else {
> > > + value = ((bfd_get_8 (abfd, data) & 255) << 16);
> > > + value |= ((bfd_get_8 (abfd, data + 1) & 255) << 24);
> > > + value |= (bfd_get_8 (abfd, data + 2) & 255);
> > > + value |= ((bfd_get_8 (abfd, data + 3) & 255) << 8);
> > > + }
> >
> > Another curiosity - why "_me" ? Does it stand for middle-endian ?
>
> It is the "middle-endian" thing specific to ARC processors.
>
> > Also - formatting. Please do not end lines with opening curly braces.
>
> Aghh, it escaped me this, I will push an cleanup asap.
>
> > But apart from that the patch looks good to me.
> >
>
> Thanks!
More information about the Binutils
mailing list