use libc-internal malloc for newlocale/freelocale
[musl] / src / thread / arm / syscall_cp.s
1 .syntax unified
2 .global __cp_begin
3 .hidden __cp_begin
4 .global __cp_end
5 .hidden __cp_end
6 .global __cp_cancel
7 .hidden __cp_cancel
8 .hidden __cancel
9 .global __syscall_cp_asm
10 .hidden __syscall_cp_asm
11 .type __syscall_cp_asm,%function
12 __syscall_cp_asm:
13         mov ip,sp
14         stmfd sp!,{r4,r5,r6,r7}
15 __cp_begin:
16         ldr r0,[r0]
17         cmp r0,#0
18         bne __cp_cancel
19         mov r7,r1
20         mov r0,r2
21         mov r1,r3
22         ldmfd ip,{r2,r3,r4,r5,r6}
23         svc 0
24 __cp_end:
25         ldmfd sp!,{r4,r5,r6,r7}
26         bx lr
27 __cp_cancel:
28         ldmfd sp!,{r4,r5,r6,r7}
29         b __cancel