|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1983 Regents of the University of California. ! 3: * All rights reserved. The Berkeley software License Agreement ! 4: * specifies the terms and conditions for redistribution. ! 5: */ ! 6: ! 7: #ifdef LIBC_SCCS ! 8: .asciz "@(#)bcopy.s 5.3 (Berkeley) 3/9/86" ! 9: #endif LIBC_SCCS ! 10: ! 11: /* bcopy(from, to, size) */ ! 12: ! 13: #include "DEFS.h" ! 14: ! 15: ENTRY(bcopy, R6) ! 16: movl 4(ap),r1 ! 17: movl 8(ap),r3 ! 18: movl 12(ap),r6 ! 19: cmpl r1,r3 ! 20: bgtr 2f # normal forward case ! 21: blss 3f # overlapping, must do backwards ! 22: ret # equal, nothing to do ! 23: 1: ! 24: subl2 r0,r6 ! 25: movc3 r0,(r1),(r3) ! 26: 2: ! 27: movzwl $65535,r0 ! 28: cmpl r6,r0 ! 29: jgtr 1b ! 30: movc3 r6,(r1),(r3) ! 31: ret ! 32: 3: ! 33: addl2 r6,r1 ! 34: addl2 r6,r3 ! 35: movzwl $65535,r0 ! 36: jbr 5f ! 37: 4: ! 38: subl2 r0,r6 ! 39: subl2 r0,r1 ! 40: subl2 r0,r3 ! 41: movc3 r0,(r1),(r3) ! 42: movzwl $65535,r0 ! 43: subl2 r0,r1 ! 44: subl2 r0,r3 ! 45: 5: ! 46: cmpl r6,r0 ! 47: jgtr 4b ! 48: subl2 r6,r1 ! 49: subl2 r6,r3 ! 50: movc3 r6,(r1),(r3) ! 51: ret
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.