121422Sdist/* 2*61222Sbostic * Copyright (c) 1983, 1993 3*61222Sbostic * The Regents of the University of California. All rights reserved. 434480Sbostic * 542639Sbostic * %sccs.include.redist.c% 621422Sdist */ 721422Sdist 834819Sbostic#if defined(LIBC_SCCS) && !defined(lint) 9*61222Sbostic .asciz "@(#)bcopy.s 8.1 (Berkeley) 06/04/93" 1034819Sbostic#endif /* LIBC_SCCS and not lint */ 1121422Sdist 1214957Skarels/* bcopy(from, to, size) */ 139709Ssam 149709Ssam#include "DEFS.h" 159709Ssam 1617329SsamENTRY(bcopy, R6) 1710281Smckusick movl 4(ap),r1 1810281Smckusick movl 8(ap),r3 1915102Smckusick movl 12(ap),r6 2015102Smckusick cmpl r1,r3 2115102Smckusick bgtr 2f # normal forward case 2215102Smckusick blss 3f # overlapping, must do backwards 2315102Smckusick ret # equal, nothing to do 2410281Smckusick1: 2515102Smckusick subl2 r0,r6 2610281Smckusick movc3 r0,(r1),(r3) 2710281Smckusick2: 2810281Smckusick movzwl $65535,r0 2915102Smckusick cmpl r6,r0 3010281Smckusick jgtr 1b 3115102Smckusick movc3 r6,(r1),(r3) 329709Ssam ret 3315102Smckusick3: 3415102Smckusick addl2 r6,r1 3515102Smckusick addl2 r6,r3 3615102Smckusick movzwl $65535,r0 3715102Smckusick jbr 5f 3815102Smckusick4: 3915102Smckusick subl2 r0,r6 4015102Smckusick subl2 r0,r1 4115102Smckusick subl2 r0,r3 4215102Smckusick movc3 r0,(r1),(r3) 4315102Smckusick movzwl $65535,r0 4415102Smckusick subl2 r0,r1 4515102Smckusick subl2 r0,r3 4615102Smckusick5: 4715102Smckusick cmpl r6,r0 4815102Smckusick jgtr 4b 4915102Smckusick subl2 r6,r1 5015102Smckusick subl2 r6,r3 5115102Smckusick movc3 r6,(r1),(r3) 5215102Smckusick ret 53