testing stuff
[retrocrawl] / src / amiga / libc / libc_asm.s
diff --git a/src/amiga/libc/libc_asm.s b/src/amiga/libc/libc_asm.s
new file mode 100644 (file)
index 0000000..095c8df
--- /dev/null
@@ -0,0 +1,24 @@
+| vi:filetype=gas68k:
+       .text
+
+       | optimize: transfer words at a time
+       .global memcpy
+memcpy:
+       move.l 4(%sp), %a0
+       move.l 8(%sp), %a1
+       move.l 12(%sp), %d0
+       sub.l #1, %d0
+0:     move.b (%a1)+, (%a0)+
+       dbra %d0, 0b
+       rts
+
+       | optimize: same as above
+       .global memset
+memset:
+       move.l 4(%sp), %a0
+       move.l 8(%sp), %d1
+       move.l 12(%sp), %d0
+       sub.l #1, %d0
+0:     move.b %d1, (%a0)+
+       dbra %d0, 0b
+       rts