On Thu, Mar 18, 2010 at 06:35:21PM -0700, Tony Lindgren wrote:
> -#if defined(CONFIG_HAS_TLS_REG)
> -     mcr     p15, 0, r3, c13, c0, 3          @ set TLS register
> -#elif !defined(CONFIG_TLS_REG_EMUL)
> -     mov     r4, #0xffff0fff
> -     str     r3, [r4, #-15]                  @ TLS val at 0xffff0ff0
> +#if !defined(CONFIG_TLS_REG_EMUL)
> +     ldr     r4, =elf_hwcap
> +     ldr     r4, [r4, #0]
> +     tst     r4, #HWCAP_TLS                  @ hardware with TLS?

This is really really inefficient.  Both the second ldr and tst will stall
the pipeline because they need to wait for the result of the precending
ldr.  Can we do better by re-ordering some instructions?

Also, the ifndef seems incorrect - if we have TLS_REG_EMUL we seem to omit
all this code.
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to