.globl __sigsuspend; .align 4; .type __sigsuspend, @function; .usepv __sigsuspend, std; .cfi_startproc; __sigsuspend: ldgp $29, 0($27); ldq $16, 0($16); ldah $1, __libc_multiple_threads($29) !gprelhigh; ldl $1, __libc_multiple_threads($1) !gprellow; bne $1, $pseudo_cancel; lda $0, 111; call_pal 131; bne $19, $syscall_error; $pseudo_ret: .subsection 2; .cfi_startproc; $pseudo_cancel: subq $30, 64, $30; .cfi_def_cfa_offset 64; stq $26, 0($30); .cfi_offset $26, -64; stq $16, 8($30); jsr $26, __libc_enable_asynccancel; ldgp $26, 0($29); ldq $16, 8($30); mov $0, $26; lda $0, 111; call_pal 131; stq $0, 8($30); mov $26, $16; bne $19, $multi_error; jsr $26, __libc_disable_asynccancel; ldgp $26, 0($29); ldq $26, 0($30); ldq $0, 8($30); addq $30, 64, $30; .cfi_remember_state; .cfi_restore $26; .cfi_def_cfa_offset 0; ret; .cfi_restore_state; $multi_error: jsr $26, __libc_disable_asynccancel; ldgp $26, 0($29); ldq $26, 0($30); ldq $0, 8($30); addq $30, 64, $30; .cfi_restore $26; .cfi_def_cfa_offset 0; $syscall_error: jmp $31, __syscall_error; .cfi_endproc; .previous ret .cfi_endproc; .subsection 2; .size __sigsuspend, .-__sigsuspend