summaryrefslogtreecommitdiff
path: root/src/thread/arm/syscall_cp.s
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2015-02-20 20:25:35 -0500
committerRich Felker <dalias@aerifal.cx>2015-02-20 20:25:35 -0500
commitf409338a9e808a09001669377c608fd2803d808d (patch)
tree2eb5478cc7177d8480ed252cc8004d1b102f5acf /src/thread/arm/syscall_cp.s
parent6bea5dc69892cd9ff0c222474e7dd468c29dfa75 (diff)
downloadmusl-f409338a9e808a09001669377c608fd2803d808d.tar.gz
musl-f409338a9e808a09001669377c608fd2803d808d.tar.bz2
musl-f409338a9e808a09001669377c608fd2803d808d.tar.xz
musl-f409338a9e808a09001669377c608fd2803d808d.zip
prepare cancellation syscall asm for possibility of __cancel returning
Diffstat (limited to 'src/thread/arm/syscall_cp.s')
-rw-r--r--src/thread/arm/syscall_cp.s6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/thread/arm/syscall_cp.s b/src/thread/arm/syscall_cp.s
index 5a2d6c35..66c5ecbd 100644
--- a/src/thread/arm/syscall_cp.s
+++ b/src/thread/arm/syscall_cp.s
@@ -7,7 +7,7 @@ __syscall_cp_asm:
__cp_begin:
ldr r0,[r0]
cmp r0,#0
- blne __cancel
+ blne __cp_cancel
mov r7,r1
mov r0,r2
mov r1,r3
@@ -19,3 +19,7 @@ __cp_end:
tst lr,#1
moveq pc,lr
bx lr
+.global __cp_cancel
+__cp_cancel:
+ ldmfd sp!,{r4,r5,r6,r7,lr}
+ b __cancel