aboutsummaryrefslogtreecommitdiff
path: root/arch/i386
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2018-10-16 14:08:01 -0400
committerRich Felker <dalias@aerifal.cx>2018-10-16 14:11:46 -0400
commita4a3e4dbc086eb58e5cf6118480ef4825788e231 (patch)
tree25d6ffb2cedf301bf69306e87b36aa5b3a68dbcb /arch/i386
parent7f01a734feddaabf366bc644c926e675656cab62 (diff)
downloadmusl-a4a3e4dbc086eb58e5cf6118480ef4825788e231.tar.gz
musl-a4a3e4dbc086eb58e5cf6118480ef4825788e231.tar.xz
musl-a4a3e4dbc086eb58e5cf6118480ef4825788e231.zip
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.
Diffstat (limited to 'arch/i386')
-rw-r--r--arch/i386/pthread_arch.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/i386/pthread_arch.h b/arch/i386/pthread_arch.h
index 7f38a562..6f600b9e 100644
--- a/arch/i386/pthread_arch.h
+++ b/arch/i386/pthread_arch.h
@@ -1,7 +1,7 @@
static inline struct pthread *__pthread_self()
{
struct pthread *self;
- __asm__ __volatile__ ("movl %%gs:0,%0" : "=r" (self) );
+ __asm__ ("movl %%gs:0,%0" : "=r" (self) );
return self;
}