initial commit of the arm port
[musl] / src / internal / arm / syscall.s
diff --git a/src/internal/arm/syscall.s b/src/internal/arm/syscall.s
new file mode 100644 (file)
index 0000000..c5ae25c
--- /dev/null
@@ -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