X-Git-Url: http://nsz.repo.hu/git/?p=musl;a=blobdiff_plain;f=src%2Fthread%2Farm%2Fsyscall_cp.s;fp=src%2Fthread%2Farm%2Fsyscall_cp.s;h=0cc23b1ff76419a923fca169ac41093bda81fe6c;hp=59924fc51c168564a15ffd15403d0f749aae237a;hb=4da268f74b90696563db4f5d9d2b8e1c1351bdc6;hpb=cfd892fde9454e014d9b291a56ce5740d8bc4a78 diff --git a/src/thread/arm/syscall_cp.s b/src/thread/arm/syscall_cp.s index 59924fc5..0cc23b1f 100644 --- a/src/thread/arm/syscall_cp.s +++ b/src/thread/arm/syscall_cp.s @@ -3,20 +3,18 @@ __syscall_cp_asm: mov ip,sp stmfd sp!,{r4,r5,r6,r7,lr} - stmfd sp!,{r0} - bl 1f -1: mov r4,#(1f-.) - add r4,r4,lr - str r4,[r0,#4] - str sp,[r0] +.global __cp_begin +__cp_begin: + ld r0,[r0] + cmp r0,#0 + blne __cancel mov r7,r1 mov r0,r2 mov r1,r3 ldmfd ip,{r2,r3,r4,r5,r6} -1: svc 0 - ldmfd sp!,{r1} - mov r2,#0 - str r2,[r1] + svc 0 +.global __cp_end +__cp_end: ldmfd sp!,{r4,r5,r6,r7,lr} tst lr,#1 moveq pc,lr