move common files to root
[libpicofe.git] / arm_linux.S
diff --git a/arm_linux.S b/arm_linux.S
new file mode 100644 (file)
index 0000000..8b13ebb
--- /dev/null
@@ -0,0 +1,26 @@
+@ vim:filetype=armasm
+#include <sys/syscall.h>
+
+
+.global cache_flush_d_inval_i @ const void *start_addr, const void *end_addr
+
+cache_flush_d_inval_i:
+    mov     r2, #0
+#ifdef __ARM_EABI__
+    /* EABI version */
+    str     r7, [sp, #-4]!
+    mov     r7, #(__ARM_NR_cacheflush & 0xff)
+#if (__ARM_NR_cacheflush & 0x00ff00)
+    orr     r7, r7, #(__ARM_NR_cacheflush & 0x00ff00)
+#endif
+#if (__ARM_NR_cacheflush & 0xff0000)
+    orr     r7, r7, #(__ARM_NR_cacheflush & 0xff0000)
+#endif
+    swi     0
+    ldr     r7, [sp], #4
+#else
+    /* OABI */
+    swi     __ARM_NR_cacheflush
+#endif
+    bx      lr
+