|
|
1.1 root 1: .data
2: .align 2
3: _sccsid:.data 2
4: L12:.ascii "@(#)mon.c\11"
5: .ascii "2.0 (Tahoe) 5/7/84\0"
6: .data
7: .long L12
8: .comm _countbase,4
9: .align 2
10: _cntrs:.long 0
11: .align 2
12: _profiling:.long 3
13: .lcomm _s_sbuf,4
14: .lcomm _s_bufsiz,4
15: .lcomm _s_scale,4
16: .lcomm _s_lowpc,4
17: .comm _numctrs,4
18: .text
19: LL0:.align 1
20: .globl _monstartup
21: .data 1
22: L31:.ascii "No space for monitor buffer(s)\12\0"
23: .text
24: .data 1
25: L32:.ascii "No space for monitor buffer(s)\12\0"
26: .text
27: .set L22,0x0
28: .data
29: .text
30: _monstartup:.word L22
31: subl3 $64,fp,sp
32: subl3 4(fp),8(fp),r0
33: mull2 $5,r0
34: divl3 $100,r0,-64(fp)
35: cmpl -64(fp),$50
36: jgeq L28
37: movl $50,-64(fp)
38: L28:subl3 4(fp),8(fp),r0
39: incl r0
40: divl2 $2,r0
41: addl2 $12,r0
42: shll $3,-64(fp),r1
43: addl3 r1,r0,-56(fp)
44: addl3 $1,-56(fp),r0
45: andl3 $-2,r0,-56(fp)
46: pushl -56(fp)
47: callf $8,_sbrk
48: movl r0,-60(fp)
49: cmpl r0,$-1
50: jneq L29
51: pushl $32
52: pushl $L31
53: pushl $2
54: callf $16,_write
55: ret#2
56: L29:pushl $0
57: callf $8,_sbrk
58: movl r0,minbrk
59: pushl -64(fp)
60: pushl -56(fp)
61: pushl -60(fp)
62: pushl 8(fp)
63: pushl 4(fp)
64: callf $24,_monitor
65: ret#2
66: .align 1
67: .globl mcount
68: .data 1
69: L44:.ascii "mcount: counter overflow\12\0"
70: .text
71: .data 1
72: L45:.ascii "mcount: counter overflow\12\0"
73: .text
74: .set L35,0x1800
75: .data
76: .text
77: mcount:.word L35
78: movl -8(fp),r11
79: movl 4(fp),r12
80: tstl _profiling
81: jneq L40
82: incl _profiling
83: tstl (r12)
84: jneq L41
85: movl _cntrs,r0
86: incl _cntrs
87: cmpl r0,_numctrs
88: jeql L43
89: movl r11,*_countbase
90: addl3 $4,_countbase,r0
91: movl r0,(r12)
92: addl2 $8,_countbase
93: L41:incl *(r12)
94: decl _profiling
95: L40:ret#2
96: L43:pushl $26
97: pushl $L44
98: pushl $2
99: callf $16,_write
100: jbr L40
101: .align 1
102: .globl _monitor
103: .lcomm L50,4
104: .lcomm L51,4
105: .data 1
106: L55:.ascii "mon.out\0"
107: .text
108: .data
109: .align 2
110: L59:.long 0x48800000, 0x00000000 # .double 65536
111: .text
112: .set L46,0x100C
113: .data
114: .text
115: _monitor:.word L46
116: subl3 $56,fp,sp
117: tstl 4(fp)
118: jneq L52
119: pushl $0
120: callf $8,_moncontrol
121: pushl $438
122: pushl $L55
123: callf $12,_creat
124: movl r0,r12
125: pushl L50
126: pushl L51
127: pushl r12
128: callf $16,_write
129: pushl r12
130: callf $8,_close
131: ret#2
132: L52:movl 12(fp),L51
133: movl 16(fp),L50
134: movl 12(fp),-56(fp)
135: movl 4(fp),*-56(fp)
136: movl -56(fp),r0
137: movl 8(fp),4(r0)
138: movl -56(fp),r0
139: movl 20(fp),8(r0)
140: movl 20(fp),_numctrs
141: addl3 $12,12(fp),_countbase
142: shll $3,20(fp),r0
143: addl2 $12,r0
144: movl r0,r12
145: addl2 r12,12(fp)
146: subl2 r12,16(fp)
147: jgtr L57
148: ret#2
149: L57:subl3 4(fp),8(fp),r12
150: cmpl 16(fp),r12
151: jgeq L58
152: cvlf 16(fp)
153: stf r0
154: clrl r1
155: cvld r12
156: std r2
157: ldd r0
158: divd r2
159: muld L59
160: cvdl r12
161: jbr L60
162: L58:movl $65536,r12
163: L60:movl r12,_s_scale
164: movl 12(fp),_s_sbuf
165: movl 16(fp),_s_bufsiz
166: movl 4(fp),_s_lowpc
167: pushl $1
168: callf $8,_moncontrol
169: ret#2
170: .align 1
171: .globl _moncontrol
172: .set L61,0x0
173: .data
174: .text
175: _moncontrol:.word L61
176: tstl 4(fp)
177: jeql L65
178: pushl _s_scale
179: pushl _s_lowpc
180: pushl _s_bufsiz
181: pushl _s_sbuf
182: callf $20,_profil
183: clrl _profiling
184: jbr L67
185: L65:pushl $0
186: pushl $0
187: pushl $0
188: pushl $0
189: callf $20,_profil
190: movl $3,_profiling
191: L67:ret#2
192:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.