.set reorder | |
.globl main | |
.text | |
.text | |
.align 2 | |
.ent main | |
main: | |
.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,$0 | |
L.2: | |
sll $24,$30,2 | |
la $15,1 | |
sw $15,down($24) | |
sw $15,up($24) | |
L.3: | |
la $30,1($30) | |
la $24,15 | |
blt $30,$24,L.2 | |
move $30,$0 | |
L.6: | |
sll $24,$30,2 | |
la $15,1 | |
sw $15,rows($24) | |
L.7: | |
la $30,1($30) | |
la $24,8 | |
blt $30,$24,L.6 | |
move $4,$0 | |
jal queens | |
move $2,$0 | |
L.1: | |
lw $25,16($sp) | |
lw $30,20($sp) | |
lw $31,24($sp) | |
addu $sp,$sp,32 | |
j $31 | |
.end main | |
.globl queens | |
.text | |
.align 2 | |
.ent queens | |
queens: | |
.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) | |
move $30,$4 | |
move $23,$0 | |
L.11: | |
sll $15,$23,2 | |
lw $15,rows($15) | |
beq $15,$0,L.15 | |
subu $15,$23,$30 | |
sll $15,$15,2 | |
lw $15,up+28($15) | |
beq $15,$0,L.15 | |
addu $15,$23,$30 | |
sll $15,$15,2 | |
lw $15,down($15) | |
beq $15,$0,L.15 | |
addu $15,$23,$30 | |
sll $15,$15,2 | |
sw $0,down($15) | |
subu $15,$23,$30 | |
sll $15,$15,2 | |
sw $0,up+28($15) | |
sll $15,$23,2 | |
sw $0,rows($15) | |
sll $24,$30,2 | |
sw $23,x($24) | |
la $24,7 | |
bne $30,$24,L.19 | |
jal print | |
b L.20 | |
L.19: | |
la $4,1($30) | |
jal queens | |
L.20: | |
la $24,1 | |
addu $15,$23,$30 | |
sll $15,$15,2 | |
sw $24,down($15) | |
subu $15,$23,$30 | |
sll $15,$15,2 | |
sw $24,up+28($15) | |
sll $15,$23,2 | |
sw $24,rows($15) | |
L.15: | |
L.12: | |
la $23,1($23) | |
la $24,8 | |
blt $23,$24,L.11 | |
move $2,$0 | |
L.10: | |
lw $23,16($sp) | |
lw $25,20($sp) | |
lw $30,24($sp) | |
lw $31,28($sp) | |
addu $sp,$sp,32 | |
j $31 | |
.end queens | |
.globl print | |
.text | |
.align 2 | |
.ent print | |
print: | |
.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,$0 | |
L.23: | |
la $4,L.27 | |
sll $24,$30,2 | |
lw $24,x($24) | |
la $5,49($24) | |
jal printf | |
L.24: | |
la $30,1($30) | |
la $24,8 | |
blt $30,$24,L.23 | |
la $4,L.28 | |
jal printf | |
move $2,$0 | |
L.22: | |
lw $25,16($sp) | |
lw $30,20($sp) | |
lw $31,24($sp) | |
addu $sp,$sp,32 | |
j $31 | |
.end print | |
.globl x | |
.comm x,32 | |
.globl rows | |
.comm rows,32 | |
.globl down | |
.comm down,60 | |
.globl up | |
.comm up,60 | |
.rdata | |
.align 0 | |
L.28: | |
.byte 10 | |
.byte 0 | |
.align 0 | |
L.27: | |
.byte 37 | |
.byte 99 | |
.byte 32 | |
.byte 0 |