mirror of
https://sourceware.org/git/glibc.git
synced 2025-08-01 10:06:57 +03:00
2002-08-07 Roland McGrath <roland@redhat.com>
* 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.
This commit is contained in:
@ -94,12 +94,16 @@ typedef struct
|
|||||||
{ nr, (unsigned long int) (descr), sizeof (struct _pthread_descr_struct), \
|
{ nr, (unsigned long int) (descr), sizeof (struct _pthread_descr_struct), \
|
||||||
1, 0, 0, 0, 0, 1, 0 }; \
|
1, 0, 0, 0, 0, 1, 0 }; \
|
||||||
int result; \
|
int result; \
|
||||||
asm ("pushl %%ebx\n\t" \
|
asm volatile ( \
|
||||||
|
"pushl %%ebx\n\t" \
|
||||||
"movl $1, %%ebx\n\t" \
|
"movl $1, %%ebx\n\t" \
|
||||||
"int $0x80\n\t" \
|
"int $0x80\n\t" \
|
||||||
"popl %%ebx" \
|
"popl %%ebx" \
|
||||||
: "=a" (result) \
|
: "=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; \
|
__builtin_expect (result, 0) != 0 ? -1 : nr * 8 + 7; \
|
||||||
})
|
})
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user