date and time created 86/08/01 08:49:33 by sam
authorSam Leffler <sam@ucbvax.Berkeley.EDU>
Fri, 1 Aug 1986 23:49:33 +0000 (15:49 -0800)
committerSam Leffler <sam@ucbvax.Berkeley.EDU>
Fri, 1 Aug 1986 23:49:33 +0000 (15:49 -0800)
SCCS-vsn: lib/libc/tahoe/string/bcopy.s 1.1
SCCS-vsn: lib/libc/tahoe/string/bzero.s 1.1

usr/src/lib/libc/tahoe/string/bcopy.s [new file with mode: 0644]
usr/src/lib/libc/tahoe/string/bzero.s [new file with mode: 0644]

diff --git a/usr/src/lib/libc/tahoe/string/bcopy.s b/usr/src/lib/libc/tahoe/string/bcopy.s
new file mode 100644 (file)
index 0000000..fb21da8
--- /dev/null
@@ -0,0 +1,43 @@
+#ifdef LIBC_SCCS
+       .asciz  "@(#)bcopy.s    1.1 (Berkeley/CCI) %G%"
+#endif LIBC_SCCS
+
+/* bcopy(from, to, size) */
+#include "DEFS.h"
+
+ENTRY(bcopy, 0)
+       movl    4(fp),r0
+       movl    8(fp),r1
+       movl    12(fp),r2
+       cmpl    r0,r1
+       bgtru   1f              # normal forward case
+       beql    2f              # equal, nothing to do
+       addl2   r2,r0           # may be overlapping
+       cmpl    r0,r1
+       bgtru   3f
+       subl2   r2,r0           # normal forward case
+1:
+       movblk
+2:
+       ret
+3:
+       addl2   r2,r1           # overlapping, must do backwards
+       subl3   r0,r1,r3
+       movl    r2,r4
+       jbr     5f
+4:
+       subl2   r3,r0
+       subl2   r3,r1
+       movl    r3,r2
+       movblk
+       subl2   r3,r0
+       subl2   r3,r1
+       subl2   r3,r4
+5:
+       cmpl    r4,r3
+       jgtr    4b
+       movl    r4,r2
+       subl2   r2,r0
+       subl2   r2,r1
+       movblk
+       ret
diff --git a/usr/src/lib/libc/tahoe/string/bzero.s b/usr/src/lib/libc/tahoe/string/bzero.s
new file mode 100644 (file)
index 0000000..8d63121
--- /dev/null
@@ -0,0 +1,15 @@
+#ifdef LIBC_SCCS
+       .asciz  "@(#)bzero.s    1.1 (Berkeley/CCI) %G%"
+#endif LIBC_SCCS
+
+/* bzero(base, length) */
+#include "DEFS.h"
+
+ENTRY(bzero, 0)
+       movl    $1f,r0                          # r0 = null source string
+       movl    4(fp),r1                        # r1 = destination address
+       movl    8(fp),r2                        # r2 = count
+       movs3
+       ret
+1:
+       .byte 0