Annotation of researchv10no/cmd/lcc/gen2/mc-sun/tst/wf1.s, revision 1.1.1.1

1.1       root        1: .text
                      2: .globl _main
                      3: .align 2
                      4: _main:link a6,#-36
                      5: moveml #0x400,a6@(-28)
                      6: clrl a6@(-24)
                      7: clrl _next:l
                      8: jra L3
                      9: L2:
                     10: lea a6@(-20),a2
                     11: movl a2,sp@
                     12: lea a6@(-24),a2
                     13: movl a2,sp@(4)
                     14: jbsr _lookup:l
                     15: movl d0,a2
                     16: addql #1,a2@
                     17: L3:
                     18: lea a6@(-20),a2
                     19: movl a2,sp@
                     20: jbsr _getword:l
                     21: tstl d0; jne L2
                     22: movl a6@(-24),sp@
                     23: jbsr _tprint:l
                     24: clrl d0
                     25: L1:
                     26: moveml a6@(-28),#0x400
                     27: unlk a6
                     28: rts
                     29: .globl _err
                     30: .align 2
                     31: _err:link a6,#-8
                     32: movl #L6,sp@
                     33: movl a6@(8),sp@(4)
                     34: jbsr _printf:l
                     35: movl #1,sp@
                     36: jbsr _exit:l
                     37: L5:
                     38: unlk a6
                     39: rts
                     40: .globl _getword
                     41: .align 2
                     42: _getword:link a6,#-20
                     43: moveml #0x2490,a6@(-16)
                     44: L8:
                     45: L9:
                     46: jbsr _getchar:l
                     47: movl d0,d7
                     48: cmpl #-1,d0; jeq L11
                     49: movl d7,sp@
                     50: jbsr _isletter:l
                     51: tstl d0; jeq L8
                     52: L11:
                     53: movl a6@(8),a5
                     54: jra L15
                     55: L12:
                     56: movl a5,a2
                     57: lea a2@(1),a5
                     58: movb d7,a2@
                     59: L13:
                     60: jbsr _getchar:l
                     61: movl d0,d7
                     62: L15:
                     63: movl d7,sp@
                     64: jbsr _isletter:l
                     65: movl d0,d7
                     66: tstl d0; jne L12
                     67: clrb a5@
                     68: movl a5,d4
                     69: cmpl a6@(8),d4; jls L16
                     70: movl #1,d0
                     71: jra L7
                     72: L16:
                     73: clrl d0
                     74: L7:
                     75: moveml a6@(-16),#0x2490
                     76: unlk a6
                     77: rts
                     78: .globl _isletter
                     79: .align 2
                     80: _isletter:link a6,#-0
                     81: movl a6@(8),d1
                     82: cmpl #65,d1; jlt L19
                     83: cmpl #90,d1; jgt L19
                     84: addl #32,d1
                     85: L19:
                     86: cmpl #97,d1; jlt L21
                     87: cmpl #122,d1; jgt L21
                     88: movl d1,d0
                     89: jra L18
                     90: L21:
                     91: clrl d0
                     92: L18:
                     93: unlk a6
                     94: rts
                     95: .globl _lookup
                     96: .align 2
                     97: _lookup:link a6,#-28
                     98: moveml #0x2418,a6@(-20)
                     99: movl a6@(12),a5
                    100: tstl a5@; jeq L24
                    101: movl a6@(8),sp@
                    102: movl a5@,a2
                    103: movl a2@(12),sp@(4)
                    104: jbsr _strcmp:l
                    105: movl d0,a6@(-4)
                    106: tstl a6@(-4); jge L26
                    107: movl a6@(8),sp@
                    108: movl a5@,a2
                    109: lea a2@(4),a2
                    110: movl a2,sp@(4)
                    111: jbsr _lookup:l
                    112: movl d0,d0
                    113: jra L23
                    114: L26:
                    115: tstl a6@(-4); jle L28
                    116: movl a6@(8),sp@
                    117: movl a5@,a2
                    118: lea a2@(8),a2
                    119: movl a2,sp@(4)
                    120: jbsr _lookup:l
                    121: movl d0,d0
                    122: jra L23
                    123: L28:
                    124: movl a5@,d0
                    125: jra L23
                    126: L24:
                    127: cmpl #2000,_next:l; jlt L30
                    128: movl #L32,sp@
                    129: jbsr _err:l
                    130: L30:
                    131: movl _next:l,d4
                    132: asll #4,d4
                    133: clrl @(_words:l,d4:l:1)
                    134: movl _next:l,d4
                    135: asll #4,d4
                    136: clrl @(_words+8:l,d4:l:1)
                    137: clrl @(_words+4:l,d4:l:1)
                    138: movl a6@(8),sp@
                    139: jbsr _strlen:l
                    140: movl d0,d4; addql #1,d4
                    141: movl d4,sp@
                    142: jbsr _malloc:l
                    143: movl _next:l,d4
                    144: asll #4,d4
                    145: movl d0,@(_words+12:l,d4:l:1)
                    146: movl _next:l,d4
                    147: asll #4,d4
                    148: tstl @(_words+12:l,d4:l:1); jne L36
                    149: movl #L39,sp@
                    150: jbsr _err:l
                    151: L36:
                    152: movl _next:l,d4
                    153: asll #4,d4
                    154: movl @(_words+12:l,d4:l:1),sp@
                    155: movl a6@(8),sp@(4)
                    156: jbsr _strcpy:l
                    157: movl _next:l,d4
                    158: movl d4,d3; addql #1,d3
                    159: movl d3,_next:l
                    160: asll #4,d4
                    161: lea @(_words:l,d4:l:1),a2
                    162: movl a2,a5@
                    163: movl a2,d0
                    164: L23:
                    165: moveml a6@(-20),#0x2418
                    166: unlk a6
                    167: rts
                    168: .globl _tprint
                    169: .align 2
                    170: _tprint:link a6,#-16
                    171: moveml #0x2000,a6@(-4)
                    172: movl a6@(8),a5
                    173: cmpl #0,a5; jeq L42
                    174: movl a5@(4),sp@
                    175: jbsr _tprint:l
                    176: movl #L44,sp@
                    177: movl a5@,sp@(4)
                    178: movl a5@(12),sp@(8)
                    179: jbsr _printf:l
                    180: movl a5@(8),sp@
                    181: jbsr _tprint:l
                    182: L42:
                    183: L41:
                    184: moveml a6@(-4),#0x2000
                    185: unlk a6
                    186: rts
                    187: .globl _strcmp
                    188: .align 2
                    189: _strcmp:link a6,#-12
                    190: moveml #0x418,a6@(-12)
                    191: movl a6@(8),a0
                    192: movl a6@(12),a1
                    193: jra L47
                    194: L46:
                    195: movl a0,a2
                    196: lea a2@(1),a0
                    197: tstb a2@; jne L49
                    198: clrl d0
                    199: jra L45
                    200: L49:
                    201: addql #1,a1
                    202: L47:
                    203: movb a0@,d4
                    204: cmpb a1@,d4; jeq L46
                    205: tstb a0@; jne L51
                    206: movl #-1,d0
                    207: jra L45
                    208: L51:
                    209: tstb a1@; jne L53
                    210: movl #1,d0
                    211: jra L45
                    212: L53:
                    213: movb a0@,d4
                    214: extbl d4
                    215: movb a1@,d3
                    216: extbl d3
                    217: movl d4,d0; subl d3,d0
                    218: L45:
                    219: moveml a6@(-12),#0x418
                    220: unlk a6
                    221: rts
                    222: .bss
                    223: .globl _next
                    224: .comm _next,4
                    225: .globl _words
                    226: .comm _words,32000
                    227: .text
                    228: .align 2; L44:.ascii "%d\011%s\012\000"
                    229: .align 2; L39:.ascii "out of word storage\000"
                    230: .align 2; L32:.ascii "out of node storage\000"
                    231: .align 2; L6:.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.