diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-02-17 20:46:52 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-02-17 20:46:52 +0000 |
commit | b2740a3b0a55fa4eead5c952dabf435794d0dd7f (patch) | |
tree | 1db2f9b124652c3cf162f1a1d9c648ea224431f4 /linuxthreads/sysdeps/powerpc/powerpc32 | |
parent | 81b5057288217437017b42780d7814eb7b0744d5 (diff) | |
download | glibc-b2740a3b0a55fa4eead5c952dabf435794d0dd7f.tar glibc-b2740a3b0a55fa4eead5c952dabf435794d0dd7f.tar.gz glibc-b2740a3b0a55fa4eead5c952dabf435794d0dd7f.tar.bz2 glibc-b2740a3b0a55fa4eead5c952dabf435794d0dd7f.zip |
Update.
2003-02-17 Kevin B. Hendricks <kevin.hendricks@sympatico.ca>
Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* sysdeps/powerpc/elf/libc-start.c: Handle NONTLS_INIT_TP.
* sysdeps/powerpc/powerpc32/__longjmp.S: Remove R2 handling.
* sysdeps/powerpc/powerpc32/setjmp.S: Likewise.
* sysdeps/powerpc/powerpc32/fpu/__longjmp.S: Likewise.
* sysdeps/powerpc/powerpc32/fpu/setjmp.S: Likewise.
Diffstat (limited to 'linuxthreads/sysdeps/powerpc/powerpc32')
-rw-r--r-- | linuxthreads/sysdeps/powerpc/powerpc32/pt-machine.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/linuxthreads/sysdeps/powerpc/powerpc32/pt-machine.h b/linuxthreads/sysdeps/powerpc/powerpc32/pt-machine.h index 19b77b7e6a..f38f466bc3 100644 --- a/linuxthreads/sysdeps/powerpc/powerpc32/pt-machine.h +++ b/linuxthreads/sysdeps/powerpc/powerpc32/pt-machine.h @@ -36,11 +36,37 @@ extern int __compare_and_swap (long int *p, long int oldval, long int newval); need to make sure that the compiler has flushed everything to memory. */ #define MEMORY_BARRIER() __asm__ __volatile__ ("sync" : : : "memory") +/* We want the OS to assign stack addresses. */ +#define FLOATING_STACKS 1 + +/* Maximum size of the stack if the rlimit is unlimited. */ +#define ARCH_STACK_MAX_SIZE 8*1024*1024 + /* Get some notion of the current stack. Need not be exactly the top of the stack, just something somewhere in the current frame. */ #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)) + +/* Access to data in the thread descriptor is easy. */ +#define THREAD_GETMEM(descr, member) \ + ((void) (descr), THREAD_SELF->member) +#define THREAD_GETMEM_NC(descr, member) \ + ((void) (descr), THREAD_SELF->member) +#define THREAD_SETMEM(descr, member, value) \ + ((void) (descr), THREAD_SELF->member = (value)) +#define THREAD_SETMEM_NC(descr, member, value) \ + ((void) (descr), THREAD_SELF->member = (value)) + /* Compare-and-swap for semaphores. */ /* note that test-and-set(x) is the same as !compare-and-swap(x, 0, 1) */ |