|
|
1.1 root 1: .seg "text"
2: .global _main
3: .align 4
4: .proc 4
5: _main:save %sp,-120,%sp
6: st %r0,[%fp+-24]
7: set _next,%r29
8: st %r0,[%r29]
9: ba L3; nop
10: L2:
11: add -20,%fp,%r8
12: add -24,%fp,%r9
13: call _lookup; nop
14: mov %r8,%r29
15: ld [%r29],%r28
16: add %r28,1,%r28
17: st %r28,[%r29]
18: L3:
19: add -20,%fp,%r8
20: call _getword; nop
21: cmp %r8,%r0; bne L2; nop
22: ld [%fp+-24],%r8
23: call _tprint; nop
24: mov %r0,%r24
25: L1:
26: ret; restore
27: .global _err
28: .align 4
29: .proc 4
30: _err:save %sp,-96,%sp
31: set L6,%r8
32: mov %r24,%r9
33: call _printf; nop
34: set 1,%r8
35: call _exit; nop
36: L5:
37: ret; restore
38: .global _getword
39: .align 4
40: .proc 4
41: _getword:save %sp,-96,%sp
42: L8:
43: L9:
44: call _getchar; nop
45: mov %r8,%r29
46: cmp %r8,-1; be L11; nop
47: mov %r29,%r8
48: call _isletter; nop
49: cmp %r8,%r0; be L8; nop
50: L11:
51: mov %r24,%r28
52: ba L15; nop
53: L12:
54: mov %r28,%r27
55: add %r27,1,%r28
56: stb %r29,[%r27]
57: L13:
58: call _getchar; nop
59: mov %r8,%r29
60: L15:
61: mov %r29,%r8
62: call _isletter; nop
63: mov %r8,%r29
64: cmp %r8,%r0; bne L12; nop
65: stb %r0,[%r28]
66: cmp %r28,%r24; bleu L16; nop
67: set 1,%r24
68: ba L7; nop
69: L16:
70: mov %r0,%r24
71: L7:
72: ret; restore
73: .global _isletter
74: .align 4
75: .proc 4
76: _isletter:
77: cmp %r8,65; bl L19; nop
78: cmp %r8,90; bg L19; nop
79: add %r8,32,%r8
80: L19:
81: cmp %r8,97; bl L21; nop
82: cmp %r8,122; bg L21; nop
83: ba L18; nop
84: L21:
85: mov %r0,%r8
86: L18:
87: retl; nop
88: .global _lookup
89: .align 4
90: .proc 4
91: _lookup:save %sp,-96,%sp
92: ld [%r25],%r28
93: cmp %r28,%r0; be L24; nop
94: mov %r24,%r8
95: ld [%r25],%r28
96: ld [%r28+12],%r9
97: call _strcmp; nop
98: mov %r8,%r29
99: cmp %r29,%r0; bge L26; nop
100: mov %r24,%r8
101: ld [%r25],%r28
102: add %r28,4,%r9
103: call _lookup; nop
104: mov %r8,%r24
105: ba L23; nop
106: L26:
107: cmp %r29,%r0; ble L28; nop
108: mov %r24,%r8
109: ld [%r25],%r28
110: add %r28,8,%r9
111: call _lookup; nop
112: mov %r8,%r24
113: ba L23; nop
114: L28:
115: ld [%r25],%r24
116: ba L23; nop
117: L24:
118: set _next,%r28
119: ld [%r28],%r28
120: cmp %r28,2000; bl L30; nop
121: set L32,%r8
122: call _err; nop
123: L30:
124: set _next,%r28
125: ld [%r28],%r28
126: sll %r28,4,%r28
127: set _words,%r27
128: st %r0,[%r28+%r27]
129: set _next,%r28
130: ld [%r28],%r28
131: sll %r28,4,%r28
132: set _words+8,%r27
133: st %r0,[%r28+%r27]
134: set _words+4,%r27
135: st %r0,[%r28+%r27]
136: mov %r24,%r8
137: call _strlen; nop
138: add %r8,1,%r8
139: call _malloc; nop
140: set _next,%r28
141: ld [%r28],%r28
142: sll %r28,4,%r28
143: set _words+12,%r27
144: st %r8,[%r28+%r27]
145: set _next,%r28
146: ld [%r28],%r28
147: sll %r28,4,%r28
148: set _words+12,%r27
149: ld [%r28+%r27],%r28
150: cmp %r28,%r0; bne L36; nop
151: set L39,%r8
152: call _err; nop
153: L36:
154: set _next,%r28
155: ld [%r28],%r28
156: sll %r28,4,%r28
157: set _words+12,%r27
158: ld [%r28+%r27],%r8
159: mov %r24,%r9
160: call _strcpy; nop
161: set _next,%r28
162: ld [%r28],%r27
163: add %r27,1,%r26
164: st %r26,[%r28]
165: sll %r27,4,%r28
166: set _words,%r27
167: add %r28,%r27,%r28
168: st %r28,[%r25]
169: mov %r28,%r24
170: L23:
171: ret; restore
172: .global _tprint
173: .align 4
174: .proc 4
175: _tprint:save %sp,-96,%sp
176: cmp %r24,%r0; be L42; nop
177: ld [%r24+4],%r8
178: call _tprint; nop
179: set L44,%r8
180: ld [%r24],%r9
181: ld [%r24+12],%r10
182: call _printf; nop
183: ld [%r24+8],%r8
184: call _tprint; nop
185: L42:
186: L41:
187: ret; restore
188: .global _strcmp
189: .align 4
190: .proc 4
191: _strcmp:
192: ba L47; nop
193: L46:
194: mov %r8,%r13
195: add %r13,1,%r8
196: ldsb [%r13],%r13
197: cmp %r13,%r0; bne L49; nop
198: mov %r0,%r8
199: ba L45; nop
200: L49:
201: add %r9,1,%r9
202: L47:
203: ldsb [%r8],%r13
204: ldsb [%r9],%r12
205: cmp %r13,%r12; be L46; nop
206: ldsb [%r8],%r13
207: cmp %r13,%r0; bne L51; nop
208: set -1,%r8
209: ba L45; nop
210: L51:
211: ldsb [%r9],%r13
212: cmp %r13,%r0; bne L53; nop
213: set 1,%r8
214: ba L45; nop
215: L53:
216: ldsb [%r8],%r13
217: ldsb [%r9],%r12
218: sub %r13,%r12,%r8
219: L45:
220: retl; nop
221: .seg "bss"
222: .global _next
223: .align 4; .common _next,4
224: .global _words
225: .align 4; .common _words,32000
226: .seg "text"
227: L44:.ascii "%d\011%s\012\000"
228: L39:.ascii "out of word storage\000"
229: L32:.ascii "out of node storage\000"
230: L6:.ascii "? %s\012\000"
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.