(lll_futex_requeue): Pass val argument as 6th system call argument in %r7.
authorUlrich Drepper <drepper@redhat.com>
Mon, 7 Jun 2004 17:58:24 +0000 (17:58 +0000)
committerUlrich Drepper <drepper@redhat.com>
Mon, 7 Jun 2004 17:58:24 +0000 (17:58 +0000)
nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h

index 60679cc..9549cff 100644 (file)
@@ -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);  \
     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) \