|
|
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.