projects
/
musl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
__assert_fail(): remove _Noreturn, to get proper stacktraces
[musl]
/
src
/
thread
/
arm
/
syscall_cp.s
diff --git
a/src/thread/arm/syscall_cp.s
b/src/thread/arm/syscall_cp.s
index
59924fc
..
5a2d6c3
100644
(file)
--- 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}
__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:
+ ldr r0,[r0]
+ cmp r0,#0
+ blne __cancel
mov r7,r1
mov r0,r2
mov r1,r3
ldmfd ip,{r2,r3,r4,r5,r6}
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
ldmfd sp!,{r4,r5,r6,r7,lr}
tst lr,#1
moveq pc,lr