about summary refs log tree commit diff
path: root/src/thread/arm
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
parent6bea5dc69892cd9ff0c222474e7dd468c29dfa75 (diff)
downloadmusl-f409338a9e808a09001669377c608fd2803d808d.tar.gz
musl-f409338a9e808a09001669377c608fd2803d808d.tar.xz
musl-f409338a9e808a09001669377c608fd2803d808d.zip
prepare cancellation syscall asm for possibility of __cancel returning
Diffstat (limited to 'src/thread/arm')
-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