|
|
1.1 ! root 1: TEXT memset(SB), $0 ! 2: MOVL n+8(FP), R0 ! 3: BLE return ! 4: MOVL s1+0(FP), A1 ! 5: CLRL R1 ! 6: MOVB c+7(FP), R1 ! 7: BEQ l1 ! 8: ! 9: /* ! 10: * create 4 replicated copies ! 11: * of the byte in R1 ! 12: */ ! 13: MOVL R1, R2 ! 14: ASLL $8, R2 ! 15: ORL R2, R1 ! 16: MOVL R1, R2 ! 17: SWAP R2 ! 18: ORL R2, R1 ! 19: ! 20: /* ! 21: * quad-long-at-a-time set ! 22: * destination allignment is not ! 23: * very important. ! 24: */ ! 25: l1: ! 26: SUBL $16, R0 ! 27: BLT l2 ! 28: MOVL R1, (A1)+ ! 29: MOVL R1, (A1)+ ! 30: MOVL R1, (A1)+ ! 31: MOVL R1, (A1)+ ! 32: BRA l1 ! 33: ! 34: /* ! 35: * cleanup byte-at-a-time ! 36: */ ! 37: l2: ! 38: ADDL $15, R0 ! 39: BLT return ! 40: l3: ! 41: MOVB R1, (A1)+ ! 42: SUBL $1, R0 ! 43: BGE l3 ! 44: ! 45: return: ! 46: MOVL s1+0(FP),R0 ! 47: RTS
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.