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