about summary refs log tree commit diff
path: root/nptl/sysdeps/x86_64/tls.h
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-03-12 05:45:00 +0000
committerUlrich Drepper <drepper@redhat.com>2003-03-12 05:45:00 +0000
commit5a03acfe371193faace69e5517864ba3b9fc2b9f (patch)
tree7d92152ecdd4461da2692f4fa399609341eac44a /nptl/sysdeps/x86_64/tls.h
parentb874af999547ee4e7688fc07710786131eef7d1b (diff)
downloadglibc-5a03acfe371193faace69e5517864ba3b9fc2b9f.tar.gz
glibc-5a03acfe371193faace69e5517864ba3b9fc2b9f.tar.xz
glibc-5a03acfe371193faace69e5517864ba3b9fc2b9f.zip
Update.
	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Fix asm syntax.
	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.

	* sysdeps/x86_64/tls.h (THREAD_SELF, THREAD_GETMEM, THREAD_GETMEM_NC,
	THREAD_SETMEM, THREAD_SETMEM_NC): Correct asm syntax.

	* allocatestack.c [! TLS_MULTIPLE_THREADS_IN_TCB] (allocate_stack):
	Initialize *__libc_multiple_threads_ptr not __libc_multiple_threads.
	* sysdeps/pthread/createthread.c [! TLS_MULTIPLE_THREADS_IN_TCB]
	(create_thread): Likewise.
	Define __pthread_multiple_threads and __libc_multiple_threads_ptr.
	* init.c (__pthread_initialize_minimal_internal): Initialize
	__libc_multiple_threads_ptr if necessary.
	* pthreadP.h: Adjust prototype for __libc_pthread_init.  Declare
	__pthread_multiple_threads and __libc_multiple_threads_ptr.
	* sysdeps/unix/sysv/linux/libc_pthread_init.c: Define
	__libc_multiple_threads.
	(__libc_pthread_init): Return pointer to __libc_pthread_init if
	necessary.

	* sysdeps/i386/tls.h (THREAD_SETMEM): Fix one-byte variant.
	(THREAD_SETMEM_NC): Likewise.

	* sysdeps/x86_64/pthread_spin_trylock.c: Removed.
	* sysdeps/x86_64/pthread_spin_trylock.S: New file.
	* sysdeps/x86_64/pthread_spin_unlock.c: Removed.
	* sysdeps/x86_64/pthread_spin_unlock.S: New file.

	* sysdeps/i386/i486/pthread_spin_trylock.S (pthread_spin_trylock):
	Eliminate one entire instruction.
Diffstat (limited to 'nptl/sysdeps/x86_64/tls.h')
-rw-r--r--nptl/sysdeps/x86_64/tls.h20
1 files changed, 10 insertions, 10 deletions
diff --git a/nptl/sysdeps/x86_64/tls.h b/nptl/sysdeps/x86_64/tls.h
index 45646e4485..66ae0f3f07 100644
--- a/nptl/sysdeps/x86_64/tls.h
+++ b/nptl/sysdeps/x86_64/tls.h
@@ -145,7 +145,7 @@ typedef struct
    do not get optimized away.  */
 # define THREAD_SELF \
   ({ struct pthread *__self;						      \
-     asm ("movq %%fs:%c1,%0" : "=r" (__self)				      \
+     asm ("movq %%fs:%c1,%q0" : "=r" (__self)				      \
 	  : "i" (offsetof (struct pthread, self)));		 	      \
      __self;})
 
@@ -168,7 +168,7 @@ typedef struct
 	      4 or 8.  */						      \
 	   abort ();							      \
 									      \
-	 asm ("movq %%fs:%P1,%0"					      \
+	 asm ("movq %%fs:%P1,%q0"					      \
 	      : "=r" (__value)						      \
 	      : "i" (offsetof (struct pthread, member)));		      \
        }								      \
@@ -179,12 +179,12 @@ typedef struct
 # define THREAD_GETMEM_NC(descr, member, idx) \
   ({ __typeof (descr->member[0]) __value;				      \
      if (sizeof (__value) == 1)						      \
-       asm ("movb %%fs:%P2(%3),%b0"					      \
+       asm ("movb %%fs:%P2(%q3),%b0"					      \
 	    : "=q" (__value)						      \
 	    : "0" (0), "i" (offsetof (struct pthread, member[0])),	      \
 	      "r" (idx));						      \
      else if (sizeof (__value) == 4)					      \
-       asm ("movl %%fs:%P1(,%2,4),%0"					      \
+       asm ("movl %%fs:%P1(,%q2,4),%0"					      \
 	    : "=r" (__value)						      \
 	    : "i" (offsetof (struct pthread, member[0])), "r" (idx));	      \
      else								      \
@@ -194,7 +194,7 @@ typedef struct
 	      4 or 8.  */						      \
 	   abort ();							      \
 									      \
-	 asm ("movq %%fs:%P1(,%2,8),%0"					      \
+	 asm ("movq %%fs:%P1(,%q2,8),%q0"				      \
 	      : "=r" (__value)						      \
 	      : "i" (offsetof (struct pthread, member[0])), "r" (idx));	      \
        }								      \
@@ -204,7 +204,7 @@ typedef struct
 /* Same as THREAD_SETMEM, but the member offset can be non-constant.  */
 # define THREAD_SETMEM(descr, member, value) \
   ({ if (sizeof (descr->member) == 1)					      \
-       asm volatile ("movb %0,%%fs:%P1" :				      \
+       asm volatile ("movb %b0,%%fs:%P1" :				      \
 		     : "iq" (value),					      \
 		       "i" (offsetof (struct pthread, member)));	      \
      else if (sizeof (descr->member) == 4)				      \
@@ -218,7 +218,7 @@ typedef struct
 	      4 or 8.  */						      \
 	   abort ();							      \
 									      \
-	 asm volatile ("movq %0,%%fs:%P1" :				      \
+	 asm volatile ("movq %q0,%%fs:%P1" :				      \
 		       : "ir" ((unsigned long int) value),		      \
 			 "i" (offsetof (struct pthread, member)));	      \
        }})
@@ -227,12 +227,12 @@ typedef struct
 /* Set member of the thread descriptor directly.  */
 # define THREAD_SETMEM_NC(descr, member, idx, value) \
   ({ if (sizeof (descr->member[0]) == 1)				      \
-       asm volatile ("movb %0,%%fs:%P1(%2)" :				      \
+       asm volatile ("movb %b0,%%fs:%P1(%q2)" :				      \
 		     : "iq" (value),					      \
 		       "i" (offsetof (struct pthread, member[0])),	      \
 		       "r" (idx));					      \
      else if (sizeof (descr->member[0]) == 4)				      \
-       asm volatile ("movl %0,%%fs:%P1(,%2,4)" :			      \
+       asm volatile ("movl %0,%%fs:%P1(,%q2,4)" :			      \
 		     : "ir" (value),					      \
 		       "i" (offsetof (struct pthread, member[0])),	      \
 		       "r" (idx));					      \
@@ -243,7 +243,7 @@ typedef struct
 	      4 or 8.  */						      \
 	   abort ();							      \
 									      \
-	 asm volatile ("movq %0,%%fs:%P1(,%2,8)" :			      \
+	 asm volatile ("movq %q0,%%fs:%P1(,%q2,8)" :			      \
 		       : "r" ((unsigned long int) value),		      \
 			 "i" (offsetof (struct pthread, member[0])),	      \
 			 "r" (idx));					      \