diff options
Diffstat (limited to 'libc/arch-sh/syscalls/futex.S')
-rw-r--r-- | libc/arch-sh/syscalls/futex.S | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/libc/arch-sh/syscalls/futex.S b/libc/arch-sh/syscalls/futex.S new file mode 100644 index 0000000..2aabd92 --- /dev/null +++ b/libc/arch-sh/syscalls/futex.S @@ -0,0 +1,36 @@ +/* autogenerated by gensyscalls.py */ +#include <sys/linux-syscalls.h> + + .text + .type futex, @function + .globl futex + .align 4 + +futex: + + /* get ready for additonal arg */ + mov.l @r15, r0 + mov.l @(4, r15), r1 + + /* invoke trap */ + mov.l 0f, r3 /* trap num */ + trapa #(6 + 0x10) + + /* check return value */ + cmp/pz r0 + bt __NR_futex_end + + /* keep error number */ + sts.l pr, @-r15 + mov.l 1f, r1 + jsr @r1 + mov r0, r4 + lds.l @r15+, pr + +__NR_futex_end: + rts + nop + + .align 2 +0: .long __NR_futex +1: .long __set_syscall_errno |