123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- .align 2
- 99: \
- PTR_LA t9,__syscall_error
- \
- REG_L gp, STKOFF_GP(sp)
- RESTORESTK
- jr t9
- ENTRY (name) \
- SAVESTK
- .cpsetup t9, STKOFF_GP, name
- .set reorder
- SINGLE_THREAD_P(t0)
- bne zero, t0, L(pseudo_cancel)
- .set noreorder; \
- li v0, SYS_ify(syscall_name); \
- syscall; \
- .set reorder
- bne a3, zero, SYSCALL_ERROR_LABEL; \
- \
- REG_L gp, STKOFF_GP(sp)
- RESTORESTK
- ret
- L(pseudo_cancel): \
- REG_S ra, STKOFF_RA(sp)
- PUSHARGS_
- CENABLE
- REG_S v0, STKOFF_SVMSK(sp)
- POPARGS_
- .set noreorder; \
- li v0, SYS_ify (syscall_name); \
- syscall; \
- .set reorder
- REG_S v0, STKOFF_SC_V0(sp)
- REG_S a3, STKOFF_SC_ERR(sp)
- REG_L a0, STKOFF_SVMSK(sp)
- CDISABLE
- REG_L a3, STKOFF_SC_ERR(sp)
- REG_L ra, STKOFF_RA(sp)
- REG_L v0, STKOFF_SC_V0(sp)
- bne a3, zero, SYSCALL_ERROR_LABEL; \
- \
- REG_L gp, STKOFF_GP(sp)
- RESTORESTK
- L(pseudo_end):
- extern int __local_multiple_threads attribute_hidden;
|