diff options
author | Ulrich Drepper <drepper@redhat.com> | 2004-06-07 17:58:24 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2004-06-07 17:58:24 +0000 |
commit | 34dd1fb34623213b65f36fd253736a0b8a754ed5 (patch) | |
tree | b7cf0eb5626d6178ff6ccde1d03b251b44090f1b /nptl/sysdeps/unix/sysv/linux/s390 | |
parent | c889f2cd0e59f50e347f8cf421e4c9678a8f1f78 (diff) | |
download | glibc-34dd1fb34623213b65f36fd253736a0b8a754ed5.tar glibc-34dd1fb34623213b65f36fd253736a0b8a754ed5.tar.gz glibc-34dd1fb34623213b65f36fd253736a0b8a754ed5.tar.bz2 glibc-34dd1fb34623213b65f36fd253736a0b8a754ed5.zip |
(lll_futex_requeue): Pass val argument as 6th system call argument in %r7.
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/s390')
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h b/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h index 60679cca86..9549cff64e 100644 --- a/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h +++ b/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h @@ -84,9 +84,6 @@ /* Returns non-zero if error happened, zero if success. */ -#if 0 -/* FIXME: s390 only supports up to 5 argument syscalls. Once FUTEX_CMP_REQUEUE - kernel interface for s390 is finalized, adjust this. */ #define lll_futex_requeue(futex, nr_wake, nr_move, mutex, val) \ ({ \ register unsigned long int __r2 asm ("2") = (unsigned long int) (futex); \ @@ -94,18 +91,16 @@ register unsigned long int __r4 asm ("4") = (long int) (nr_wake); \ register unsigned long int __r5 asm ("5") = (long int) (nr_move); \ register unsigned long int __r6 asm ("6") = (unsigned long int) (mutex); \ + register unsigned long int __r7 asm ("7") = (int) (mutex); \ register unsigned long __result asm ("2"); \ \ __asm __volatile ("svc %b1" \ : "=d" (__result) \ : "i" (SYS_futex), "0" (__r2), "d" (__r3), \ - "d" (__r4), "d" (__r5), "d" (__r6) \ + "d" (__r4), "d" (__r5), "d" (__r6), "d" (__r7) \ : "cc", "memory" ); \ __result > -4096UL; \ }) -#else -#define lll_futex_requeue(futex, nr_wake, nr_move, mutex, val) 1 -#endif #define lll_compare_and_swap(futex, oldval, newval, operation) \ |