123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- .align 2
- L(pseudo_start): \
- cfi_startproc
- 99: PSEUDO_ERRJMP \
- .type __
- .globl __
- __
- .set noreorder; \
- PSEUDO_CPLOAD \
- li v0, SYS_ify(syscall_name); \
- syscall; \
- .set reorder
- bne a3, zero, 99b
- ret
- .size __
- ENTRY (name) \
- .set noreorder; \
- PSEUDO_CPLOAD \
- .set reorder
- SINGLE_THREAD_P(v1)
- bne zero, v1, L(pseudo_cancel)
- .set noreorder; \
- li v0, SYS_ify(syscall_name); \
- syscall; \
- .set reorder
- bne a3, zero, 99b
- ret
- L(pseudo_cancel): \
- SAVESTK_
- sw ra, 28(sp)
- cfi_rel_offset (ra, 28)
- PSEUDO_SAVEGP \
- PUSHARGS_
- CENABLE
- PSEUDO_LOADGP \
- sw v0, 44(sp)
- POPARGS_
- .set noreorder; \
- li v0, SYS_ify (syscall_name); \
- syscall; \
- .set reorder
- sw v0, 36(sp)
- sw a3, 40(sp)
- lw a0, 44(sp)
- CDISABLE
- PSEUDO_LOADGP \
- lw v0, 36(sp)
- lw a3, 40(sp)
- lw ra, 28(sp)
- .set noreorder; \
- bne a3, zero, 99b
- RESTORESTK
- L(pseudo_end): \
- .set reorder;
- SAVESTK_0
- sw t0, 16(sp)
- lw t1, 20(sp)
- SAVESTK_0
- sw t0, 16(sp)
- sw t1, 20(sp)
- lw t1, 20(sp)
- lw t2, 24(sp)
- SAVESTK_0
- sw t0, 16(sp)
- sw t1, 20(sp)
- sw t2, 24(sp)
- __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
- header.multiple_threads) \
- == 0, 1)
- READ_THREAD_POINTER(reg)
- lw reg, MULTIPLE_THREADS_OFFSET(reg)
- __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
- header.multiple_threads) == 0, 1)
|