make thread-pointer-loading asm non-volatile
authorRich Felker <dalias@aerifal.cx>
Tue, 16 Oct 2018 18:08:01 +0000 (14:08 -0400)
committerRich Felker <dalias@aerifal.cx>
Tue, 16 Oct 2018 18:11:46 +0000 (14:11 -0400)
commita4a3e4dbc086eb58e5cf6118480ef4825788e231
tree25d6ffb2cedf301bf69306e87b36aa5b3a68dbcb
parent7f01a734feddaabf366bc644c926e675656cab62
make thread-pointer-loading asm non-volatile

this will allow the compiler to cache and reuse the result, meaning we
no longer have to take care not to load it more than once for the sake
of archs where the load may be expensive.

depends on commit 1c84c99913bf1cd47b866ed31e665848a0da84a2 for
correctness, since otherwise the compiler could hoist loads during
stage 3 of dynamic linking before the initial thread-pointer setup.
14 files changed:
arch/aarch64/pthread_arch.h
arch/arm/pthread_arch.h
arch/i386/pthread_arch.h
arch/microblaze/pthread_arch.h
arch/mips/pthread_arch.h
arch/mips64/pthread_arch.h
arch/mipsn32/pthread_arch.h
arch/or1k/pthread_arch.h
arch/powerpc/pthread_arch.h
arch/powerpc64/pthread_arch.h
arch/s390x/pthread_arch.h
arch/sh/pthread_arch.h
arch/x32/pthread_arch.h
arch/x86_64/pthread_arch.h