diff options
Diffstat (limited to 'code/tools/lcc/mips/irix/tst/wf1.sbk')
-rw-r--r-- | code/tools/lcc/mips/irix/tst/wf1.sbk | 378 |
1 files changed, 378 insertions, 0 deletions
diff --git a/code/tools/lcc/mips/irix/tst/wf1.sbk b/code/tools/lcc/mips/irix/tst/wf1.sbk new file mode 100644 index 0000000..7313c01 --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/wf1.sbk @@ -0,0 +1,378 @@ +.set reorder +.globl main +.text +.text +.align 2 +.ent main +main: +.frame $sp,48,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-48 +.mask 0x82000000,-28 +.cprestore 16 +sw $31,20($sp) +sw $0,-24+48($sp) +sw $0,next +b L.3 +L.2: +la $4,-20+48($sp) +la $5,-24+48($sp) +jal lookup +lw $15,($2) +la $15,1($15) +sw $15,($2) +L.3: +la $4,-20+48($sp) +jal getword +bne $2,$0,L.2 +lw $4,-24+48($sp) +jal tprint +move $2,$0 +L.1: +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,48 +j $31 +.end main +.globl err +.text +.align 2 +.ent err +err: +.frame $sp,24,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-24 +.mask 0x82000000,-4 +.cprestore 16 +sw $31,20($sp) +sw $4,24($sp) +la $4,L.6 +lw $5,0+24($sp) +jal printf +la $4,1 +jal exit +move $2,$0 +L.5: +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,24 +j $31 +.end err +.globl getword +.text +.align 2 +.ent getword +getword: +.frame $sp,32,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-32 +.mask 0xc2800000,-4 +sw $23,16($sp) +.cprestore 20 +sw $30,24($sp) +sw $31,28($sp) +sw $4,32($sp) +L.8: +L.9: +jal getchar +move $24,$2 +move $30,$24 +la $15,-1 +beq $24,$15,L.11 +move $4,$30 +jal isletter +beq $2,$0,L.8 +L.11: +lw $23,0+32($sp) +b L.15 +L.12: +move $24,$23 +la $23,1($24) +move $15,$30 +sb $15,($24) +L.13: +jal getchar +move $30,$2 +L.15: +move $4,$30 +jal isletter +move $30,$2 +bne $2,$0,L.12 +sb $0,($23) +move $24,$23 +lw $15,0+32($sp) +bleu $24,$15,L.16 +la $2,1 +b L.7 +L.16: +move $2,$0 +L.7: +lw $23,16($sp) +lw $25,20($sp) +lw $30,24($sp) +lw $31,28($sp) +addu $sp,$sp,32 +j $31 +.end getword +.globl isletter +.text +.align 2 +.ent isletter +isletter: +.frame $sp,0,$31 +.set noreorder +.cpload $25 +.set reorder +la $24,65 +blt $4,$24,L.19 +la $24,90 +bgt $4,$24,L.19 +la $4,32($4) +L.19: +la $24,97 +blt $4,$24,L.21 +la $24,122 +bgt $4,$24,L.21 +move $2,$4 +b L.18 +L.21: +move $2,$0 +L.18: +j $31 +.end isletter +.globl lookup +.text +.align 2 +.ent lookup +lookup: +.frame $sp,32,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-32 +.mask 0xc2000000,-8 +.cprestore 16 +sw $30,20($sp) +sw $31,24($sp) +sw $4,32($sp) +move $30,$5 +lw $24,($30) +beq $24,$0,L.24 +lw $4,0+32($sp) +lw $24,($30) +lw $5,12($24) +jal strcmp +sw $2,-4+32($sp) +lw $24,-4+32($sp) +bge $24,$0,L.26 +lw $4,0+32($sp) +lw $24,($30) +la $5,4($24) +jal lookup +move $24,$2 +b L.23 +L.26: +lw $24,-4+32($sp) +ble $24,$0,L.28 +lw $4,0+32($sp) +lw $24,($30) +la $5,8($24) +jal lookup +move $24,$2 +b L.23 +L.28: +lw $2,($30) +b L.23 +L.24: +lw $24,next +la $15,2000 +blt $24,$15,L.30 +la $4,L.32 +jal err +L.30: +lw $24,next +sll $24,$24,4 +sw $0,words($24) +lw $24,next +sll $24,$24,4 +sw $0,words+8($24) +sw $0,words+4($24) +lw $4,0+32($sp) +jal strlen +move $24,$2 +la $4,1($24) +jal malloc +lw $15,next +sll $15,$15,4 +sw $2,words+12($15) +lw $24,next +sll $24,$24,4 +lw $24,words+12($24) +bne $24,$0,L.36 +la $4,L.39 +jal err +L.36: +lw $24,next +sll $24,$24,4 +lw $4,words+12($24) +lw $5,0+32($sp) +jal strcpy +lw $24,next +la $15,1($24) +sw $15,next +sll $24,$24,4 +la $24,words($24) +sw $24,($30) +move $2,$24 +L.23: +lw $25,16($sp) +lw $30,20($sp) +lw $31,24($sp) +addu $sp,$sp,32 +j $31 +.end lookup +.globl tprint +.text +.align 2 +.ent tprint +tprint: +.frame $sp,32,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-32 +.mask 0xc2000000,-8 +.cprestore 16 +sw $30,20($sp) +sw $31,24($sp) +move $30,$4 +move $24,$30 +beq $24,$0,L.42 +lw $4,4($30) +jal tprint +la $4,L.44 +lw $5,($30) +lw $6,12($30) +jal printf +lw $4,8($30) +jal tprint +L.42: +move $2,$0 +L.41: +lw $25,16($sp) +lw $30,20($sp) +lw $31,24($sp) +addu $sp,$sp,32 +j $31 +.end tprint +.globl strcmp +.text +.align 2 +.ent strcmp +strcmp: +.frame $sp,0,$31 +.set noreorder +.cpload $25 +.set reorder +b L.47 +L.46: +move $24,$4 +la $4,1($24) +lb $24,($24) +bne $24,$0,L.49 +move $2,$0 +b L.45 +L.49: +la $5,1($5) +L.47: +lb $24,($4) +lb $15,($5) +beq $24,$15,L.46 +lb $24,($4) +bne $24,$0,L.51 +la $2,-1 +b L.45 +L.51: +lb $24,($5) +bne $24,$0,L.53 +la $2,1 +b L.45 +L.53: +lb $24,($4) +lb $15,($5) +subu $2,$24,$15 +L.45: +j $31 +.end strcmp +.globl next +.comm next,4 +.globl words +.comm words,32000 +.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 |