123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254 |
- .section ".text"
- PSEUDO_PROLOGUE
- .type __
- .globl __
- __
- cfi_sections(.debug_frame)
- cfi_startproc
- DO_CALL (syscall_name, args)
- PSEUDO_RET
- cfi_endproc
- .size __
- ENTRY (name)
- SINGLE_THREAD_P
- DOARGS_
- bne .Lpseudo_cancel
- cfi_remember_state
- DO_CALL (syscall_name, 0)
- UNDOARGS_
- cmn r0, $4096
- PSEUDO_RET
- cfi_restore_state
- .Lpseudo_cancel: \
- .fnstart
- DOCARGS_
- CENABLE
- mov ip, r0
- UNDOCARGS_
- ldr r7, =SYS_ify (syscall_name); \
- swi 0x0
- .fnend
- mov r7, r0
- mov r0, ip
- CDISABLE
- mov r0, r7
- RESTORE_LR_
- UNDOARGS_
- cmn r0, $4096
- .fnend
- .fnstart
- .save {r7, lr}
- stmfd sp!, {r7, lr}
- cfi_adjust_cfa_offset (8)
- cfi_rel_offset (r7, 0)
- cfi_rel_offset (lr, 4)
- .save {r7, lr}
- ldmfd sp!, {r7, lr}
- cfi_adjust_cfa_offset (-8)
- cfi_restore (r7)
- cfi_restore (lr)
- stmfd sp!, {r0, r1, r7, lr}
- cfi_adjust_cfa_offset (16)
- cfi_rel_offset (r7, 8)
- cfi_rel_offset (lr, 12)
- .save {r7, lr}
- .pad
- ldr r0, [sp],
- cfi_adjust_cfa_offset (-8)
- RESTART_UNWIND
- RESTORE_LR_0
- stmfd sp!, {r0, r1, r7, lr}
- cfi_adjust_cfa_offset (16)
- cfi_rel_offset (r7, 8)
- cfi_rel_offset (lr, 12)
- .save {r7, lr}
- .pad
- ldmfd sp!, {r0, r1}
- cfi_adjust_cfa_offset (-8)
- RESTART_UNWIND
- RESTORE_LR_0
- stmfd sp!, {r0, r1, r2, r3, r7, lr}
- cfi_adjust_cfa_offset (24)
- cfi_rel_offset (r7, 16)
- cfi_rel_offset (lr, 20)
- .save {r7, lr}
- .pad
- ldmfd sp!, {r0, r1, r2, r3}
- cfi_adjust_cfa_offset (-16)
- RESTART_UNWIND
- RESTORE_LR_0
- stmfd sp!, {r0, r1, r2, r3, r7, lr}
- cfi_adjust_cfa_offset (24)
- cfi_rel_offset (r7, 16)
- cfi_rel_offset (lr, 20)
- .save {r7, lr}
- .pad
- ldmfd sp!, {r0, r1, r2, r3}
- cfi_adjust_cfa_offset (-16)
- RESTART_UNWIND
- RESTORE_LR_0
- .save {r4}
- stmfd sp!, {r0, r1, r2, r3, r4, r7, lr}
- cfi_adjust_cfa_offset (28)
- cfi_rel_offset (r7, 20)
- cfi_rel_offset (lr, 24)
- .save {r7, lr}
- .pad
- ldmfd sp!, {r0, r1, r2, r3}
- cfi_adjust_cfa_offset (-16)
- .fnend
- .fnstart
- .save {r4}
- .save {r7, lr}
- .pad
- ldmfd sp!, {r4, r7, lr}
- cfi_adjust_cfa_offset (-12)
- \
- cfi_restore (r7)
- cfi_restore (lr)
- .save {r4, r5}
- stmfd sp!, {r0, r1, r2, r3, r7, lr}
- cfi_adjust_cfa_offset (24)
- cfi_rel_offset (r7, 16)
- cfi_rel_offset (lr, 20)
- .save {r7, lr}
- .pad
- ldmfd sp!, {r0, r1, r2, r3}
- cfi_adjust_cfa_offset (-16)
- .fnend
- .fnstart
- .save {r4, r5}
- .save {r7, lr}
- RESTORE_LR_0
- extern int __local_multiple_threads attribute_hidden;
- ldr ip, 1b
- 2: \
- ldr ip, [pc, ip]
- teq ip,
- 1: .word __local_multiple_threads - 2f - 8;
- __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
- header.multiple_threads) == 0, 1)
- stmfd sp!, {r0, lr}
- cfi_adjust_cfa_offset (8)
- cfi_rel_offset (lr, 4)
- bl __aeabi_read_tp
- ldr ip, [r0,
- ldmfd sp!, {r0, lr}
- cfi_adjust_cfa_offset (-8)
- cfi_restore (lr)
- teq ip,
- __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
- header.multiple_threads) == 0, 1)
|