Annotation of researchv10no/cmd/lcc/gen2/mips-iris/tst/wf1.s, revision 1.1.1.1

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"

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.