1: /
2: /
3:
4: / f37 -- goto statements of all kinds
5:
6: .globl sgoto
7: .globl intexp
8:
9: .globl e2
10: .globl code
11: .globl getsym
12: .globl error
13: .globl getlab
14: .globl rvalue
15: .globl convrt
16: .globl chrtab
17:
18: sgoto:
19: movb (r1),r0
20: cmpb chrtab(r0),$4 / test digit
21: bne 1f / not constant
22: jsr r5,getlab
23: br 8f
24: jsr r5,code
25: < goto; .%d\n\0>; .even
26: r0
27: br 9f
28: 1:
29: cmpb (r1),$'(
30: beq 1f
31: jsr r5,intexp
32: cmp r0,$36. / ,
33: beq 2f
34: jsr r5,code
35: < agoto\n\0>; .even
36: br 9f
37: 2:
38: jsr r5,code
39: < cagoto\n\0>; .even
40: cmpb (r1)+,$'(
41: bne 8f / syntax
42: jsr pc,stmlist
43: br 9f
44: 1:
45: mov r1,r4
46: 1:
47: movb (r1)+,r0
48: beq 8f
49: cmp r0,$')
50: bne 1b
51: cmpb (r1)+,$',
52: bne 8f
53: jsr r5,intexp
54: mov r1,-(sp)
55: jsr r5,code
56: < cgoto\n\0>; .even
57: mov r4,r1
58: tstb (r1)+
59: jsr pc,stmlist
60: mov (sp)+,r1
61: 9:
62: tstb (r1)
63: beq 1f
64: 8:
65: jsr r5,error; 35.
66: 1:
67: rts r5
68:
69: stmlist:
70: jsr r5,getlab
71: br 9f
72: jsr r5,code
73: < .%d\n\0>; .even
74: r0
75: movb (r1)+,r0
76: cmp r0,$',
77: beq stmlist
78: cmp r0,$')
79: bne 8f
80: jsr r5,code
81: < 0\n\0>; .even
82: rts pc
83: 8:
84: jsr r5,error; 35.
85: 9:
86: rts pc
87:
88: intexp:
89: jsr r5,e2
90: mov r0,-(sp)
91: jsr r5,rvalue
92: mov $intcon,r2
93: jsr r5,convrt
94: mov (sp)+,r0
95: rts r5
Defined functions
intexp
declared in line
7; defined in line
88; used 7 times
sgoto
declared in line
6; defined in line
18; used 3 times