aboutsummaryrefslogtreecommitdiff
path: root/linuxthreads/sysdeps/i386/useldt.h
diff options
context:
space:
mode:
Diffstat (limited to 'linuxthreads/sysdeps/i386/useldt.h')
-rw-r--r--linuxthreads/sysdeps/i386/useldt.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/linuxthreads/sysdeps/i386/useldt.h b/linuxthreads/sysdeps/i386/useldt.h
index a4d4fd22c8..4ac82f1ab0 100644
--- a/linuxthreads/sysdeps/i386/useldt.h
+++ b/linuxthreads/sysdeps/i386/useldt.h
@@ -110,7 +110,9 @@ extern int __modify_ldt (int, struct modify_ldt_ldt_s *, size_t);
"int $0x80\n\t" \
USETLS_LOAD_EBX \
: "=&a" (__result) \
- : USETLS_EBX_ARG (&ldt_entry), "i" (__NR_set_thread_area)); \
+ : USETLS_EBX_ARG (&ldt_entry), "i" (__NR_set_thread_area), \
+ "m" (ldt_entry) \
+ : "memory"); \
if (__result == 0) \
asm ("movw %w0, %%gs" :: "q" (__gs)); \
else \
@@ -128,7 +130,9 @@ extern int __modify_ldt (int, struct modify_ldt_ldt_s *, size_t);
"int $0x80\n\t" \
USETLS_LOAD_EBX \
: "=&a" (__result) \
- : USETLS_EBX_ARG (&ldt_entry), "i" (__NR_set_thread_area)); \
+ : USETLS_EBX_ARG (&ldt_entry), "i" (__NR_set_thread_area), \
+ "m" (ldt_entry) \
+ : "memory"); \
if (__result == 0) \
{ \
__gs = (ldt_entry.entry_number << 3) + 3; \