summaryrefslogtreecommitdiffstats
path: root/libc/arch-sh/syscalls/futex.S
blob: 2aabd92803e683e96dacc179d65cfd41def47cf4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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