On Thu, Jun 25, 2020 at 1:34 PM Joel Sherrill <j...@rtems.org> wrote:
>
> On Thu, Jun 25, 2020 at 2:54 PM Nathan Sidwell <nat...@acm.org> wrote:
>
> > On 6/25/20 2:34 PM, Joel Sherrill wrote:
> > > Hi
> > >
> > > RTEMS supports over 15 processor architectures and we would like to
> > ensure
> > > that TLS is supported on all  rather than just a handful of popular ones
> > > (arm, x86, powerpc, sparc, etc). I know of Ulrich Drepper's document (
> > > https://www.akkadia.org/drepper/tls.pdf) but it is a few years old and
> > > covers only a subset of architectures.
> > >
> > > Is TLS supported on all architectures in GCC?
> > >
> > > Is there some documentation on how it is implemented on architectures not
> > > in Ulrich's paper? Or some guidance on how to extract this information
> > from
> > > the GCC source?
> >
> > The ARM (32) abi has some extensions to that, which originally came from
> > Alex Oliva and then I implemented (The GNU2 TLS stuff).  I think the
> > smarts is in the linker for that though.
> >
> > IMHO bfd might be a better source of information than gcc.
> >
>
> BFD would know the section and attribute part but isn't gcc responsible for
> generating the code to dereference into it?  It could be a specific base
> register
> or an invalid instruction fault (MIPS) or something else. I'm wondering how
> one knows what that magic to look up the base is for a specific
> architecture.
>
> Or if there is an easy way for a target to change say the MIPS bad
> instruction
> to a subroutine call? It would seem that GCC would have an architecture
> independent base lookup alternative.

NOTE MIPS32/64r3 says that system register is implemented.  I know of
a few implementations that implement that register as a register
(Octeon 2 and Octeon3 for an example).

Thanks,
Andrew


>
> --joel
>
> --joel
>
> >
> > natan
> > --
> > Nathan Sidwell
> >

Reply via email to