summaryrefslogtreecommitdiff
path: root/src/internal/arm/syscall.s
blob: 2028456c0a6986d680aa5eb0a00aafe3f8accec3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
.global __syscall
.hidden __syscall
.type __syscall,%function
__syscall:
	mov ip,sp
	stmfd sp!,{r4,r5,r6,r7}
	mov r7,r0
	mov r0,r1
	mov r1,r2
	mov r2,r3
	ldmfd ip,{r3,r4,r5,r6}
	svc 0
	ldmfd sp!,{r4,r5,r6,r7}
	tst lr,#1
	moveq pc,lr
	bx lr