|
|
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.