Index: fusl/src/internal/arm/syscall.s |
diff --git a/fusl/src/internal/arm/syscall.s b/fusl/src/internal/arm/syscall.s |
new file mode 100644 |
index 0000000000000000000000000000000000000000..64dba2fcb7b93289575361e621287c2804e7682b |
--- /dev/null |
+++ b/fusl/src/internal/arm/syscall.s |
@@ -0,0 +1,15 @@ |
+.syntax unified |
+.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} |
+ bx lr |