summaryrefslogtreecommitdiff
path: root/src/thread/x32/__set_thread_area.s
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2015-05-02 11:53:45 -0400
committerRich Felker <dalias@aerifal.cx>2015-05-02 11:53:45 -0400
commit2d5c74c21e0483128624c43d4399ef49e057e264 (patch)
tree705a4187697b5df87e58ca34c3b477b5255e2d79 /src/thread/x32/__set_thread_area.s
parent4f69594689992d76088f2b0af79cd91c40579f64 (diff)
downloadmusl-2d5c74c21e0483128624c43d4399ef49e057e264.tar.gz
fix x32 __set_thread_area failure due to junk in upper bits
the kernel does not properly clear the upper bits of the syscall argument, so we have to do it before the syscall.
Diffstat (limited to 'src/thread/x32/__set_thread_area.s')
-rw-r--r--src/thread/x32/__set_thread_area.s2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/thread/x32/__set_thread_area.s b/src/thread/x32/__set_thread_area.s
index 94bc3630..e0daf72f 100644
--- a/src/thread/x32/__set_thread_area.s
+++ b/src/thread/x32/__set_thread_area.s
@@ -3,7 +3,7 @@
.global __set_thread_area
.type __set_thread_area,@function
__set_thread_area:
- mov %rdi,%rsi /* shift for syscall */
+ mov %edi,%esi /* shift for syscall */
movl $0x1002,%edi /* SET_FS register */
movl $0x4000009e,%eax /* set fs segment to */
syscall /* arch_prctl(SET_FS, arg)*/