blob: 507b38fb4b64bae6d7f54f6ab64296528687f085 [file] [log] [blame]
.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