X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fthread%2Fmips%2Fclone.s;h=0446338568f0a8add741a32427a5b042fc1036b4;hb=4d3a162d001a93edd285fb6603a883c30ae553ba;hp=6c2e7908385f23d062fc155e1b2115cec59adbc2;hpb=bfba15c9b96c2a42bd02f51ff10596a23a677926;p=musl diff --git a/src/thread/mips/clone.s b/src/thread/mips/clone.s index 6c2e7908..04463385 100644 --- a/src/thread/mips/clone.s +++ b/src/thread/mips/clone.s @@ -1,5 +1,6 @@ .set noreorder .global __clone +.hidden __clone .type __clone,@function __clone: # Save function pointer and argument pointer on new thread stack @@ -12,18 +13,24 @@ __clone: lw $6, 16($sp) lw $7, 20($sp) lw $9, 24($sp) + subu $sp, $sp, 16 sw $9, 16($sp) li $2, 4120 syscall beq $7, $0, 1f nop + addu $sp, $sp, 16 jr $ra subu $2, $0, $2 1: beq $2, $0, 1f nop + addu $sp, $sp, 16 jr $ra nop 1: lw $25, 0($sp) lw $4, 4($sp) - jr $25 + jalr $25 nop + move $4, $2 + li $2, 4001 + syscall