]>
Commit | Line | Data |
---|---|---|
1 | .globl __sigsuspend; | |
2 | .align 4; | |
3 | .type __sigsuspend, @function; | |
4 | .usepv __sigsuspend, std; | |
5 | .cfi_startproc; | |
6 | __sigsuspend: | |
7 | ldgp $29, 0($27); | |
8 | ldq $16, 0($16); | |
9 | ldah $1, __libc_multiple_threads($29) !gprelhigh; | |
10 | ldl $1, __libc_multiple_threads($1) !gprellow; | |
11 | bne $1, $pseudo_cancel; | |
12 | lda $0, 111; | |
13 | call_pal 131; | |
14 | bne $19, $syscall_error; | |
15 | $pseudo_ret: | |
16 | .subsection 2; | |
17 | .cfi_startproc; | |
18 | $pseudo_cancel: | |
19 | subq $30, 64, $30; | |
20 | .cfi_def_cfa_offset 64; | |
21 | stq $26, 0($30); | |
22 | .cfi_offset $26, -64; | |
23 | stq $16, 8($30); | |
24 | jsr $26, __libc_enable_asynccancel; | |
25 | ldgp $26, 0($29); | |
26 | ldq $16, 8($30); | |
27 | mov $0, $26; | |
28 | lda $0, 111; | |
29 | call_pal 131; | |
30 | stq $0, 8($30); | |
31 | mov $26, $16; | |
32 | bne $19, $multi_error; | |
33 | jsr $26, __libc_disable_asynccancel; | |
34 | ldgp $26, 0($29); | |
35 | ldq $26, 0($30); | |
36 | ldq $0, 8($30); | |
37 | addq $30, 64, $30; | |
38 | .cfi_remember_state; | |
39 | .cfi_restore $26; | |
40 | .cfi_def_cfa_offset 0; | |
41 | ret; | |
42 | .cfi_restore_state; | |
43 | $multi_error: | |
44 | jsr $26, __libc_disable_asynccancel; | |
45 | ldgp $26, 0($29); | |
46 | ldq $26, 0($30); | |
47 | ldq $0, 8($30); | |
48 | addq $30, 64, $30; | |
49 | .cfi_restore $26; | |
50 | .cfi_def_cfa_offset 0; | |
51 | $syscall_error: | |
52 | jmp $31, __syscall_error; | |
53 | .cfi_endproc; | |
54 | .previous | |
55 | ret | |
56 | .cfi_endproc; | |
57 | .subsection 2; | |
58 | .size __sigsuspend, .-__sigsuspend |