Port-arm archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: TLS register access trapping failure on Orion



On Feb 14, 2012, at 2:10 AM, Reinoud Zandijk wrote:
> 
> static __inline void *
> __lwp_getprivate_fast(void)
> {
>        void *rv;
>        __asm("mrc p15, 0, %0, c13, c0, 3" : "=r"(rv));
>        __asm("cmp %0, #0" : "=r"(rv));
>        __asm("mrceq p15, 0, %0, c13, c0, 1" : "=r"(rv));
>        return rv;
> }

Alas, it's not that simple.  You still to deal with setting the CONTEXT_ID 
register in cpu_setprivate and saving/restoring it in cpu_switchto.

reg 3 is easy since it's only ARMV6 and above.  reg 1 is a lot harder since 
only some armv5 have it, but not all.




Home | Main Index | Thread Index | Old Index