This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] powerpc: New feature - HWCAP/HWCAP2 bits in the TCB
- From: OndÅej BÃlka <neleai at seznam dot cz>
- To: Alan Modra <amodra at gmail dot com>
- Cc: munroesj at linux dot vnet dot ibm dot com, Rich Felker <dalias at libc dot org>, libc-alpha at sourceware dot org
- Date: Thu, 9 Jul 2015 11:25:02 +0200
- Subject: Re: [PATCH] powerpc: New feature - HWCAP/HWCAP2 bits in the TCB
- Authentication-results: sourceware.org; auth=none
- References: <55760314 dot 6070601 at linux dot vnet dot ibm dot com> <20150609163835 dot GI17573 at brightrain dot aerifal dot cx> <1435777940 dot 7125 dot 132 dot camel at oc7878010663> <20150703195313 dot GB23898 at domone> <20150707040217 dot GA28571 at bubble dot grove dot modra dot org>
On Tue, Jul 07, 2015 at 01:32:17PM +0930, Alan Modra wrote:
> On Fri, Jul 03, 2015 at 09:53:13PM +0200, OndÅej BÃlka wrote:
> > hwcap.h:
> > int __hwcap __attribute__ ((visibility ("hidden"))) ;
> >
> > hwcap.c:
> >
> > #include <hwcap.h>
> >
> > // gcc needs to make this first constructor.
> > extern int __global_hwcap;
> > void __attribute__ ((constructor))
> > set_hwcap ()
> > {
> > __hwcap = __global_hwcap;
> > }
>
> We considered using this scheme. In fact, I put forward the idea.
> However, it was discarded as second best, due to the need to set up
> GOT/TOC addressing on a variable access. Nothing beats Steve's single
> instruction "ld r,-0x7068(r13)" to read hwcap.
>
So you have bigger problem that you need TOC addressing for static
variable access.
That could be avoided with better ABI. If you allocate text segment
before TOC then you could use single instructions to read each static
variable.