|
|
1.1 ! root 1: /* @(#)bcopy.s 4.4 3/23/84 */ ! 2: /* bcopy(from, to, size) */ ! 3: ! 4: .globl _bcopy ! 5: _bcopy: ! 6: .word 0x001c ! 7: movl 4(fp),r0 ! 8: movl 8(fp),r1 ! 9: movl 12(fp),r2 ! 10: cmpl r0,r1 ! 11: bgtru 1f # normal forward case ! 12: beql 2f # equal, nothing to do ! 13: addl2 r2,r0 # may be overlapping ! 14: cmpl r0,r1 ! 15: bgtru 3f ! 16: subl2 r2,r0 # normal forward case ! 17: 1: ! 18: movblk ! 19: 2: ! 20: ret ! 21: 3: ! 22: addl2 r2,r1 # overlapping, must do backwards ! 23: subl3 r0,r1,r3 ! 24: movl r2,r4 ! 25: jbr 5f ! 26: 4: ! 27: subl2 r3,r0 ! 28: subl2 r3,r1 ! 29: movl r3,r2 ! 30: movblk ! 31: subl2 r3,r0 ! 32: subl2 r3,r1 ! 33: subl2 r3,r4 ! 34: 5: ! 35: cmpl r4,r3 ! 36: jgtr 4b ! 37: movl r4,r2 ! 38: subl2 r2,r0 ! 39: subl2 r2,r1 ! 40: movblk ! 41: ret
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.