diff options
Diffstat (limited to 'src/internal/arm/syscall.s')
| -rw-r--r-- | src/internal/arm/syscall.s | 15 | 
1 files changed, 15 insertions, 0 deletions
| diff --git a/src/internal/arm/syscall.s b/src/internal/arm/syscall.s new file mode 100644 index 00000000..c5ae25c3 --- /dev/null +++ b/src/internal/arm/syscall.s @@ -0,0 +1,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 | 
