summaryrefslogtreecommitdiff
path: root/src/internal/arm/syscall.s
blob: c5ae25c304fbd4be97c0ed32c07505ccaabb4c02 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
.global __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