|
|
1.1 root 1: #
2: # 05index.s
3: #
4: # OFF, INDEX and NIL
5: #
6: _OFF:
7: cvtbl (r10)+,r0
8: bneq l0501
9: cvtwl (r10)+,r0
10: l0501:
11: addl2 r0,(sp)
12: jmp (r8)
13: _INX2:
14: cvtbl (r10)+,r0
15: bneq l0502
16: cvtwl (r10)+,r0 #r0 has size
17: l0502:
18: cvtwl (r10)+,r1 #r1 has lower bound
19: cvtwl (r10)+,r2 #r2 has upper bound
20: cvtwl (sp)+,r3 #r3 contains subscript
21: subl2 r1,r3 #r3 has base subscript
22: index r3,$0,r2,r0,$0,r1 #r1 has calculated offset
23: addl2 r1,(sp) #calculate actual address
24: jmp (r8)
25: _INX4:
26: cvtbl (r10)+,r0
27: bneq l0503
28: cvtwl (r10)+,r0 #r0 has size
29: l0503:
30: cvtwl (r10)+,r1 #r1 has lower bound
31: cvtwl (r10)+,r2 #r2 has upper bound
32: movl (sp)+,r3 #r3 contains subscript
33: subl2 r1,r3 #r3 has base subscript
34: index r3,$0,r2,r0,$0,r1 #r1 has calculated offset
35: addl2 r1,(sp) #calculate actual address
36: jmp (r8)
37: _NIL:
38: incl r10
39: tstl (sp)
40: jeql l0504
41: jmp (r8)
42: l0504:
43: movw $ENILPTR,_perrno
44: jbr error
45: _INX4P2:
46: cvtbl (r10)+,r0 #r0 has shift amount
47: cvtwl (r10)+,r2 #r2 has lower bound
48: subl3 r2,(sp)+,r1 #r1 has base subscript
49: ashl r0,r1,r1
50: addl2 r1,(sp)
51: jmp (r8)
52: _INX2P2:
53: cvtbl (r10)+,r0 #r0 has shift amount
54: clrl r1 #clear upper half of r1
55: subw3 (r10)+,(sp)+,r1 #r1 has base subscript
56: ashl r0,r1,r1
57: addl2 r1,(sp)
58: jmp (r8)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.