summaryrefslogtreecommitdiff
path: root/libpthread/linuxthreads/sysdeps/powerpc/pt-machine.h
diff options
context:
space:
mode:
authorJoakim Tjernlund <joakim.tjernlund@transmode.se>2005-02-10 23:38:14 +0000
committerJoakim Tjernlund <joakim.tjernlund@transmode.se>2005-02-10 23:38:14 +0000
commitd04b4584610ec595d3913bc61ecb49b1f1914051 (patch)
tree2cdbaa80955f952b6a84a08a9b47a559139bbab1 /libpthread/linuxthreads/sysdeps/powerpc/pt-machine.h
parentc5fc73d43f6451cd700eb500ac5d3aea7b2e53a0 (diff)
Add THREAD_SELF definition to PPC. This should make threads on PPC
a bit faster.
Diffstat (limited to 'libpthread/linuxthreads/sysdeps/powerpc/pt-machine.h')
-rw-r--r--libpthread/linuxthreads/sysdeps/powerpc/pt-machine.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/libpthread/linuxthreads/sysdeps/powerpc/pt-machine.h b/libpthread/linuxthreads/sysdeps/powerpc/pt-machine.h
index 19b77b7e6..9e6543a26 100644
--- a/libpthread/linuxthreads/sysdeps/powerpc/pt-machine.h
+++ b/libpthread/linuxthreads/sysdeps/powerpc/pt-machine.h
@@ -41,6 +41,16 @@ extern int __compare_and_swap (long int *p, long int oldval, long int newval);
#define CURRENT_STACK_FRAME stack_pointer
register char * stack_pointer __asm__ ("r1");
+/* Register r2 (tp) is reserved by the ABI as "thread pointer". */
+struct _pthread_descr_struct;
+register struct _pthread_descr_struct *__thread_self __asm__("r2");
+
+/* Return the thread descriptor for the current thread. */
+#define THREAD_SELF __thread_self
+
+/* Initialize the thread-unique value. */
+#define INIT_THREAD_SELF(descr, nr) (__thread_self = (descr))
+
/* Compare-and-swap for semaphores. */
/* note that test-and-set(x) is the same as !compare-and-swap(x, 0, 1) */