.globl main | |
.text | |
.text | |
.ent main | |
main: | |
ldgp $gp,0($27) | |
lda $sp,-96($sp) | |
.mask 0x4000000,-96 | |
.frame $sp,96,$26,48 | |
stq $26,0($sp) | |
.prologue 1 | |
stq $31,-88+96($sp) | |
stl $31,next | |
br L.3 | |
L.2: | |
lda $16,-76+96($sp) | |
lda $17,-88+96($sp) | |
jsr $26,lookup | |
ldgp $gp,0($26) | |
ldl $25,($0) | |
lda $25,1($25) | |
stl $25,($0) | |
L.3: | |
lda $16,-76+96($sp) | |
jsr $26,getword | |
ldgp $gp,0($26) | |
cmpeq $0,$31,$23 | |
beq $23,L.2 | |
ldq $16,-88+96($sp) | |
jsr $26,tprint | |
ldgp $gp,0($26) | |
mov $31,$0 | |
L.1: | |
ldq $26,0($sp) | |
lda $sp,96($sp) | |
ret | |
.end main | |
.globl err | |
.text | |
.ent err | |
err: | |
ldgp $gp,0($27) | |
lda $sp,-64($sp) | |
.mask 0x4000000,-64 | |
.frame $sp,64,$26,48 | |
stq $26,0($sp) | |
stq $16,16($sp) | |
.prologue 1 | |
lda $16,L.6 | |
ldq $17,-48+64($sp) | |
jsr $26,printf | |
ldgp $gp,0($26) | |
lda $16,1 | |
jsr $26,exit | |
ldgp $gp,0($26) | |
mov $31,$0 | |
L.5: | |
ldq $26,0($sp) | |
lda $sp,64($sp) | |
ret | |
.end err | |
.globl getword | |
.text | |
.ent getword | |
getword: | |
ldgp $gp,0($27) | |
lda $sp,-96($sp) | |
.mask 0x5006000,-72 | |
.frame $sp,96,$26,48 | |
stq $13,0($sp) | |
stq $14,8($sp) | |
stq $24,16($sp) | |
stq $26,24($sp) | |
stq $16,48($sp) | |
.prologue 1 | |
L.8: | |
L.9: | |
jsr $26,getchar | |
ldgp $gp,0($26) | |
mov $0,$27 | |
mov $27,$14 | |
lda $25,-1 | |
cmpeq $27,$25,$23 | |
bne $23,L.11 | |
mov $14,$16 | |
jsr $26,isletter | |
ldgp $gp,0($26) | |
cmpeq $0,$31,$23 | |
bne $23,L.8 | |
L.11: | |
ldq $13,-48+96($sp) | |
br L.15 | |
L.12: | |
mov $13,$27 | |
lda $13,1($27) | |
mov $14,$25 | |
stb $25,($27) | |
L.13: | |
jsr $26,getchar | |
ldgp $gp,0($26) | |
mov $0,$14 | |
L.15: | |
mov $14,$16 | |
jsr $26,isletter | |
ldgp $gp,0($26) | |
mov $0,$14 | |
cmpeq $0,$31,$23 | |
beq $23,L.12 | |
stb $31,($13) | |
mov $13,$27 | |
ldq $25,-48+96($sp) | |
cmpule $27,$25,$23 | |
bne $23,L.16 | |
lda $0,1 | |
br L.7 | |
L.16: | |
mov $31,$0 | |
L.7: | |
ldq $13,0($sp) | |
ldq $14,8($sp) | |
ldq $24,16($sp) | |
ldq $26,24($sp) | |
lda $sp,96($sp) | |
ret | |
.end getword | |
.globl isletter | |
.text | |
.ent isletter | |
isletter: | |
ldgp $gp,0($27) | |
lda $sp,-64($sp) | |
.frame $sp,64,$26,48 | |
.prologue 1 | |
lda $27,65 | |
cmplt $16,$27,$23 | |
bne $23,L.19 | |
lda $27,90 | |
cmple $16,$27,$23 | |
beq $23,L.19 | |
lda $16,32($16) | |
L.19: | |
lda $27,97 | |
cmplt $16,$27,$23 | |
bne $23,L.21 | |
lda $27,122 | |
cmple $16,$27,$23 | |
beq $23,L.21 | |
mov $16,$0 | |
br L.18 | |
L.21: | |
mov $31,$0 | |
L.18: | |
lda $sp,64($sp) | |
ret | |
.end isletter | |
.globl lookup | |
.text | |
.ent lookup | |
lookup: | |
ldgp $gp,0($27) | |
lda $sp,-80($sp) | |
.mask 0x4004000,-72 | |
.frame $sp,80,$26,48 | |
stq $14,0($sp) | |
stq $26,8($sp) | |
stq $16,32($sp) | |
mov $17,$14 | |
.prologue 1 | |
ldq $27,($14) | |
cmpeq $27,$31,$23 | |
bne $23,L.24 | |
ldq $16,-48+80($sp) | |
ldq $27,($14) | |
ldq $17,24($27) | |
jsr $26,strcmp | |
ldgp $gp,0($26) | |
stl $0,-60+80($sp) | |
ldl $27,-60+80($sp) | |
cmplt $27,$31,$23 | |
beq $23,L.26 | |
ldq $16,-48+80($sp) | |
ldq $27,($14) | |
lda $17,8($27) | |
jsr $26,lookup | |
ldgp $gp,0($26) | |
mov $0,$27 | |
br L.23 | |
L.26: | |
ldl $27,-60+80($sp) | |
cmple $27,$31,$23 | |
bne $23,L.28 | |
ldq $16,-48+80($sp) | |
ldq $27,($14) | |
lda $17,16($27) | |
jsr $26,lookup | |
ldgp $gp,0($26) | |
mov $0,$27 | |
br L.23 | |
L.28: | |
ldq $0,($14) | |
br L.23 | |
L.24: | |
ldl $27,next | |
lda $25,2000 | |
cmplt $27,$25,$23 | |
bne $23,L.30 | |
lda $16,L.32 | |
jsr $26,err | |
ldgp $gp,0($26) | |
L.30: | |
ldl $27,next | |
sll $27,5,$27 | |
stl $31,words($27) | |
ldl $27,next | |
sll $27,5,$27 | |
stq $31,words+16($27) | |
stq $31,words+8($27) | |
ldq $16,-48+80($sp) | |
jsr $26,strlen | |
ldgp $gp,0($26) | |
mov $0,$27 | |
lda $16,1($27) | |
jsr $26,malloc | |
ldgp $gp,0($26) | |
ldl $25,next | |
sll $25,5,$25 | |
stq $0,words+24($25) | |
ldl $27,next | |
sll $27,5,$27 | |
ldq $27,words+24($27) | |
cmpeq $27,$31,$23 | |
beq $23,L.36 | |
lda $16,L.39 | |
jsr $26,err | |
ldgp $gp,0($26) | |
L.36: | |
ldl $27,next | |
sll $27,5,$27 | |
ldq $16,words+24($27) | |
ldq $17,-48+80($sp) | |
jsr $26,strcpy | |
ldgp $gp,0($26) | |
ldl $27,next | |
lda $25,1($27) | |
stl $25,next | |
sll $27,8*(8-4),$27 | |
sra $27,8*(8-4),$27 | |
sll $27,5,$27 | |
lda $27,words($27) | |
stq $27,($14) | |
mov $27,$0 | |
L.23: | |
ldq $14,0($sp) | |
ldq $26,8($sp) | |
lda $sp,80($sp) | |
ret | |
.end lookup | |
.globl tprint | |
.text | |
.ent tprint | |
tprint: | |
ldgp $gp,0($27) | |
lda $sp,-80($sp) | |
.mask 0x4004000,-72 | |
.frame $sp,80,$26,48 | |
stq $14,0($sp) | |
stq $26,8($sp) | |
mov $16,$14 | |
.prologue 1 | |
mov $14,$27 | |
cmpeq $27,$31,$23 | |
bne $23,L.42 | |
ldq $16,8($14) | |
jsr $26,tprint | |
ldgp $gp,0($26) | |
lda $16,L.44 | |
ldl $17,($14) | |
ldq $18,24($14) | |
jsr $26,printf | |
ldgp $gp,0($26) | |
ldq $16,16($14) | |
jsr $26,tprint | |
ldgp $gp,0($26) | |
L.42: | |
mov $31,$0 | |
L.41: | |
ldq $14,0($sp) | |
ldq $26,8($sp) | |
lda $sp,80($sp) | |
ret | |
.end tprint | |
.globl strcmp | |
.text | |
.ent strcmp | |
strcmp: | |
ldgp $gp,0($27) | |
lda $sp,-64($sp) | |
.frame $sp,64,$26,48 | |
.prologue 1 | |
br L.47 | |
L.46: | |
mov $16,$27 | |
lda $16,1($27) | |
ldb $27,($27) | |
cmpeq $27,$31,$23 | |
beq $23,L.49 | |
mov $31,$0 | |
br L.45 | |
L.49: | |
lda $17,1($17) | |
L.47: | |
ldb $27,($16) | |
ldb $25,($17) | |
cmpeq $27,$25,$23 | |
bne $23,L.46 | |
ldb $27,($16) | |
cmpeq $27,$31,$23 | |
beq $23,L.51 | |
lda $0,-1 | |
br L.45 | |
L.51: | |
ldb $27,($17) | |
cmpeq $27,$31,$23 | |
beq $23,L.53 | |
lda $0,1 | |
br L.45 | |
L.53: | |
ldb $27,($16) | |
ldb $25,($17) | |
subl $27,$25,$0 | |
L.45: | |
lda $sp,64($sp) | |
ret | |
.end strcmp | |
.globl next | |
.comm next,4 | |
.globl words | |
.comm words,64000 | |
.rdata | |
.align 0 | |
L.44: | |
.byte 37 | |
.byte 100 | |
.byte 9 | |
.byte 37 | |
.byte 115 | |
.byte 10 | |
.byte 0 | |
.align 0 | |
L.39: | |
.byte 111 | |
.byte 117 | |
.byte 116 | |
.byte 32 | |
.byte 111 | |
.byte 102 | |
.byte 32 | |
.byte 119 | |
.byte 111 | |
.byte 114 | |
.byte 100 | |
.byte 32 | |
.byte 115 | |
.byte 116 | |
.byte 111 | |
.byte 114 | |
.byte 97 | |
.byte 103 | |
.byte 101 | |
.byte 0 | |
.align 0 | |
L.32: | |
.byte 111 | |
.byte 117 | |
.byte 116 | |
.byte 32 | |
.byte 111 | |
.byte 102 | |
.byte 32 | |
.byte 110 | |
.byte 111 | |
.byte 100 | |
.byte 101 | |
.byte 32 | |
.byte 115 | |
.byte 116 | |
.byte 111 | |
.byte 114 | |
.byte 97 | |
.byte 103 | |
.byte 101 | |
.byte 0 | |
.align 0 | |
L.6: | |
.byte 63 | |
.byte 32 | |
.byte 37 | |
.byte 115 | |
.byte 10 | |
.byte 0 |