xref: /csrg-svn/lib/libc/vax/string/bcopy.s (revision 17329)
1/* @(#)bcopy.s	4.5 11/01/84 */
2/* bcopy(from, to, size) */
3
4#include "DEFS.h"
5
6ENTRY(bcopy, R6)
7	movl	4(ap),r1
8	movl	8(ap),r3
9	movl	12(ap),r6
10	cmpl	r1,r3
11	bgtr	2f		# normal forward case
12	blss	3f		# overlapping, must do backwards
13	ret			# equal, nothing to do
141:
15	subl2	r0,r6
16	movc3	r0,(r1),(r3)
172:
18	movzwl	$65535,r0
19	cmpl	r6,r0
20	jgtr	1b
21	movc3	r6,(r1),(r3)
22	ret
233:
24	addl2	r6,r1
25	addl2	r6,r3
26	movzwl	$65535,r0
27	jbr	5f
284:
29	subl2	r0,r6
30	subl2	r0,r1
31	subl2	r0,r3
32	movc3	r0,(r1),(r3)
33	movzwl	$65535,r0
34	subl2	r0,r1
35	subl2	r0,r3
365:
37	cmpl	r6,r0
38	jgtr	4b
39	subl2	r6,r1
40	subl2	r6,r3
41	movc3	r6,(r1),(r3)
42	ret
43