mirror of https://git.musl-libc.org/git/musl
3 changed files with 67 additions and 0 deletions
@ -0,0 +1,9 @@ |
|||
.set noreorder |
|||
.global __unmapself |
|||
.type __unmapself,@function |
|||
__unmapself: |
|||
li $2, 4091 |
|||
syscall |
|||
li $4, 0 |
|||
li $2, 4001 |
|||
syscall |
|||
@ -0,0 +1,27 @@ |
|||
.set noreorder |
|||
.global __clone |
|||
.type __clone,@function |
|||
__clone: |
|||
# Save function pointer and argument pointer |
|||
move $25, $4 |
|||
move $8, $7 |
|||
# Shuffle (fn,sp,fl,arg,ptid,tls,ctid) to (sp,fl,ptid,tls,ctid) |
|||
move $4, $5 |
|||
move $5, $6 |
|||
lw $6, 16($sp) |
|||
lw $7, 20($sp) |
|||
lw $9, 24($sp) |
|||
sw $9, 16($sp) |
|||
li $2, 4120 |
|||
syscall |
|||
beq $7, $0, 1f |
|||
nop |
|||
jr $ra |
|||
subu $2, $0, $2 |
|||
1: beq $2, $0, 1f |
|||
nop |
|||
jr $ra |
|||
nop |
|||
1: move $4, $8 |
|||
jr $25 |
|||
nop |
|||
@ -0,0 +1,31 @@ |
|||
.set noreorder |
|||
|
|||
.global __syscall_cp_asm |
|||
.type __syscall_cp_asm,@function |
|||
__syscall_cp_asm: |
|||
.global __cp_begin |
|||
__cp_begin: |
|||
lw $4, 0($4) |
|||
bne $4, $0, 2f |
|||
move $10, $5 |
|||
move $4, $6 |
|||
move $5, $7 |
|||
lw $6, 16($sp) |
|||
lw $7, 20($sp) |
|||
lw $8, 24($sp) |
|||
lw $9, 28($sp) |
|||
subu $sp, $sp, 32 |
|||
sw $8, 16($sp) |
|||
sw $9, 20($sp) |
|||
move $2, $10 |
|||
syscall |
|||
.global __cp_end |
|||
__cp_end: |
|||
beq $7, $0, 1f |
|||
addu $sp, $sp, 32 |
|||
subu $2, $0, $2 |
|||
1: jr $ra |
|||
nop |
|||
2: lw $25, %call16(__cancel)($gp) |
|||
jr $25 |
|||
nop |
|||
Loading…
Reference in new issue