1: /
2: /
3:
4: / f14 -- common statement
5: /
6:
7: .globl scomm
8:
9: .globl getsym
10: .globl sdime1
11: .globl error
12: .globl getid
13: .globl lookid
14:
15: scomm:
16: mov r5,-(sp)
17: jsr r5,getsym
18: cmp r0,$6 / / for named common
19: beq ncom
20: 3:
21: tst r0
22: bne 9f
23: mov r3,-(sp)
24: clr r5
25: br 2f
26:
27: ncom:
28: cmpb (r1),$'/
29: bne 3f
30: inc r1
31: jsr r5,getsym
32: br 3b
33: 3:
34: jsr r5,getid
35: br 9f / not identifier
36: jsr r5,lookid; symbuf-1
37: bis $40,symtab(r3) / set named common
38: mov r3,r5
39: jsr r5,getsym
40: cmp r0,$6 / /
41: bne 9f
42: 1:
43: jsr r5,getsym
44: tst r0
45: bne 9f
46: mov r3,-(sp)
47: 2:
48: jsr r5,getsym
49: cmp r0,$32. / (
50: bne 2f
51: mov (sp),r3
52: jsr r5,sdime1
53: jsr r5,getsym
54: 2:
55: mov (sp)+,r3
56: bit $300,symtab(r3) / test param/common
57: beq 2f
58: jsr r5,error; 9. / not commonable or already commoned
59: br 3f
60: 2:
61: mov r0,-(sp)
62: mov symtab+4(r5),r0
63: beq 2f
64: mov r3,symtab+4(r0) / next ptr of old last block
65: 2:
66: mov (sp)+,r0
67: mov r3,symtab+4(r5) / new last ptr of head block
68: tst symtab+2(r5)
69: bne 3f
70: mov r3,symtab+2(r5) / first ptr if first block
71: 3:
72: bis $100,symtab(r3)
73: cmp r0,$36. / ,
74: beq 1b
75: cmp r0,$6 / another /
76: beq ncom
77: cmp r0,$40. / =|
78: beq 8f
79: 9:
80: jsr r5, error; 10. / common syntax error
81: 8:
82: mov (sp)+,r5
83: rts r5
Defined functions
ncom
defined in line
27; used 2 times
scomm
declared in line
7; defined in line
15; used 3 times