|
|
1.1 root 1: .set reorder
2: .text
3: .globl main
4: .text
5: .align 2; .ent main
6: main:
7: $fp1=48
8: .frame $sp,48,$31
9: addu $sp,$sp,-48
10: .mask 0x80000000,-32
11: sw $31,16($sp)
12: sw $0,$fp1-24($sp)
13: sw $0,next
14: b L.3
15: L.2:
16: la $4,$fp1-20($sp)
17: la $5,$fp1-24($sp)
18: jal lookup # int
19: move $25,$2
20: lw $24,($25)
21: addu $24,$24,1
22: sw $24,($25)
23: L.3:
24: la $4,$fp1-20($sp)
25: jal getword # int
26: bne $2,$0,L.2
27: lw $4,$fp1-24($sp)
28: jal tprint # int
29: move $2,$0
30: L.1:
31: lw $31,16($sp)
32: addu $sp,$sp,48
33: j $31
34: .end main
35: .globl err
36: .text
37: .align 2; .ent err
38: err:
39: $fp2=24
40: .frame $sp,24,$31
41: addu $sp,$sp,-24
42: .mask 0x80000000,-8
43: sw $31,16($sp)
44: sw $4,24($sp)
45: la $4,L.6
46: lw $5,$fp2+0($sp)
47: jal printf # int
48: li $4,1
49: jal exit # int
50: L.5:
51: lw $31,16($sp)
52: addu $sp,$sp,24
53: j $31
54: .end err
55: .globl getword
56: .text
57: .align 2; .ent getword
58: getword:
59: $fp3=32
60: .frame $sp,32,$31
61: addu $sp,$sp,-32
62: .mask 0xc0800000,-8
63: sw $23,16($sp)
64: sw $30,20($sp)
65: sw $31,24($sp)
66: sw $4,32($sp)
67: L.8:
68: L.9:
69: jal getchar # int
70: move $30,$2
71: beq $2,-1,L.11
72: move $4,$30
73: jal isletter # int
74: beq $2,$0,L.8
75: L.11:
76: lw $23,$fp3+0($sp)
77: b L.15
78: L.12:
79: move $25,$23
80: addu $23,$25,1
81: sb $30,($25)
82: L.13:
83: jal getchar # int
84: move $30,$2
85: L.15:
86: move $4,$30
87: jal isletter # int
88: move $30,$2
89: bne $2,$0,L.12
90: sb $0,($23)
91: lw $25,$fp3+0($sp)
92: bleu $23,$25,L.16
93: li $2,1
94: b L.7
95: L.16:
96: move $2,$0
97: L.7:
98: lw $23,16($sp)
99: lw $30,20($sp)
100: lw $31,24($sp)
101: addu $sp,$sp,32
102: j $31
103: .end getword
104: .globl isletter
105: .text
106: .align 2; .ent isletter
107: isletter:
108: $fp4=0
109: .frame $sp,0,$31
110: blt $4,65,L.19
111: bgt $4,90,L.19
112: addu $4,$4,32
113: L.19:
114: blt $4,97,L.21
115: bgt $4,122,L.21
116: move $2,$4
117: b L.18
118: L.21:
119: move $2,$0
120: L.18:
121: j $31
122: .end isletter
123: .globl lookup
124: .text
125: .align 2; .ent lookup
126: lookup:
127: $fp5=32
128: .frame $sp,32,$31
129: addu $sp,$sp,-32
130: .mask 0xc0000000,-12
131: sw $30,16($sp)
132: sw $31,20($sp)
133: sw $4,32($sp)
134: move $30,$5
135: lw $25,($30)
136: beq $25,$0,L.24
137: lw $4,$fp5+0($sp)
138: lw $25,($30)
139: lw $5,12($25)
140: jal strcmp # int
141: sw $2,$fp5-4($sp)
142: lw $25,$fp5-4($sp)
143: bge $25,$0,L.26
144: lw $4,$fp5+0($sp)
145: lw $25,($30)
146: addu $5,$25,4
147: jal lookup # int
148: b L.23
149: L.26:
150: lw $25,$fp5-4($sp)
151: ble $25,$0,L.28
152: lw $4,$fp5+0($sp)
153: lw $25,($30)
154: addu $5,$25,8
155: jal lookup # int
156: b L.23
157: L.28:
158: lw $2,($30)
159: b L.23
160: L.24:
161: lw $25,next
162: blt $25,2000,L.30
163: la $4,L.32
164: jal err # int
165: L.30:
166: lw $25,next
167: sll $25,$25,4
168: sw $0,words($25)
169: lw $25,next
170: sll $25,$25,4
171: sw $0,words+8($25)
172: sw $0,words+4($25)
173: lw $4,$fp5+0($sp)
174: jal strlen # int
175: addu $4,$2,1
176: jal malloc # int
177: lw $25,next
178: sll $25,$25,4
179: move $24,$2
180: sw $24,words+12($25)
181: lw $25,next
182: sll $25,$25,4
183: lw $25,words+12($25)
184: bne $25,$0,L.36
185: la $4,L.39
186: jal err # int
187: L.36:
188: lw $25,next
189: sll $25,$25,4
190: lw $4,words+12($25)
191: lw $5,$fp5+0($sp)
192: jal strcpy # int
193: lw $25,next
194: addu $24,$25,1
195: sw $24,next
196: sll $25,$25,4
197: la $25,words($25)
198: sw $25,($30)
199: move $2,$25
200: L.23:
201: lw $30,16($sp)
202: lw $31,20($sp)
203: addu $sp,$sp,32
204: j $31
205: .end lookup
206: .globl tprint
207: .text
208: .align 2; .ent tprint
209: tprint:
210: $fp6=24
211: .frame $sp,24,$31
212: addu $sp,$sp,-24
213: .mask 0xc0000000,-4
214: sw $30,16($sp)
215: sw $31,20($sp)
216: move $30,$4
217: beq $30,$0,L.42
218: lw $4,4($30)
219: jal tprint # int
220: la $4,L.44
221: lw $5,($30)
222: lw $6,12($30)
223: jal printf # int
224: lw $4,8($30)
225: jal tprint # int
226: L.42:
227: L.41:
228: lw $30,16($sp)
229: lw $31,20($sp)
230: addu $sp,$sp,24
231: j $31
232: .end tprint
233: .globl strcmp
234: .text
235: .align 2; .ent strcmp
236: strcmp:
237: $fp7=0
238: .frame $sp,0,$31
239: b L.47
240: L.46:
241: move $25,$4
242: addu $4,$25,1
243: lb $25,($25)
244: bne $25,$0,L.49
245: move $2,$0
246: b L.45
247: L.49:
248: addu $5,$5,1
249: L.47:
250: lb $25,($4)
251: lb $24,($5)
252: beq $25,$24,L.46
253: lb $25,($4)
254: bne $25,$0,L.51
255: li $2,-1
256: b L.45
257: L.51:
258: lb $25,($5)
259: bne $25,$0,L.53
260: li $2,1
261: b L.45
262: L.53:
263: lb $25,($4)
264: lb $24,($5)
265: subu $2,$25,$24
266: L.45:
267: j $31
268: .end strcmp
269: .globl next
270: .comm next,4
271: .globl words
272: .comm words,32000
273: .rdata
274: L.44:.ascii "%d\011%s\012\000"
275: L.39:.ascii "out of word storage\000"
276: L.32:.ascii "out of node storage\000"
277: L.6:.ascii "? %s\012\000"
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.