diff options
Diffstat (limited to 'linuxthreads/sysdeps')
-rw-r--r-- | linuxthreads/sysdeps/s390/s390-32/pt-machine.h | 11 | ||||
-rw-r--r-- | linuxthreads/sysdeps/s390/s390-64/pt-machine.h | 11 |
2 files changed, 10 insertions, 12 deletions
diff --git a/linuxthreads/sysdeps/s390/s390-32/pt-machine.h b/linuxthreads/sysdeps/s390/s390-32/pt-machine.h index 3afc9d5d60..f84ccdfc90 100644 --- a/linuxthreads/sysdeps/s390/s390-32/pt-machine.h +++ b/linuxthreads/sysdeps/s390/s390-32/pt-machine.h @@ -23,6 +23,11 @@ # define PT_EI extern inline #endif +/* For multiprocessor systems, we want to ensure all memory accesses + are completed before we reset a lock. On other systems, we still + need to make sure that the compiler has flushed everything to memory. */ +#define MEMORY_BARRIER() __asm__ __volatile__ ("bcr 15,0" : : : "memory") + /* Spinlock implementation; required. */ PT_EI long int testandset (int *spinlock) @@ -94,9 +99,3 @@ __compare_and_swap(long int *p, long int oldval, long int newval) return retval == 0; } - - -/* 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__ ("%r15"); diff --git a/linuxthreads/sysdeps/s390/s390-64/pt-machine.h b/linuxthreads/sysdeps/s390/s390-64/pt-machine.h index f205c1245c..8b123352d9 100644 --- a/linuxthreads/sysdeps/s390/s390-64/pt-machine.h +++ b/linuxthreads/sysdeps/s390/s390-64/pt-machine.h @@ -23,6 +23,11 @@ # define PT_EI extern inline #endif +/* For multiprocessor systems, we want to ensure all memory accesses + are completed before we reset a lock. On other systems, we still + need to make sure that the compiler has flushed everything to memory. */ +#define MEMORY_BARRIER() __asm__ __volatile__ ("bcr 15,0" : : : "memory") + /* Spinlock implementation; required. */ PT_EI long int testandset (int *spinlock) @@ -99,9 +104,3 @@ __compare_and_swap(long int *p, long int oldval, long int newval) return retval == 0; } - - -/* 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__ ("%r15"); |