14 Feb 2012 17:57
Re: TLS register access trapping failure on Orion
Matt Thomas <matt <at> 3am-software.com>
2012-02-14 16:57:54 GMT
2012-02-14 16:57:54 GMT
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.
RSS Feed