From 939f249c81c4bff410fbe2befe186059c605d329 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Thu, 8 Aug 2002 04:58:30 +0000 Subject: 2002-08-07 Roland McGrath * sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT): Add an extra argument with an "m" constraint to the asm so the compiler knows LDT_ENTRY was used. --- linuxthreads/sysdeps/i386/tls.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'linuxthreads/sysdeps') diff --git a/linuxthreads/sysdeps/i386/tls.h b/linuxthreads/sysdeps/i386/tls.h index 55cceccf37..a00de6c3d8 100644 --- a/linuxthreads/sysdeps/i386/tls.h +++ b/linuxthreads/sysdeps/i386/tls.h @@ -94,12 +94,16 @@ typedef struct { nr, (unsigned long int) (descr), sizeof (struct _pthread_descr_struct), \ 1, 0, 0, 0, 0, 1, 0 }; \ int result; \ - asm ("pushl %%ebx\n\t" \ + asm volatile ( \ + "pushl %%ebx\n\t" \ "movl $1, %%ebx\n\t" \ "int $0x80\n\t" \ "popl %%ebx" \ : "=a" (result) \ - : "0" (__NR_modify_ldt), "d" (sizeof (ldt_entry)), "c" (&ldt_entry)); \ + : "0" (__NR_modify_ldt), \ + /* The extra argument with the "m" constraint is necessary \ + to let the compiler know that we are accessing LDT_ENTRY here. */\ + "m" (ldt_entry), "c" (&ldt_entry), "d" (sizeof (ldt_entry))); \ __builtin_expect (result, 0) != 0 ? -1 : nr * 8 + 7; \ }) -- cgit v1.2.3