You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
20702 lines
283 KiB
20702 lines
283 KiB
.globl main
|
|
main:
|
|
la $t0, __return_here
|
|
sw $t0, 4($sp)
|
|
j entry
|
|
|
|
__return_here:
|
|
li $v0, 10
|
|
syscall
|
|
.globl inputd
|
|
inputd:
|
|
li $v0, 5
|
|
syscall
|
|
sw $v0, 0($sp)
|
|
lw $ra, 4($sp)
|
|
jr $ra
|
|
.globl prints
|
|
prints:
|
|
lw $a0, 0($sp)
|
|
li $v0, 4
|
|
syscall
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
.globl printd
|
|
printd:
|
|
lw $a0, 0($sp)
|
|
li $v0, 1
|
|
syscall
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
.globl inputs
|
|
inputs:
|
|
lw $a0, 4($sp)
|
|
lw $a1, 0($sp)
|
|
li $v0, 8
|
|
syscall
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
.globl inputc
|
|
inputc:
|
|
li $v0, 12
|
|
syscall
|
|
sw $v0, 0($sp)
|
|
lw $ra, 4($sp)
|
|
jr $ra
|
|
.globl printc
|
|
printc:
|
|
lb $a0, 0($sp)
|
|
li $v0, 11
|
|
syscall
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
.globl malloc
|
|
malloc:
|
|
lw $a0, 0($sp)
|
|
li $v0, 9
|
|
syscall
|
|
sw $v0, 4($sp)
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
.data
|
|
.text
|
|
|
|
.data
|
|
.align 2
|
|
_kmalloc_heap:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
_kmalloc_end:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
INT_SIZE:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
POINTER_SIZE:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
CHAR_SIZE:
|
|
.space 4
|
|
.text
|
|
|
|
.globl kmalloc_init
|
|
kmalloc_init:
|
|
addi $sp, $sp, 0
|
|
la $s0, _kmalloc_heap
|
|
lw $s1, 4($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, _kmalloc_end
|
|
lw $s1, 4($sp)
|
|
lw $s2, 0($sp)
|
|
li $s3, 2
|
|
srav $s2, $s2, $s3
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
li $s2, 3
|
|
sll $s2, $s2, 2
|
|
sub $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, _kmalloc_heap
|
|
lw $s0, 0($s0)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, _kmalloc_heap
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, _kmalloc_end
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, _kmalloc_heap
|
|
lw $s0, 0($s0)
|
|
li $s1, 2
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, _kmalloc_end
|
|
lw $s0, 0($s0)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, _kmalloc_heap
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, _kmalloc_end
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, _kmalloc_end
|
|
lw $s0, 0($s0)
|
|
li $s1, 2
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
li $s1, 1
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, INT_SIZE
|
|
li $s1, 4
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, POINTER_SIZE
|
|
li $s1, 4
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, CHAR_SIZE
|
|
li $s1, 4
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 0
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
.globl _kmalloc_merge
|
|
_kmalloc_merge:
|
|
addi $sp, $sp, -4
|
|
lw $s0, 4($sp)
|
|
li $s1, 2
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L0
|
|
|
|
__L1:
|
|
lw $s0, 4($sp)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
li $s1, 2
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L2
|
|
addi $s0, $sp, 0
|
|
lw $s1, 4($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 4
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 0($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 4($sp)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 4($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L1
|
|
|
|
__L2:
|
|
|
|
__L0:
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl kmalloc
|
|
kmalloc:
|
|
addi $sp, $sp, -8
|
|
lw $s0, 8($sp)
|
|
li $s1, 3
|
|
and $s0, $s0, $s1
|
|
beq $s0, $zero, __L3
|
|
addi $s0, $sp, 8
|
|
lw $s1, 8($sp)
|
|
li $s2, 2
|
|
srav $s1, $s1, $s2
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L4
|
|
|
|
__L3:
|
|
addi $s0, $sp, 8
|
|
lw $s1, 8($sp)
|
|
li $s2, 2
|
|
srav $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L4:
|
|
addi $s0, $sp, 4
|
|
la $s1, _kmalloc_heap
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L5:
|
|
lw $s0, 4($sp)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
beq $s0, $zero, __L6
|
|
addi $sp, $sp, -16
|
|
la $s0, _kmalloc_merge
|
|
sw $s0, 12($sp)
|
|
la $t0, __L8
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L8:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 4($sp)
|
|
li $s1, 2
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L10
|
|
lw $s1, 4($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
lw $s2, 4($sp)
|
|
sub $s1, $s1, $s2
|
|
sra $s1, $s1, 2
|
|
li $s2, 6
|
|
sub $s1, $s1, $s2
|
|
lw $s2, 8($sp)
|
|
slt $s1, $s1, $s2
|
|
seq $s1, $s1, $zero
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L10:
|
|
beq $s0, $zero, __L11
|
|
addi $s0, $sp, 0
|
|
lw $s1, 4($sp)
|
|
lw $s2, 8($sp)
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
li $s2, 3
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 0
|
|
lw $s0, 0($s0)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 4($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 0
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 4($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 0
|
|
lw $s0, 0($s0)
|
|
li $s1, 2
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 4
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 0($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 4
|
|
lw $s0, 0($s0)
|
|
li $s1, 2
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
li $s1, 1
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 4($sp)
|
|
li $s1, 3
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
sw $s0, 12($sp)
|
|
addi $sp, $sp, 8
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L11:
|
|
addi $s0, $sp, 4
|
|
lw $s1, 4($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L5
|
|
|
|
__L6:
|
|
li $s0, 0
|
|
sw $s0, 12($sp)
|
|
addi $sp, $sp, 8
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 8
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl kfree
|
|
kfree:
|
|
addi $sp, $sp, -4
|
|
addi $s0, $sp, 0
|
|
lw $s1, 4($sp)
|
|
li $s2, 3
|
|
sll $s2, $s2, 2
|
|
sub $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 0
|
|
lw $s0, 0($s0)
|
|
li $s1, 2
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
.data
|
|
.text
|
|
|
|
|
|
.globl create_linked_list
|
|
create_linked_list:
|
|
addi $sp, $sp, -4
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, kmalloc
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L13
|
|
sw $t0, 8($sp)
|
|
la $t0, POINTER_SIZE
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
li $s0, 3
|
|
lw $t0, 0($sp)
|
|
mult $t0, $s0
|
|
mflo $t0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L13:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 4($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 0($sp)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 0($sp)
|
|
li $s1, 2
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 0($sp)
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl free_linked_list
|
|
free_linked_list:
|
|
addi $sp, $sp, -4
|
|
|
|
__L14:
|
|
lw $s0, 8($sp)
|
|
beq $s0, $zero, __L15
|
|
addi $sp, $sp, -16
|
|
lw $s0, 20($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L17
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 0
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L17:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $s0, $sp, 0
|
|
lw $s1, 8($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L19
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L19:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $s0, $sp, 8
|
|
lw $s1, 0($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L14
|
|
|
|
__L15:
|
|
addi $sp, $sp, 4
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
.globl get_list_value
|
|
get_list_value:
|
|
addi $sp, $sp, 0
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl next_list
|
|
next_list:
|
|
addi $sp, $sp, 0
|
|
lw $s0, 0($sp)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl previous_list
|
|
previous_list:
|
|
addi $sp, $sp, 0
|
|
lw $s0, 0($sp)
|
|
li $s1, 2
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl add_value
|
|
add_value:
|
|
addi $sp, $sp, -8
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 24
|
|
la $s1, create_linked_list
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L21
|
|
sw $t0, 8($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L21:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $s0, $sp, 0
|
|
lw $s1, 12($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 12($sp)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 4($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 4($sp)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 0($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 4($sp)
|
|
li $s1, 2
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 12($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 0($sp)
|
|
beq $s0, $zero, __L22
|
|
lw $s0, 0($sp)
|
|
li $s1, 2
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 4($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L22:
|
|
addi $sp, $sp, 8
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
.globl remove_value
|
|
remove_value:
|
|
addi $sp, $sp, -8
|
|
addi $sp, $sp, -16
|
|
lw $s0, 24($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L24
|
|
sw $t0, 8($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 0
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L24:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $s0, $sp, 4
|
|
lw $s1, 12($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 0
|
|
lw $s1, 12($sp)
|
|
li $s2, 2
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L26
|
|
sw $t0, 8($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L26:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 4($sp)
|
|
beq $s0, $zero, __L27
|
|
lw $s0, 4($sp)
|
|
li $s1, 2
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 0($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L27:
|
|
lw $s0, 0($sp)
|
|
beq $s0, $zero, __L28
|
|
lw $s0, 0($sp)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 4($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L28:
|
|
addi $sp, $sp, 8
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
.data
|
|
.text
|
|
|
|
|
|
.globl create_dictionary
|
|
create_dictionary:
|
|
addi $sp, $sp, -8
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 24
|
|
la $s1, kmalloc
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L30
|
|
sw $t0, 8($sp)
|
|
la $t0, POINTER_SIZE
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
li $s0, 17
|
|
lw $t0, 0($sp)
|
|
mult $t0, $s0
|
|
mflo $t0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L30:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $s0, $sp, 0
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L31:
|
|
lw $s0, 0($sp)
|
|
li $s1, 16
|
|
slt $s0, $s0, $s1
|
|
beq $s0, $zero, __L32
|
|
j __L33
|
|
|
|
__L34:
|
|
addi $s0, $sp, 0
|
|
lw $s1, 0($sp)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L31
|
|
|
|
__L33:
|
|
addi $s0, $sp, 4
|
|
lw $s0, 0($s0)
|
|
lw $s1, 0($sp)
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L34
|
|
|
|
__L32:
|
|
addi $s0, $sp, 4
|
|
lw $s0, 0($s0)
|
|
li $s1, 16
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 8($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 4($sp)
|
|
sw $s0, 12($sp)
|
|
addi $sp, $sp, 8
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 8
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl free_dictionary
|
|
free_dictionary:
|
|
addi $sp, $sp, -4
|
|
addi $s0, $sp, 0
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L35:
|
|
lw $s0, 0($sp)
|
|
li $s1, 16
|
|
slt $s0, $s0, $s1
|
|
beq $s0, $zero, __L36
|
|
j __L37
|
|
|
|
__L38:
|
|
addi $s0, $sp, 0
|
|
lw $s1, 0($sp)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L35
|
|
|
|
__L37:
|
|
lw $s0, 8($sp)
|
|
lw $s1, 0($sp)
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
beq $s0, $zero, __L39
|
|
addi $sp, $sp, -20
|
|
la $s0, free_dictionary
|
|
sw $s0, 16($sp)
|
|
la $t0, __L41
|
|
sw $t0, 12($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 4($sp)
|
|
lw $s0, 20($sp)
|
|
sll $s0, $s0, 2
|
|
lw $t0, 4($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L41:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 20
|
|
|
|
__L39:
|
|
j __L38
|
|
|
|
__L36:
|
|
lw $s0, 8($sp)
|
|
li $s1, 16
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
beq $s0, $zero, __L42
|
|
addi $sp, $sp, -16
|
|
lw $s0, 20($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L44
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 16
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L44:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
|
|
__L42:
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L46
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L46:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, 4
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
.globl read_dictionary
|
|
read_dictionary:
|
|
addi $sp, $sp, -4
|
|
lw $s0, 8($sp)
|
|
lb $s0, 0($s0)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L47
|
|
lw $s0, 12($sp)
|
|
li $s1, 16
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
sw $s0, 16($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 16($sp)
|
|
jr $ra
|
|
|
|
__L47:
|
|
lb $s0, 4($sp)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L48
|
|
addi $s0, $sp, 0
|
|
lw $s1, 8($sp)
|
|
lb $s1, 0($s1)
|
|
li $s2, 240
|
|
and $s1, $s1, $s2
|
|
li $s2, 4
|
|
srav $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 12($sp)
|
|
lw $s1, 0($sp)
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L49
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 32
|
|
lw $s0, 0($s0)
|
|
lw $s1, 20($sp)
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, create_dictionary
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L51
|
|
sw $t0, 8($sp)
|
|
li $t0, 0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L51:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
|
|
__L49:
|
|
addi $sp, $sp, -24
|
|
la $s0, read_dictionary
|
|
sw $s0, 20($sp)
|
|
la $t0, __L53
|
|
sw $t0, 16($sp)
|
|
lw $t0, 36($sp)
|
|
sw $t0, 8($sp)
|
|
lw $s0, 24($sp)
|
|
sll $s0, $s0, 2
|
|
lw $t0, 8($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 8($sp)
|
|
lw $t0, 32($sp)
|
|
sw $t0, 4($sp)
|
|
li $t0, 1
|
|
sw $t0, 0($sp)
|
|
lw $t0, 0($sp)
|
|
sll $t0, $t0, 24
|
|
sra $t0, $t0, 24
|
|
sw $t0, 0($sp)
|
|
lw $t0, 20($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L53:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 12($sp)
|
|
lw $s0, 20($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 24
|
|
sw $s0, 16($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 16($sp)
|
|
jr $ra
|
|
j __L54
|
|
|
|
__L48:
|
|
addi $s0, $sp, 0
|
|
lw $s1, 8($sp)
|
|
lb $s1, 0($s1)
|
|
li $s2, 15
|
|
and $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 12($sp)
|
|
lw $s1, 0($sp)
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L55
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 32
|
|
lw $s0, 0($s0)
|
|
lw $s1, 20($sp)
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, create_dictionary
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L57
|
|
sw $t0, 8($sp)
|
|
li $t0, 0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L57:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
|
|
__L55:
|
|
addi $sp, $sp, -24
|
|
la $s0, read_dictionary
|
|
sw $s0, 20($sp)
|
|
la $t0, __L59
|
|
sw $t0, 16($sp)
|
|
lw $t0, 36($sp)
|
|
sw $t0, 8($sp)
|
|
lw $s0, 24($sp)
|
|
sll $s0, $s0, 2
|
|
lw $t0, 8($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 8($sp)
|
|
lw $t0, 32($sp)
|
|
sw $t0, 4($sp)
|
|
li $s0, 1
|
|
lw $t0, 4($sp)
|
|
add $t0, $t0, $s0
|
|
sw $t0, 4($sp)
|
|
li $t0, 0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 0($sp)
|
|
sll $t0, $t0, 24
|
|
sra $t0, $t0, 24
|
|
sw $t0, 0($sp)
|
|
lw $t0, 20($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L59:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 12($sp)
|
|
lw $s0, 20($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 24
|
|
sw $s0, 16($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 16($sp)
|
|
jr $ra
|
|
|
|
__L54:
|
|
addi $sp, $sp, 4
|
|
lw $ra, 16($sp)
|
|
jr $ra
|
|
|
|
.globl write_dictionary
|
|
write_dictionary:
|
|
addi $sp, $sp, -4
|
|
lw $s0, 12($sp)
|
|
lb $s0, 0($s0)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L60
|
|
addi $s0, $sp, 16
|
|
lw $s0, 0($s0)
|
|
li $s1, 16
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 8($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 4
|
|
lw $ra, 20($sp)
|
|
jr $ra
|
|
|
|
__L60:
|
|
lb $s0, 4($sp)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L61
|
|
addi $s0, $sp, 0
|
|
lw $s1, 12($sp)
|
|
lb $s1, 0($s1)
|
|
li $s2, 240
|
|
and $s1, $s1, $s2
|
|
li $s2, 4
|
|
srav $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 16($sp)
|
|
lw $s1, 0($sp)
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L62
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 36
|
|
lw $s0, 0($s0)
|
|
lw $s1, 20($sp)
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, create_dictionary
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L64
|
|
sw $t0, 8($sp)
|
|
li $t0, 0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L64:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
|
|
__L62:
|
|
addi $sp, $sp, -28
|
|
la $s0, write_dictionary
|
|
sw $s0, 24($sp)
|
|
la $t0, __L66
|
|
sw $t0, 20($sp)
|
|
lw $t0, 44($sp)
|
|
sw $t0, 12($sp)
|
|
lw $s0, 28($sp)
|
|
sll $s0, $s0, 2
|
|
lw $t0, 12($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 12($sp)
|
|
lw $t0, 40($sp)
|
|
sw $t0, 8($sp)
|
|
lw $t0, 36($sp)
|
|
sw $t0, 4($sp)
|
|
li $t0, 1
|
|
sw $t0, 0($sp)
|
|
lw $t0, 0($sp)
|
|
sll $t0, $t0, 24
|
|
sra $t0, $t0, 24
|
|
sw $t0, 0($sp)
|
|
lw $t0, 24($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L66:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 16($sp)
|
|
lw $s0, 24($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 28
|
|
j __L67
|
|
|
|
__L61:
|
|
addi $s0, $sp, 0
|
|
lw $s1, 12($sp)
|
|
lb $s1, 0($s1)
|
|
li $s2, 15
|
|
and $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 16($sp)
|
|
lw $s1, 0($sp)
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L68
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 36
|
|
lw $s0, 0($s0)
|
|
lw $s1, 20($sp)
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, create_dictionary
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L70
|
|
sw $t0, 8($sp)
|
|
li $t0, 0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L70:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
|
|
__L68:
|
|
addi $sp, $sp, -28
|
|
la $s0, write_dictionary
|
|
sw $s0, 24($sp)
|
|
la $t0, __L72
|
|
sw $t0, 20($sp)
|
|
lw $t0, 44($sp)
|
|
sw $t0, 12($sp)
|
|
lw $s0, 28($sp)
|
|
sll $s0, $s0, 2
|
|
lw $t0, 12($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 12($sp)
|
|
lw $t0, 40($sp)
|
|
sw $t0, 8($sp)
|
|
li $s0, 1
|
|
lw $t0, 8($sp)
|
|
add $t0, $t0, $s0
|
|
sw $t0, 8($sp)
|
|
lw $t0, 36($sp)
|
|
sw $t0, 4($sp)
|
|
li $t0, 0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 0($sp)
|
|
sll $t0, $t0, 24
|
|
sra $t0, $t0, 24
|
|
sw $t0, 0($sp)
|
|
lw $t0, 24($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L72:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 16($sp)
|
|
lw $s0, 24($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 28
|
|
|
|
__L67:
|
|
addi $sp, $sp, 4
|
|
lw $ra, 20($sp)
|
|
jr $ra
|
|
.data
|
|
__str0:
|
|
.asciiz "SUBSTR"
|
|
__str1:
|
|
.asciiz "STR"
|
|
__str2:
|
|
.asciiz "\""
|
|
__str3:
|
|
.asciiz "\""
|
|
__str4:
|
|
.asciiz "["
|
|
__str5:
|
|
.asciiz "]"
|
|
__str6:
|
|
.asciiz "("
|
|
__str7:
|
|
.asciiz ")"
|
|
__str8:
|
|
.asciiz " + ("
|
|
__str9:
|
|
.asciiz ")"
|
|
__str10:
|
|
.asciiz "("
|
|
__str11:
|
|
.asciiz ")"
|
|
__str12:
|
|
.asciiz " - ("
|
|
__str13:
|
|
.asciiz ")"
|
|
__str14:
|
|
.asciiz "("
|
|
__str15:
|
|
.asciiz ")"
|
|
__str16:
|
|
.asciiz " * ("
|
|
__str17:
|
|
.asciiz ")"
|
|
__str18:
|
|
.asciiz "("
|
|
__str19:
|
|
.asciiz ")"
|
|
__str20:
|
|
.asciiz " / ("
|
|
__str21:
|
|
.asciiz ")"
|
|
__str22:
|
|
.asciiz "("
|
|
__str23:
|
|
.asciiz ")"
|
|
__str24:
|
|
.asciiz " = ("
|
|
__str25:
|
|
.asciiz ")"
|
|
__str26:
|
|
.asciiz "("
|
|
__str27:
|
|
.asciiz ")"
|
|
__str28:
|
|
.asciiz " != ("
|
|
__str29:
|
|
.asciiz ")"
|
|
__str30:
|
|
.asciiz "("
|
|
__str31:
|
|
.asciiz ")"
|
|
__str32:
|
|
.asciiz " > ("
|
|
__str33:
|
|
.asciiz ")"
|
|
__str34:
|
|
.asciiz "("
|
|
__str35:
|
|
.asciiz ")"
|
|
__str36:
|
|
.asciiz " < ("
|
|
__str37:
|
|
.asciiz ")"
|
|
__str38:
|
|
.asciiz "("
|
|
__str39:
|
|
.asciiz ")"
|
|
__str40:
|
|
.asciiz " & ("
|
|
__str41:
|
|
.asciiz ")"
|
|
__str42:
|
|
.asciiz "("
|
|
__str43:
|
|
.asciiz ")"
|
|
__str44:
|
|
.asciiz " | ("
|
|
__str45:
|
|
.asciiz ")"
|
|
__str46:
|
|
.asciiz "SUBSTR("
|
|
__str47:
|
|
.asciiz ", "
|
|
__str48:
|
|
.asciiz ", "
|
|
__str49:
|
|
.asciiz ")"
|
|
__str50:
|
|
.asciiz "STR("
|
|
__str51:
|
|
.asciiz ")"
|
|
__str52:
|
|
.asciiz "PRINT "
|
|
__str53:
|
|
.asciiz "INPUT "
|
|
__str54:
|
|
.asciiz "INPUTSTR "
|
|
__str55:
|
|
.asciiz "LET "
|
|
__str56:
|
|
.asciiz " = "
|
|
__str57:
|
|
.asciiz "DIM "
|
|
__str58:
|
|
.asciiz ", "
|
|
__str59:
|
|
.asciiz "IF "
|
|
__str60:
|
|
.asciiz "GOTO "
|
|
__str61:
|
|
.asciiz "GOSUB "
|
|
__str62:
|
|
.asciiz "WHILE "
|
|
__str63:
|
|
.asciiz "RUN"
|
|
__str64:
|
|
.asciiz "IF"
|
|
__str65:
|
|
.asciiz "WHILE"
|
|
__str66:
|
|
.asciiz "END IF"
|
|
__str67:
|
|
.asciiz "END WHILE"
|
|
__str68:
|
|
.asciiz "END"
|
|
__str69:
|
|
.asciiz "RETURN"
|
|
__str70:
|
|
.asciiz "LIST"
|
|
__str71:
|
|
.asciiz "PRINT"
|
|
__str72:
|
|
.asciiz "INPUT"
|
|
__str73:
|
|
.asciiz "INPUTSTR"
|
|
__str74:
|
|
.asciiz "RUN"
|
|
__str75:
|
|
.asciiz "END"
|
|
__str76:
|
|
.asciiz "IF"
|
|
__str77:
|
|
.asciiz "WHILE"
|
|
__str78:
|
|
.asciiz "LET"
|
|
__str79:
|
|
.asciiz "DIM"
|
|
__str80:
|
|
.asciiz "GOTO"
|
|
__str81:
|
|
.asciiz "GOSUB"
|
|
__str82:
|
|
.asciiz "RETURN"
|
|
__str83:
|
|
.asciiz "LIST"
|
|
.text
|
|
|
|
.data
|
|
.align 2
|
|
INT_TOKEN:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
STR_TOKEN:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
VAR_TOKEN:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
SUBSTRING:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
STRFUNC:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
PLUS:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
MINUS:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
MULTIPLY:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
DIVIDE:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
EQUALS:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
GREATER_THAN:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
LESS_THAN:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
NOT_EQUALS:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
AND:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
OR:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
INTVAR:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
STRVAR:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
PRINT:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
INPUT:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
INPUTSTR:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
RUN:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
END:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
IF:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
WHILE:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
LET:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
DIM:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
GOSUB:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
GOTO:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
RETURN:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
LIST:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
error:
|
|
.space 4
|
|
.text
|
|
|
|
.globl init_tokens
|
|
init_tokens:
|
|
addi $sp, $sp, 0
|
|
la $s0, INT_TOKEN
|
|
li $s1, 1
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, STR_TOKEN
|
|
li $s1, 2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, SUBSTRING
|
|
li $s1, 3
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, STRFUNC
|
|
li $s1, 4
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, PLUS
|
|
li $s1, 5
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, MINUS
|
|
li $s1, 6
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, MULTIPLY
|
|
li $s1, 7
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, DIVIDE
|
|
li $s1, 8
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, EQUALS
|
|
li $s1, 9
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, GREATER_THAN
|
|
li $s1, 10
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, LESS_THAN
|
|
li $s1, 11
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, NOT_EQUALS
|
|
li $s1, 12
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, AND
|
|
li $s1, 13
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, OR
|
|
li $s1, 14
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, VAR_TOKEN
|
|
li $s1, 15
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, INTVAR
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, STRVAR
|
|
li $s1, 1
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, PRINT
|
|
li $s1, 1
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, INPUT
|
|
li $s1, 2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, INPUTSTR
|
|
li $s1, 3
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, RUN
|
|
li $s1, 4
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, END
|
|
li $s1, 5
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, IF
|
|
li $s1, 6
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, WHILE
|
|
li $s1, 7
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, DIM
|
|
li $s1, 8
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, GOSUB
|
|
li $s1, 9
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, GOTO
|
|
li $s1, 10
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, RETURN
|
|
li $s1, 11
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, LIST
|
|
li $s1, 12
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 0
|
|
lw $ra, 4($sp)
|
|
jr $ra
|
|
|
|
.globl alpha
|
|
alpha:
|
|
addi $sp, $sp, 0
|
|
lb $s0, 0($sp)
|
|
li $s1, 97
|
|
slt $s0, $s0, $s1
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L76
|
|
lb $s1, 0($sp)
|
|
li $s2, 122
|
|
sgt $s1, $s1, $s2
|
|
seq $s1, $s1, $zero
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L76:
|
|
sne $s0, $s0, $zero
|
|
bne $s0, $zero, __L77
|
|
lb $s1, 0($sp)
|
|
li $s2, 65
|
|
slt $s1, $s1, $s2
|
|
seq $s1, $s1, $zero
|
|
beq $s1, $zero, __L78
|
|
lb $s2, 0($sp)
|
|
li $s3, 90
|
|
sgt $s2, $s2, $s3
|
|
seq $s2, $s2, $zero
|
|
sne $s2, $s2, $zero
|
|
move $s1, $s2
|
|
|
|
__L78:
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L77:
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl digit
|
|
digit:
|
|
addi $sp, $sp, 0
|
|
lb $s0, 0($sp)
|
|
li $s1, 48
|
|
slt $s0, $s0, $s1
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L80
|
|
lb $s1, 0($sp)
|
|
li $s2, 57
|
|
sgt $s1, $s1, $s2
|
|
seq $s1, $s1, $zero
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L80:
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl skip_whitespace
|
|
skip_whitespace:
|
|
addi $sp, $sp, 0
|
|
|
|
__L81:
|
|
lw $s0, 0($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
beq $s0, $zero, __L86
|
|
lw $s1, 0($sp)
|
|
lw $s1, 0($s1)
|
|
lb $s1, 0($s1)
|
|
li $s2, 32
|
|
seq $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
bne $s1, $zero, __L87
|
|
lw $s2, 0($sp)
|
|
lw $s2, 0($s2)
|
|
lb $s2, 0($s2)
|
|
li $s3, 9
|
|
seq $s2, $s2, $s3
|
|
sne $s2, $s2, $zero
|
|
move $s1, $s2
|
|
|
|
__L87:
|
|
sne $s1, $s1, $zero
|
|
bne $s1, $zero, __L88
|
|
lw $s2, 0($sp)
|
|
lw $s2, 0($s2)
|
|
lb $s2, 0($s2)
|
|
li $s3, 10
|
|
seq $s2, $s2, $s3
|
|
sne $s2, $s2, $zero
|
|
move $s1, $s2
|
|
|
|
__L88:
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L86:
|
|
beq $s0, $zero, __L82
|
|
lw $s0, 0($sp)
|
|
lw $s1, 0($sp)
|
|
lw $s1, 0($s1)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L81
|
|
|
|
__L82:
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl strcmp
|
|
strcmp:
|
|
addi $sp, $sp, 0
|
|
|
|
__L89:
|
|
lw $s0, 4($sp)
|
|
lb $s0, 0($s0)
|
|
beq $s0, $zero, __L92
|
|
lw $s1, 4($sp)
|
|
lb $s1, 0($s1)
|
|
lw $s2, 0($sp)
|
|
lb $s2, 0($s2)
|
|
seq $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L92:
|
|
beq $s0, $zero, __L90
|
|
addi $s0, $sp, 4
|
|
lw $s1, 4($sp)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 0
|
|
lw $s1, 0($sp)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L89
|
|
|
|
__L90:
|
|
lw $s0, 0($sp)
|
|
lb $s0, 0($s0)
|
|
lw $s1, 4($sp)
|
|
lb $s1, 0($s1)
|
|
sub $s0, $s0, $s1
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 0
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
.globl create_variable
|
|
create_variable:
|
|
addi $sp, $sp, -4
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, kmalloc
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L94
|
|
sw $t0, 8($sp)
|
|
la $t0, POINTER_SIZE
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
li $s0, 3
|
|
lw $t0, 0($sp)
|
|
mult $t0, $s0
|
|
mflo $t0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L94:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $s0, $sp, 0
|
|
lw $s0, 0($s0)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 12($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 0
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 8($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 0
|
|
lw $s0, 0($s0)
|
|
li $s1, 2
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 4($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 0($sp)
|
|
sw $s0, 16($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 16($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 4
|
|
lw $ra, 16($sp)
|
|
jr $ra
|
|
|
|
.globl get_word
|
|
get_word:
|
|
addi $sp, $sp, 0
|
|
addi $sp, $sp, -16
|
|
la $s0, skip_whitespace
|
|
sw $s0, 12($sp)
|
|
la $t0, __L96
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L96:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
|
|
__L97:
|
|
addi $sp, $sp, -24
|
|
lw $s0, 24($sp)
|
|
beq $s0, $zero, __L104
|
|
la $s1, alpha
|
|
sw $s1, 20($sp)
|
|
sw $s0, 16($sp)
|
|
la $t0, __L105
|
|
sw $t0, 12($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 4($sp)
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 4($sp)
|
|
lb $t0, 0($t0)
|
|
sb $t0, 4($sp)
|
|
lw $t0, 20($sp)
|
|
addi $sp, $sp, 4
|
|
jr $t0
|
|
|
|
__L105:
|
|
addi $sp, $sp, -4
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
lw $s1, 20($sp)
|
|
move $s1, $t0
|
|
sne $s1, $s1, $zero
|
|
bne $s1, $zero, __L106
|
|
la $s2, digit
|
|
sw $s2, 20($sp)
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L107
|
|
sw $t0, 8($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 0($sp)
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 0($sp)
|
|
lb $t0, 0($t0)
|
|
sb $t0, 0($sp)
|
|
lw $t0, 20($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L107:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
lw $s2, 20($sp)
|
|
move $s2, $t0
|
|
sne $s2, $s2, $zero
|
|
move $s1, $s2
|
|
|
|
__L106:
|
|
sne $s1, $s1, $zero
|
|
bne $s1, $zero, __L108
|
|
lw $s2, 28($sp)
|
|
lw $s2, 0($s2)
|
|
lb $s2, 0($s2)
|
|
li $s3, 95
|
|
seq $s2, $s2, $s3
|
|
sne $s2, $s2, $zero
|
|
move $s1, $s2
|
|
|
|
__L108:
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L104:
|
|
addi $sp, $sp, 24
|
|
beq $s0, $zero, __L98
|
|
lw $s0, 8($sp)
|
|
lw $s1, 4($sp)
|
|
lw $s1, 0($s1)
|
|
lb $s1, 0($s1)
|
|
sb $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 8
|
|
lw $s1, 8($sp)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 4($sp)
|
|
lw $s1, 4($sp)
|
|
lw $s1, 0($s1)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 0
|
|
lw $s1, 0($sp)
|
|
li $s2, 1
|
|
sub $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L97
|
|
|
|
__L98:
|
|
lw $s0, 0($sp)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L109
|
|
addi $s0, $sp, 8
|
|
lw $s1, 8($sp)
|
|
li $s2, 1
|
|
sub $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L109:
|
|
lw $s0, 8($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 24
|
|
sra $s1, $s1, 24
|
|
sb $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 0
|
|
lw $ra, 16($sp)
|
|
jr $ra
|
|
|
|
.globl order_of_operations
|
|
order_of_operations:
|
|
addi $sp, $sp, 0
|
|
lw $s0, 0($sp)
|
|
la $s1, PLUS
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
sne $s0, $s0, $zero
|
|
bne $s0, $zero, __L111
|
|
lw $s1, 0($sp)
|
|
la $s2, MINUS
|
|
lw $s2, 0($s2)
|
|
seq $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L111:
|
|
beq $s0, $zero, __L112
|
|
li $s0, 4
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L113
|
|
|
|
__L112:
|
|
lw $s0, 0($sp)
|
|
la $s1, MULTIPLY
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
sne $s0, $s0, $zero
|
|
bne $s0, $zero, __L115
|
|
lw $s1, 0($sp)
|
|
la $s2, DIVIDE
|
|
lw $s2, 0($s2)
|
|
seq $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L115:
|
|
beq $s0, $zero, __L116
|
|
li $s0, 5
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L117
|
|
|
|
__L116:
|
|
lw $s0, 0($sp)
|
|
la $s1, EQUALS
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
sne $s0, $s0, $zero
|
|
bne $s0, $zero, __L120
|
|
lw $s1, 0($sp)
|
|
la $s2, GREATER_THAN
|
|
lw $s2, 0($s2)
|
|
seq $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L120:
|
|
sne $s0, $s0, $zero
|
|
bne $s0, $zero, __L121
|
|
lw $s1, 0($sp)
|
|
la $s2, LESS_THAN
|
|
lw $s2, 0($s2)
|
|
seq $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L121:
|
|
beq $s0, $zero, __L122
|
|
li $s0, 3
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L123
|
|
|
|
__L122:
|
|
lw $s0, 0($sp)
|
|
la $s1, AND
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L124
|
|
li $s0, 2
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L125
|
|
|
|
__L124:
|
|
lw $s0, 0($sp)
|
|
la $s1, OR
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L126
|
|
li $s0, 1
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L126:
|
|
|
|
__L125:
|
|
|
|
__L123:
|
|
|
|
__L117:
|
|
|
|
__L113:
|
|
li $s0, 0
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl create_token
|
|
create_token:
|
|
addi $sp, $sp, -4
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, kmalloc
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L128
|
|
sw $t0, 8($sp)
|
|
la $t0, POINTER_SIZE
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
li $s0, 3
|
|
lw $t0, 0($sp)
|
|
mult $t0, $s0
|
|
mflo $t0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L128:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 12($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 0($sp)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 8($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 0($sp)
|
|
li $s1, 2
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 4($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 0($sp)
|
|
sw $s0, 16($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 16($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 4
|
|
lw $ra, 16($sp)
|
|
jr $ra
|
|
|
|
.globl get_int
|
|
get_int:
|
|
addi $sp, $sp, -8
|
|
lw $s0, 8($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
li $s1, 45
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L129
|
|
addi $s0, $sp, 4
|
|
li $s1, 1
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 8($sp)
|
|
lw $s1, 8($sp)
|
|
lw $s1, 0($s1)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L130
|
|
|
|
__L129:
|
|
addi $s0, $sp, 4
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L130:
|
|
addi $s0, $sp, 0
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L131:
|
|
lw $s0, 8($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
li $s1, 48
|
|
slt $s0, $s0, $s1
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L134
|
|
lw $s1, 8($sp)
|
|
lw $s1, 0($s1)
|
|
lb $s1, 0($s1)
|
|
li $s2, 57
|
|
sgt $s1, $s1, $s2
|
|
seq $s1, $s1, $zero
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L134:
|
|
beq $s0, $zero, __L132
|
|
addi $s0, $sp, 0
|
|
lw $s1, 0($sp)
|
|
li $s2, 10
|
|
mult $s1, $s2
|
|
mflo $s1
|
|
lw $s2, 8($sp)
|
|
lw $s2, 0($s2)
|
|
lb $s2, 0($s2)
|
|
add $s1, $s1, $s2
|
|
li $s2, 48
|
|
sub $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 8($sp)
|
|
lw $s1, 8($sp)
|
|
lw $s1, 0($s1)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L131
|
|
|
|
__L132:
|
|
lw $s0, 4($sp)
|
|
beq $s0, $zero, __L135
|
|
addi $s0, $sp, 0
|
|
lw $s1, 0($sp)
|
|
sub $s1, $zero, $s1
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L135:
|
|
lw $s0, 0($sp)
|
|
sw $s0, 12($sp)
|
|
addi $sp, $sp, 8
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 8
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl get_str
|
|
get_str:
|
|
addi $sp, $sp, -12
|
|
addi $s0, $sp, 8
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 4
|
|
lw $s1, 12($sp)
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L136:
|
|
lw $s0, 4($sp)
|
|
lb $s0, 0($s0)
|
|
beq $s0, $zero, __L139
|
|
lw $s1, 4($sp)
|
|
lb $s1, 0($s1)
|
|
li $s2, 34
|
|
sne $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L139:
|
|
beq $s0, $zero, __L137
|
|
addi $s0, $sp, 8
|
|
lw $s1, 8($sp)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 4
|
|
lw $s1, 4($sp)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L136
|
|
|
|
__L137:
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, kmalloc
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L141
|
|
sw $t0, 8($sp)
|
|
la $t0, CHAR_SIZE
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $s0, 28($sp)
|
|
li $s1, 1
|
|
add $s0, $s0, $s1
|
|
lw $t0, 0($sp)
|
|
mult $t0, $s0
|
|
mflo $t0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L141:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $s0, $sp, 4
|
|
lw $s1, 0($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L142:
|
|
lw $s0, 12($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
beq $s0, $zero, __L145
|
|
lw $s1, 12($sp)
|
|
lw $s1, 0($s1)
|
|
lb $s1, 0($s1)
|
|
li $s2, 34
|
|
sne $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L145:
|
|
beq $s0, $zero, __L143
|
|
lw $s0, 4($sp)
|
|
lw $s1, 12($sp)
|
|
lw $s1, 0($s1)
|
|
lb $s1, 0($s1)
|
|
sb $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 12($sp)
|
|
lw $s1, 12($sp)
|
|
lw $s1, 0($s1)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 4
|
|
lw $s1, 4($sp)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L142
|
|
|
|
__L143:
|
|
lw $s0, 4($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 24
|
|
sra $s1, $s1, 24
|
|
sb $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 0($sp)
|
|
sw $s0, 16($sp)
|
|
addi $sp, $sp, 12
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 12
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl get_var
|
|
get_var:
|
|
addi $sp, $sp, -8
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 24
|
|
la $s1, kmalloc
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L147
|
|
sw $t0, 8($sp)
|
|
li $t0, 32
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L147:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $sp, $sp, -24
|
|
la $s0, get_word
|
|
sw $s0, 20($sp)
|
|
la $t0, __L149
|
|
sw $t0, 16($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 8($sp)
|
|
lw $t0, 32($sp)
|
|
sw $t0, 4($sp)
|
|
li $t0, 32
|
|
sw $t0, 0($sp)
|
|
lw $t0, 20($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L149:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 12($sp)
|
|
lw $s0, 20($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 24
|
|
addi $sp, $sp, -16
|
|
la $s0, skip_whitespace
|
|
sw $s0, 12($sp)
|
|
la $t0, __L151
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L151:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 8($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
li $s1, 91
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L152
|
|
lw $s0, 8($sp)
|
|
lw $s1, 8($sp)
|
|
lw $s1, 0($s1)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, get_expression
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L154
|
|
sw $t0, 8($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L154:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
lw $s0, 8($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
li $s1, 93
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L155
|
|
lw $s0, 8($sp)
|
|
lw $s1, 8($sp)
|
|
lw $s1, 0($s1)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L155:
|
|
j __L156
|
|
|
|
__L152:
|
|
addi $s0, $sp, 0
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L156:
|
|
addi $sp, $sp, -24
|
|
la $s0, create_token
|
|
sw $s0, 20($sp)
|
|
la $t0, __L158
|
|
sw $t0, 16($sp)
|
|
la $t0, VAR_TOKEN
|
|
lw $t0, 0($t0)
|
|
sw $t0, 8($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 20($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L158:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 12($sp)
|
|
lw $s0, 20($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 24
|
|
sw $s0, 12($sp)
|
|
addi $sp, $sp, 8
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 8
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl get_function
|
|
get_function:
|
|
addi $sp, $sp, -52
|
|
lw $s0, 52($sp)
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 16
|
|
lw $s1, 56($sp)
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -24
|
|
la $s0, get_word
|
|
sw $s0, 20($sp)
|
|
la $t0, __L160
|
|
sw $t0, 16($sp)
|
|
addi $t0, $sp, 44
|
|
sw $t0, 8($sp)
|
|
addi $t0, $sp, 40
|
|
sw $t0, 4($sp)
|
|
li $t0, 32
|
|
sw $t0, 0($sp)
|
|
lw $t0, 20($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L160:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 12($sp)
|
|
lw $s0, 20($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 24
|
|
addi $sp, $sp, -20
|
|
la $s0, strcmp
|
|
sw $s0, 16($sp)
|
|
la $t0, __L162
|
|
sw $t0, 12($sp)
|
|
addi $t0, $sp, 40
|
|
sw $t0, 4($sp)
|
|
la $t0, __str0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L162:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
seq $s0, $s0, $zero
|
|
addi $sp, $sp, 20
|
|
beq $s0, $zero, __L163
|
|
lw $s0, 56($sp)
|
|
lw $s1, 16($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -16
|
|
la $s0, skip_whitespace
|
|
sw $s0, 12($sp)
|
|
la $t0, __L165
|
|
sw $t0, 8($sp)
|
|
lw $t0, 72($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L165:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 56($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
li $s1, 40
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L166
|
|
lw $s0, 56($sp)
|
|
lw $s1, 56($sp)
|
|
lw $s1, 0($s1)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L167
|
|
|
|
__L166:
|
|
li $s0, 0
|
|
sw $s0, 60($sp)
|
|
addi $sp, $sp, 52
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
__L167:
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 32
|
|
la $s1, get_expression
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L169
|
|
sw $t0, 8($sp)
|
|
lw $t0, 76($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L169:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
lw $s0, 56($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
li $s1, 44
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L171
|
|
lw $s1, 12($sp)
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L171:
|
|
beq $s0, $zero, __L172
|
|
lw $s0, 56($sp)
|
|
lw $s1, 56($sp)
|
|
lw $s1, 0($s1)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L173
|
|
|
|
__L172:
|
|
lw $s0, 12($sp)
|
|
beq $s0, $zero, __L174
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L176
|
|
sw $t0, 8($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L176:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
|
|
__L174:
|
|
lw $s0, 52($sp)
|
|
li $s1, 1
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
li $s0, 0
|
|
sw $s0, 60($sp)
|
|
addi $sp, $sp, 52
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
__L173:
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 28
|
|
la $s1, get_expression
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L178
|
|
sw $t0, 8($sp)
|
|
lw $t0, 76($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L178:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
lw $s0, 56($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
li $s1, 44
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L180
|
|
lw $s1, 8($sp)
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L180:
|
|
beq $s0, $zero, __L181
|
|
lw $s0, 56($sp)
|
|
lw $s1, 56($sp)
|
|
lw $s1, 0($s1)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L182
|
|
|
|
__L181:
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L184
|
|
sw $t0, 8($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L184:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 8($sp)
|
|
beq $s0, $zero, __L185
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L187
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L187:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
|
|
__L185:
|
|
lw $s0, 52($sp)
|
|
li $s1, 1
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
li $s0, 0
|
|
sw $s0, 60($sp)
|
|
addi $sp, $sp, 52
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
__L182:
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 24
|
|
la $s1, get_expression
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L189
|
|
sw $t0, 8($sp)
|
|
lw $t0, 76($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L189:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
lw $s0, 56($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
li $s1, 41
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L191
|
|
lw $s1, 4($sp)
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L191:
|
|
beq $s0, $zero, __L192
|
|
lw $s0, 56($sp)
|
|
lw $s1, 56($sp)
|
|
lw $s1, 0($s1)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L193
|
|
|
|
__L192:
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L195
|
|
sw $t0, 8($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L195:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L197
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L197:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 4($sp)
|
|
beq $s0, $zero, __L198
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L200
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L200:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
|
|
__L198:
|
|
lw $s0, 52($sp)
|
|
li $s1, 1
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
li $s0, 0
|
|
sw $s0, 60($sp)
|
|
addi $sp, $sp, 52
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
__L193:
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, kmalloc
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L202
|
|
sw $t0, 8($sp)
|
|
la $t0, POINTER_SIZE
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
li $s0, 4
|
|
lw $t0, 0($sp)
|
|
mult $t0, $s0
|
|
mflo $t0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L202:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $s0, $sp, 0
|
|
lw $s0, 0($s0)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, SUBSTRING
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 0
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 12($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 0
|
|
lw $s0, 0($s0)
|
|
li $s1, 2
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 8($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 0
|
|
lw $s0, 0($s0)
|
|
li $s1, 3
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 4($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 0($sp)
|
|
sw $s0, 60($sp)
|
|
addi $sp, $sp, 52
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
j __L203
|
|
|
|
__L163:
|
|
addi $sp, $sp, -20
|
|
la $s0, strcmp
|
|
sw $s0, 16($sp)
|
|
la $t0, __L205
|
|
sw $t0, 12($sp)
|
|
addi $t0, $sp, 40
|
|
sw $t0, 4($sp)
|
|
la $t0, __str1
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L205:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
seq $s0, $s0, $zero
|
|
addi $sp, $sp, 20
|
|
beq $s0, $zero, __L206
|
|
lw $s0, 56($sp)
|
|
lw $s1, 16($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -16
|
|
la $s0, skip_whitespace
|
|
sw $s0, 12($sp)
|
|
la $t0, __L208
|
|
sw $t0, 8($sp)
|
|
lw $t0, 72($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L208:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 56($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
li $s1, 40
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L209
|
|
lw $s0, 56($sp)
|
|
lw $s1, 56($sp)
|
|
lw $s1, 0($s1)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L210
|
|
|
|
__L209:
|
|
li $s0, 0
|
|
sw $s0, 60($sp)
|
|
addi $sp, $sp, 52
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
__L210:
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 32
|
|
la $s1, get_expression
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L212
|
|
sw $t0, 8($sp)
|
|
lw $t0, 76($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L212:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
lw $s0, 56($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
li $s1, 41
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L214
|
|
lw $s1, 12($sp)
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L214:
|
|
beq $s0, $zero, __L215
|
|
lw $s0, 56($sp)
|
|
lw $s1, 56($sp)
|
|
lw $s1, 0($s1)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L216
|
|
|
|
__L215:
|
|
lw $s0, 12($sp)
|
|
beq $s0, $zero, __L217
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L219
|
|
sw $t0, 8($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L219:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
|
|
__L217:
|
|
lw $s0, 52($sp)
|
|
li $s1, 1
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
li $s0, 0
|
|
sw $s0, 60($sp)
|
|
addi $sp, $sp, 52
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
__L216:
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, kmalloc
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L221
|
|
sw $t0, 8($sp)
|
|
la $t0, POINTER_SIZE
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
lw $t0, 0($sp)
|
|
mult $t0, $s0
|
|
mflo $t0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L221:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $s0, $sp, 0
|
|
lw $s0, 0($s0)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, STRFUNC
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 0
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 12($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 0($sp)
|
|
sw $s0, 60($sp)
|
|
addi $sp, $sp, 52
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
j __L222
|
|
|
|
__L206:
|
|
li $s0, 0
|
|
sw $s0, 60($sp)
|
|
addi $sp, $sp, 52
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
__L222:
|
|
|
|
__L203:
|
|
addi $sp, $sp, 52
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
.globl get_value
|
|
get_value:
|
|
addi $sp, $sp, -12
|
|
addi $sp, $sp, -16
|
|
la $s0, skip_whitespace
|
|
sw $s0, 12($sp)
|
|
la $t0, __L224
|
|
sw $t0, 8($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L224:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 12($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
li $s1, 45
|
|
seq $s0, $s0, $s1
|
|
sne $s0, $s0, $zero
|
|
bne $s0, $zero, __L227
|
|
lw $s1, 12($sp)
|
|
lw $s1, 0($s1)
|
|
lb $s1, 0($s1)
|
|
li $s2, 48
|
|
slt $s1, $s1, $s2
|
|
seq $s1, $s1, $zero
|
|
beq $s1, $zero, __L228
|
|
lw $s2, 12($sp)
|
|
lw $s2, 0($s2)
|
|
lb $s2, 0($s2)
|
|
li $s3, 57
|
|
sgt $s2, $s2, $s3
|
|
seq $s2, $s2, $zero
|
|
sne $s2, $s2, $zero
|
|
move $s1, $s2
|
|
|
|
__L228:
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L227:
|
|
beq $s0, $zero, __L229
|
|
addi $sp, $sp, -32
|
|
la $s0, create_token
|
|
sw $s0, 28($sp)
|
|
la $t0, __L232
|
|
sw $t0, 24($sp)
|
|
la $t0, INT_TOKEN
|
|
lw $t0, 0($t0)
|
|
sw $t0, 16($sp)
|
|
la $t0, get_int
|
|
sw $t0, 12($sp)
|
|
la $t0, __L233
|
|
sw $t0, 8($sp)
|
|
lw $t0, 44($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L233:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
sw $t0, 12($sp)
|
|
li $t0, 0
|
|
sw $t0, 8($sp)
|
|
lw $t0, 28($sp)
|
|
addi $sp, $sp, 8
|
|
jr $t0
|
|
|
|
__L232:
|
|
addi $sp, $sp, -8
|
|
lw $t0, 20($sp)
|
|
lw $s0, 28($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 32
|
|
sw $s0, 16($sp)
|
|
addi $sp, $sp, 12
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L234
|
|
|
|
__L229:
|
|
lw $s0, 12($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
li $s1, 40
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L235
|
|
lw $s0, 12($sp)
|
|
lw $s1, 12($sp)
|
|
lw $s1, 0($s1)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 24
|
|
la $s1, get_expression
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L237
|
|
sw $t0, 8($sp)
|
|
lw $t0, 32($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L237:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
lw $s0, 12($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
li $s1, 41
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L238
|
|
lw $s0, 12($sp)
|
|
lw $s1, 12($sp)
|
|
lw $s1, 0($s1)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L238:
|
|
lw $s0, 4($sp)
|
|
sw $s0, 16($sp)
|
|
addi $sp, $sp, 12
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L239
|
|
|
|
__L235:
|
|
addi $sp, $sp, -16
|
|
la $s0, alpha
|
|
sw $s0, 12($sp)
|
|
la $t0, __L241
|
|
sw $t0, 8($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 0($sp)
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 0($sp)
|
|
lb $t0, 0($t0)
|
|
sb $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L241:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
beq $s0, $zero, __L242
|
|
addi $sp, $sp, -24
|
|
addi $s0, $sp, 28
|
|
la $s1, get_function
|
|
sw $s1, 20($sp)
|
|
sw $s0, 16($sp)
|
|
la $t0, __L244
|
|
sw $t0, 12($sp)
|
|
lw $t0, 36($sp)
|
|
sw $t0, 4($sp)
|
|
addi $t0, $sp, 24
|
|
sw $t0, 0($sp)
|
|
lw $t0, 20($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L244:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
lw $s1, 20($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 24
|
|
lw $s0, 0($sp)
|
|
beq $s0, $zero, __L245
|
|
li $s0, 0
|
|
sw $s0, 16($sp)
|
|
addi $sp, $sp, 12
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L245:
|
|
lw $s0, 4($sp)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L246
|
|
addi $sp, $sp, -16
|
|
la $s0, get_var
|
|
sw $s0, 12($sp)
|
|
la $t0, __L248
|
|
sw $t0, 8($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L248:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
sw $s0, 16($sp)
|
|
addi $sp, $sp, 12
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L246:
|
|
lw $s0, 4($sp)
|
|
sw $s0, 16($sp)
|
|
addi $sp, $sp, 12
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L249
|
|
|
|
__L242:
|
|
lw $s0, 12($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
li $s1, 34
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L250
|
|
lw $s0, 12($sp)
|
|
lw $s1, 12($sp)
|
|
lw $s1, 0($s1)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 28
|
|
la $s1, get_str
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L252
|
|
sw $t0, 8($sp)
|
|
lw $t0, 32($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L252:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
lw $s0, 12($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
li $s1, 34
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L253
|
|
lw $s0, 12($sp)
|
|
lw $s1, 12($sp)
|
|
lw $s1, 0($s1)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L253:
|
|
addi $sp, $sp, -24
|
|
la $s0, create_token
|
|
sw $s0, 20($sp)
|
|
la $t0, __L255
|
|
sw $t0, 16($sp)
|
|
la $t0, STR_TOKEN
|
|
lw $t0, 0($t0)
|
|
sw $t0, 8($sp)
|
|
lw $t0, 32($sp)
|
|
sw $t0, 4($sp)
|
|
li $t0, 0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 20($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L255:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 12($sp)
|
|
lw $s0, 20($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 24
|
|
sw $s0, 16($sp)
|
|
addi $sp, $sp, 12
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L250:
|
|
|
|
__L249:
|
|
|
|
__L239:
|
|
|
|
__L234:
|
|
li $s0, 0
|
|
sw $s0, 16($sp)
|
|
addi $sp, $sp, 12
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 12
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl get_operation
|
|
get_operation:
|
|
addi $sp, $sp, 0
|
|
addi $sp, $sp, -16
|
|
la $s0, skip_whitespace
|
|
sw $s0, 12($sp)
|
|
la $t0, __L257
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L257:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 0($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
li $s1, 43
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L258
|
|
lw $s0, 0($sp)
|
|
lw $s1, 0($sp)
|
|
lw $s1, 0($s1)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, PLUS
|
|
lw $s0, 0($s0)
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L259
|
|
|
|
__L258:
|
|
lw $s0, 0($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
li $s1, 45
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L260
|
|
lw $s0, 0($sp)
|
|
lw $s1, 0($sp)
|
|
lw $s1, 0($s1)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, MINUS
|
|
lw $s0, 0($s0)
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L261
|
|
|
|
__L260:
|
|
lw $s0, 0($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
li $s1, 42
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L262
|
|
lw $s0, 0($sp)
|
|
lw $s1, 0($sp)
|
|
lw $s1, 0($s1)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, MULTIPLY
|
|
lw $s0, 0($s0)
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L263
|
|
|
|
__L262:
|
|
lw $s0, 0($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
li $s1, 47
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L264
|
|
lw $s0, 0($sp)
|
|
lw $s1, 0($sp)
|
|
lw $s1, 0($s1)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, DIVIDE
|
|
lw $s0, 0($s0)
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L265
|
|
|
|
__L264:
|
|
lw $s0, 0($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
li $s1, 61
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L266
|
|
lw $s0, 0($sp)
|
|
lw $s1, 0($sp)
|
|
lw $s1, 0($s1)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, EQUALS
|
|
lw $s0, 0($s0)
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L267
|
|
|
|
__L266:
|
|
lw $s0, 0($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
li $s1, 62
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L268
|
|
lw $s0, 0($sp)
|
|
lw $s1, 0($sp)
|
|
lw $s1, 0($s1)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, GREATER_THAN
|
|
lw $s0, 0($s0)
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L269
|
|
|
|
__L268:
|
|
lw $s0, 0($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
li $s1, 60
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L270
|
|
lw $s0, 0($sp)
|
|
lw $s1, 0($sp)
|
|
lw $s1, 0($s1)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, LESS_THAN
|
|
lw $s0, 0($s0)
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L271
|
|
|
|
__L270:
|
|
lw $s0, 0($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
li $s1, 33
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L273
|
|
lw $s1, 0($sp)
|
|
lw $s1, 0($s1)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
lb $s1, 0($s1)
|
|
li $s2, 61
|
|
seq $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L273:
|
|
beq $s0, $zero, __L274
|
|
lw $s0, 0($sp)
|
|
lw $s1, 0($sp)
|
|
lw $s1, 0($s1)
|
|
li $s2, 2
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, NOT_EQUALS
|
|
lw $s0, 0($s0)
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L275
|
|
|
|
__L274:
|
|
lw $s0, 0($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
li $s1, 38
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L276
|
|
lw $s0, 0($sp)
|
|
lw $s1, 0($sp)
|
|
lw $s1, 0($s1)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, AND
|
|
lw $s0, 0($s0)
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L277
|
|
|
|
__L276:
|
|
lw $s0, 0($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
li $s1, 124
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L278
|
|
lw $s0, 0($sp)
|
|
lw $s1, 0($sp)
|
|
lw $s1, 0($s1)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, OR
|
|
lw $s0, 0($s0)
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L278:
|
|
|
|
__L277:
|
|
|
|
__L275:
|
|
|
|
__L271:
|
|
|
|
__L269:
|
|
|
|
__L267:
|
|
|
|
__L265:
|
|
|
|
__L263:
|
|
|
|
__L261:
|
|
|
|
__L259:
|
|
li $s0, 0
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl get_expression_recursive
|
|
get_expression_recursive:
|
|
addi $sp, $sp, -16
|
|
|
|
__L279:
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 28
|
|
la $s1, get_operation
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L282
|
|
sw $t0, 8($sp)
|
|
lw $t0, 36($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L282:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
beq $s0, $zero, __L280
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 32
|
|
la $s1, get_value
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L284
|
|
sw $t0, 8($sp)
|
|
lw $t0, 36($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L284:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
lw $s0, 12($sp)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L285
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L287
|
|
sw $t0, 8($sp)
|
|
lw $t0, 36($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L287:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 0
|
|
sw $s0, 24($sp)
|
|
addi $sp, $sp, 16
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
__L285:
|
|
addi $s0, $sp, 0
|
|
lw $s1, 16($sp)
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 24
|
|
la $s1, get_operation
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L289
|
|
sw $t0, 8($sp)
|
|
addi $t0, $sp, 20
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L289:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $sp, $sp, -20
|
|
la $s0, order_of_operations
|
|
sw $s0, 16($sp)
|
|
la $t0, __L292
|
|
sw $t0, 12($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 4
|
|
jr $t0
|
|
|
|
__L292:
|
|
addi $sp, $sp, -4
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
la $s1, order_of_operations
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L293
|
|
sw $t0, 8($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L293:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sgt $s0, $s0, $s1
|
|
addi $sp, $sp, 20
|
|
beq $s0, $zero, __L294
|
|
addi $sp, $sp, -24
|
|
addi $s0, $sp, 36
|
|
la $s1, get_expression_recursive
|
|
sw $s1, 20($sp)
|
|
sw $s0, 16($sp)
|
|
la $t0, __L296
|
|
sw $t0, 12($sp)
|
|
lw $t0, 36($sp)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 40($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 20($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L296:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
lw $s1, 20($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 24
|
|
|
|
__L294:
|
|
lw $s0, 12($sp)
|
|
beq $s0, $zero, __L297
|
|
addi $sp, $sp, -28
|
|
addi $s0, $sp, 48
|
|
la $s1, create_token
|
|
sw $s1, 24($sp)
|
|
sw $s0, 20($sp)
|
|
la $t0, __L299
|
|
sw $t0, 16($sp)
|
|
lw $t0, 36($sp)
|
|
sw $t0, 8($sp)
|
|
lw $t0, 48($sp)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 40($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 24($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L299:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 12($sp)
|
|
lw $s0, 20($sp)
|
|
lw $s1, 24($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 28
|
|
j __L300
|
|
|
|
__L297:
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L302
|
|
sw $t0, 8($sp)
|
|
lw $t0, 36($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L302:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 0
|
|
sw $s0, 24($sp)
|
|
addi $sp, $sp, 16
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
__L300:
|
|
j __L279
|
|
|
|
__L280:
|
|
lw $s0, 20($sp)
|
|
sw $s0, 24($sp)
|
|
addi $sp, $sp, 16
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 16
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
.globl get_expression
|
|
get_expression:
|
|
addi $sp, $sp, -4
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, get_value
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L304
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L304:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
lw $s0, 0($sp)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L305
|
|
li $s0, 0
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L305:
|
|
addi $sp, $sp, -20
|
|
la $s0, get_expression_recursive
|
|
sw $s0, 16($sp)
|
|
la $t0, __L307
|
|
sw $t0, 12($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L307:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 20
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl free_expression
|
|
free_expression:
|
|
addi $sp, $sp, 0
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, INT_TOKEN
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L308
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L310
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L310:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L311
|
|
|
|
__L308:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, STR_TOKEN
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L312
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L314
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L314:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L316
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L316:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L317
|
|
|
|
__L312:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, VAR_TOKEN
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L318
|
|
lw $s0, 0($sp)
|
|
li $s1, 2
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
beq $s0, $zero, __L319
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L321
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L321:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
|
|
__L319:
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L323
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L323:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L325
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L325:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L326
|
|
|
|
__L318:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, PLUS
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
sne $s0, $s0, $zero
|
|
bne $s0, $zero, __L336
|
|
lw $s1, 0($sp)
|
|
li $s2, 0
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
la $s2, MINUS
|
|
lw $s2, 0($s2)
|
|
seq $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L336:
|
|
sne $s0, $s0, $zero
|
|
bne $s0, $zero, __L337
|
|
lw $s1, 0($sp)
|
|
li $s2, 0
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
la $s2, MULTIPLY
|
|
lw $s2, 0($s2)
|
|
seq $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L337:
|
|
sne $s0, $s0, $zero
|
|
bne $s0, $zero, __L338
|
|
lw $s1, 0($sp)
|
|
li $s2, 0
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
la $s2, DIVIDE
|
|
lw $s2, 0($s2)
|
|
seq $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L338:
|
|
sne $s0, $s0, $zero
|
|
bne $s0, $zero, __L339
|
|
lw $s1, 0($sp)
|
|
li $s2, 0
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
la $s2, EQUALS
|
|
lw $s2, 0($s2)
|
|
seq $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L339:
|
|
sne $s0, $s0, $zero
|
|
bne $s0, $zero, __L340
|
|
lw $s1, 0($sp)
|
|
li $s2, 0
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
la $s2, NOT_EQUALS
|
|
lw $s2, 0($s2)
|
|
seq $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L340:
|
|
sne $s0, $s0, $zero
|
|
bne $s0, $zero, __L341
|
|
lw $s1, 0($sp)
|
|
li $s2, 0
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
la $s2, GREATER_THAN
|
|
lw $s2, 0($s2)
|
|
seq $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L341:
|
|
sne $s0, $s0, $zero
|
|
bne $s0, $zero, __L342
|
|
lw $s1, 0($sp)
|
|
li $s2, 0
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
la $s2, LESS_THAN
|
|
lw $s2, 0($s2)
|
|
seq $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L342:
|
|
sne $s0, $s0, $zero
|
|
bne $s0, $zero, __L343
|
|
lw $s1, 0($sp)
|
|
li $s2, 0
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
la $s2, AND
|
|
lw $s2, 0($s2)
|
|
seq $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L343:
|
|
sne $s0, $s0, $zero
|
|
bne $s0, $zero, __L344
|
|
lw $s1, 0($sp)
|
|
li $s2, 0
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
la $s2, OR
|
|
lw $s2, 0($s2)
|
|
seq $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L344:
|
|
beq $s0, $zero, __L345
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L347
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L347:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L349
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L349:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L351
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L351:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L352
|
|
|
|
__L345:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, SUBSTRING
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L353
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L355
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L355:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L357
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L357:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L359
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 3
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L359:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L361
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L361:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L362
|
|
|
|
__L353:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, STRFUNC
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L363
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L365
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L365:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L367
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L367:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
|
|
__L363:
|
|
|
|
__L362:
|
|
|
|
__L352:
|
|
|
|
__L326:
|
|
|
|
__L317:
|
|
|
|
__L311:
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl list_expression
|
|
list_expression:
|
|
addi $sp, $sp, 0
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, INT_TOKEN
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L368
|
|
addi $sp, $sp, -16
|
|
la $s0, printd
|
|
sw $s0, 12($sp)
|
|
la $t0, __L370
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L370:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L371
|
|
|
|
__L368:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, STR_TOKEN
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L372
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L374
|
|
sw $t0, 8($sp)
|
|
la $t0, __str2
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L374:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L376
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L376:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L378
|
|
sw $t0, 8($sp)
|
|
la $t0, __str3
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L378:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L379
|
|
|
|
__L372:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, VAR_TOKEN
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L380
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L382
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L382:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 0($sp)
|
|
li $s1, 2
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
beq $s0, $zero, __L383
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L385
|
|
sw $t0, 8($sp)
|
|
la $t0, __str4
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L385:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L387
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L387:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L389
|
|
sw $t0, 8($sp)
|
|
la $t0, __str5
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L389:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
|
|
__L383:
|
|
j __L390
|
|
|
|
__L380:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, PLUS
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L391
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L393
|
|
sw $t0, 8($sp)
|
|
la $t0, __str6
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L393:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L395
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L395:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L397
|
|
sw $t0, 8($sp)
|
|
la $t0, __str7
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L397:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L399
|
|
sw $t0, 8($sp)
|
|
la $t0, __str8
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L399:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L401
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L401:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L403
|
|
sw $t0, 8($sp)
|
|
la $t0, __str9
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L403:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L404
|
|
|
|
__L391:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, MINUS
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L405
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L407
|
|
sw $t0, 8($sp)
|
|
la $t0, __str10
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L407:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L409
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L409:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L411
|
|
sw $t0, 8($sp)
|
|
la $t0, __str11
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L411:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L413
|
|
sw $t0, 8($sp)
|
|
la $t0, __str12
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L413:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L415
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L415:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L417
|
|
sw $t0, 8($sp)
|
|
la $t0, __str13
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L417:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L418
|
|
|
|
__L405:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, MULTIPLY
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L419
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L421
|
|
sw $t0, 8($sp)
|
|
la $t0, __str14
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L421:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L423
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L423:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L425
|
|
sw $t0, 8($sp)
|
|
la $t0, __str15
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L425:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L427
|
|
sw $t0, 8($sp)
|
|
la $t0, __str16
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L427:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L429
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L429:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L431
|
|
sw $t0, 8($sp)
|
|
la $t0, __str17
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L431:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L432
|
|
|
|
__L419:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, DIVIDE
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L433
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L435
|
|
sw $t0, 8($sp)
|
|
la $t0, __str18
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L435:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L437
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L437:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L439
|
|
sw $t0, 8($sp)
|
|
la $t0, __str19
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L439:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L441
|
|
sw $t0, 8($sp)
|
|
la $t0, __str20
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L441:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L443
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L443:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L445
|
|
sw $t0, 8($sp)
|
|
la $t0, __str21
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L445:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L446
|
|
|
|
__L433:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, EQUALS
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L447
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L449
|
|
sw $t0, 8($sp)
|
|
la $t0, __str22
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L449:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L451
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L451:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L453
|
|
sw $t0, 8($sp)
|
|
la $t0, __str23
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L453:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L455
|
|
sw $t0, 8($sp)
|
|
la $t0, __str24
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L455:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L457
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L457:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L459
|
|
sw $t0, 8($sp)
|
|
la $t0, __str25
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L459:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L460
|
|
|
|
__L447:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, NOT_EQUALS
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L461
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L463
|
|
sw $t0, 8($sp)
|
|
la $t0, __str26
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L463:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L465
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L465:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L467
|
|
sw $t0, 8($sp)
|
|
la $t0, __str27
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L467:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L469
|
|
sw $t0, 8($sp)
|
|
la $t0, __str28
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L469:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L471
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L471:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L473
|
|
sw $t0, 8($sp)
|
|
la $t0, __str29
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L473:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L474
|
|
|
|
__L461:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, GREATER_THAN
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L475
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L477
|
|
sw $t0, 8($sp)
|
|
la $t0, __str30
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L477:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L479
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L479:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L481
|
|
sw $t0, 8($sp)
|
|
la $t0, __str31
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L481:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L483
|
|
sw $t0, 8($sp)
|
|
la $t0, __str32
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L483:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L485
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L485:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L487
|
|
sw $t0, 8($sp)
|
|
la $t0, __str33
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L487:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L488
|
|
|
|
__L475:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, LESS_THAN
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L489
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L491
|
|
sw $t0, 8($sp)
|
|
la $t0, __str34
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L491:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L493
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L493:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L495
|
|
sw $t0, 8($sp)
|
|
la $t0, __str35
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L495:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L497
|
|
sw $t0, 8($sp)
|
|
la $t0, __str36
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L497:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L499
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L499:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L501
|
|
sw $t0, 8($sp)
|
|
la $t0, __str37
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L501:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L502
|
|
|
|
__L489:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, AND
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L503
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L505
|
|
sw $t0, 8($sp)
|
|
la $t0, __str38
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L505:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L507
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L507:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L509
|
|
sw $t0, 8($sp)
|
|
la $t0, __str39
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L509:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L511
|
|
sw $t0, 8($sp)
|
|
la $t0, __str40
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L511:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L513
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L513:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L515
|
|
sw $t0, 8($sp)
|
|
la $t0, __str41
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L515:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L516
|
|
|
|
__L503:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, OR
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L517
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L519
|
|
sw $t0, 8($sp)
|
|
la $t0, __str42
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L519:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L521
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L521:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L523
|
|
sw $t0, 8($sp)
|
|
la $t0, __str43
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L523:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L525
|
|
sw $t0, 8($sp)
|
|
la $t0, __str44
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L525:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L527
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L527:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L529
|
|
sw $t0, 8($sp)
|
|
la $t0, __str45
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L529:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L530
|
|
|
|
__L517:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, SUBSTRING
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L531
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L533
|
|
sw $t0, 8($sp)
|
|
la $t0, __str46
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L533:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L535
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L535:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L537
|
|
sw $t0, 8($sp)
|
|
la $t0, __str47
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L537:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L539
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L539:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L541
|
|
sw $t0, 8($sp)
|
|
la $t0, __str48
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L541:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L543
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 3
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L543:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L545
|
|
sw $t0, 8($sp)
|
|
la $t0, __str49
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L545:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L546
|
|
|
|
__L531:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, STRFUNC
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L547
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L549
|
|
sw $t0, 8($sp)
|
|
la $t0, __str50
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L549:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L551
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L551:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L553
|
|
sw $t0, 8($sp)
|
|
la $t0, __str51
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L553:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
|
|
__L547:
|
|
|
|
__L546:
|
|
|
|
__L530:
|
|
|
|
__L516:
|
|
|
|
__L502:
|
|
|
|
__L488:
|
|
|
|
__L474:
|
|
|
|
__L460:
|
|
|
|
__L446:
|
|
|
|
__L432:
|
|
|
|
__L418:
|
|
|
|
__L404:
|
|
|
|
__L390:
|
|
|
|
__L379:
|
|
|
|
__L371:
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl parse_print
|
|
parse_print:
|
|
addi $sp, $sp, -4
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, kmalloc
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L555
|
|
sw $t0, 8($sp)
|
|
la $t0, POINTER_SIZE
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
lw $t0, 0($sp)
|
|
mult $t0, $s0
|
|
mflo $t0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L555:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $s0, $sp, 0
|
|
lw $s0, 0($s0)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, PRINT
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, get_expression
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L557
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L557:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $sp, $sp, -16
|
|
la $s0, skip_whitespace
|
|
sw $s0, 12($sp)
|
|
la $t0, __L559
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L559:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 0($sp)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L560
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L562
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L562:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 0
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L563
|
|
|
|
__L560:
|
|
lw $s0, 4($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
beq $s0, $zero, __L564
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L566
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L566:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L568
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L568:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 0
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L564:
|
|
|
|
__L563:
|
|
lw $s0, 0($sp)
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl list_print
|
|
list_print:
|
|
addi $sp, $sp, 0
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L570
|
|
sw $t0, 8($sp)
|
|
la $t0, __str52
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L570:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L572
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L572:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl parse_input
|
|
parse_input:
|
|
addi $sp, $sp, -4
|
|
addi $sp, $sp, -16
|
|
la $s0, skip_whitespace
|
|
sw $s0, 12($sp)
|
|
la $t0, __L574
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L574:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, alpha
|
|
sw $s0, 12($sp)
|
|
la $t0, __L576
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 0($sp)
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 0($sp)
|
|
lb $t0, 0($t0)
|
|
sb $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L576:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
seq $s0, $s0, $zero
|
|
addi $sp, $sp, 16
|
|
beq $s0, $zero, __L577
|
|
li $s0, 0
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L577:
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, kmalloc
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L579
|
|
sw $t0, 8($sp)
|
|
la $t0, POINTER_SIZE
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
lw $t0, 0($sp)
|
|
mult $t0, $s0
|
|
mflo $t0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L579:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $s0, $sp, 0
|
|
lw $s0, 0($s0)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, INPUT
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, get_var
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L581
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L581:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $sp, $sp, -16
|
|
la $s0, skip_whitespace
|
|
sw $s0, 12($sp)
|
|
la $t0, __L583
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L583:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 4($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
beq $s0, $zero, __L584
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L586
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L586:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L588
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L588:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 0
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L584:
|
|
lw $s0, 0($sp)
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl list_input
|
|
list_input:
|
|
addi $sp, $sp, 0
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L590
|
|
sw $t0, 8($sp)
|
|
la $t0, __str53
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L590:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L592
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L592:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl parse_inputstr
|
|
parse_inputstr:
|
|
addi $sp, $sp, -4
|
|
addi $sp, $sp, -16
|
|
la $s0, skip_whitespace
|
|
sw $s0, 12($sp)
|
|
la $t0, __L594
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L594:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, alpha
|
|
sw $s0, 12($sp)
|
|
la $t0, __L596
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 0($sp)
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 0($sp)
|
|
lb $t0, 0($t0)
|
|
sb $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L596:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
seq $s0, $s0, $zero
|
|
addi $sp, $sp, 16
|
|
beq $s0, $zero, __L597
|
|
li $s0, 0
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L597:
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, kmalloc
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L599
|
|
sw $t0, 8($sp)
|
|
la $t0, POINTER_SIZE
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
lw $t0, 0($sp)
|
|
mult $t0, $s0
|
|
mflo $t0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L599:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $s0, $sp, 0
|
|
lw $s0, 0($s0)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, INPUTSTR
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, get_var
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L601
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L601:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $sp, $sp, -16
|
|
la $s0, skip_whitespace
|
|
sw $s0, 12($sp)
|
|
la $t0, __L603
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L603:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 4($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
beq $s0, $zero, __L604
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L606
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L606:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L608
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L608:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 0
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L604:
|
|
lw $s0, 0($sp)
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl list_inputstr
|
|
list_inputstr:
|
|
addi $sp, $sp, 0
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L610
|
|
sw $t0, 8($sp)
|
|
la $t0, __str54
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L610:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L612
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L612:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl parse_let
|
|
parse_let:
|
|
addi $sp, $sp, -4
|
|
addi $sp, $sp, -16
|
|
la $s0, skip_whitespace
|
|
sw $s0, 12($sp)
|
|
la $t0, __L614
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L614:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, alpha
|
|
sw $s0, 12($sp)
|
|
la $t0, __L616
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 0($sp)
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 0($sp)
|
|
lb $t0, 0($t0)
|
|
sb $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L616:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
seq $s0, $s0, $zero
|
|
addi $sp, $sp, 16
|
|
beq $s0, $zero, __L617
|
|
li $s0, 0
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L617:
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, kmalloc
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L619
|
|
sw $t0, 8($sp)
|
|
la $t0, POINTER_SIZE
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
li $s0, 3
|
|
lw $t0, 0($sp)
|
|
mult $t0, $s0
|
|
mflo $t0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L619:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $s0, $sp, 0
|
|
lw $s0, 0($s0)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, LET
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, get_var
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L621
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L621:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $sp, $sp, -16
|
|
la $s0, skip_whitespace
|
|
sw $s0, 12($sp)
|
|
la $t0, __L623
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L623:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 4($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
li $s1, 61
|
|
sne $s0, $s0, $s1
|
|
beq $s0, $zero, __L624
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L626
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L626:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L628
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L628:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 0
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L624:
|
|
lw $s0, 4($sp)
|
|
lw $s1, 4($sp)
|
|
lw $s1, 0($s1)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -16
|
|
la $s0, skip_whitespace
|
|
sw $s0, 12($sp)
|
|
la $t0, __L630
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L630:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
lw $s0, 0($s0)
|
|
li $s1, 2
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, get_expression
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L632
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L632:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
lw $s0, 4($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
sne $s0, $s0, $zero
|
|
bne $s0, $zero, __L634
|
|
lw $s1, 0($sp)
|
|
li $s2, 2
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
seq $s1, $s1, $zero
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L634:
|
|
beq $s0, $zero, __L635
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L637
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L637:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 0($sp)
|
|
li $s1, 2
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
beq $s0, $zero, __L638
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L640
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L640:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
|
|
__L638:
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L642
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L642:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 0
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L635:
|
|
lw $s0, 0($sp)
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl list_let
|
|
list_let:
|
|
addi $sp, $sp, 0
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L644
|
|
sw $t0, 8($sp)
|
|
la $t0, __str55
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L644:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L646
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L646:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L648
|
|
sw $t0, 8($sp)
|
|
la $t0, __str56
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L648:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L650
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L650:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl parse_dim
|
|
parse_dim:
|
|
addi $sp, $sp, -4
|
|
addi $sp, $sp, -16
|
|
la $s0, skip_whitespace
|
|
sw $s0, 12($sp)
|
|
la $t0, __L652
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L652:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, alpha
|
|
sw $s0, 12($sp)
|
|
la $t0, __L654
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 0($sp)
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 0($sp)
|
|
lb $t0, 0($t0)
|
|
sb $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L654:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
seq $s0, $s0, $zero
|
|
addi $sp, $sp, 16
|
|
beq $s0, $zero, __L655
|
|
li $s0, 0
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L655:
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, kmalloc
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L657
|
|
sw $t0, 8($sp)
|
|
la $t0, POINTER_SIZE
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
li $s0, 3
|
|
lw $t0, 0($sp)
|
|
mult $t0, $s0
|
|
mflo $t0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L657:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $s0, $sp, 0
|
|
lw $s0, 0($s0)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, DIM
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, get_var
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L659
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L659:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $sp, $sp, -16
|
|
la $s0, skip_whitespace
|
|
sw $s0, 12($sp)
|
|
la $t0, __L661
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L661:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 4($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
li $s1, 44
|
|
sne $s0, $s0, $s1
|
|
beq $s0, $zero, __L662
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L664
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L664:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L666
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L666:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 0
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L662:
|
|
lw $s0, 4($sp)
|
|
lw $s1, 4($sp)
|
|
lw $s1, 0($s1)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -16
|
|
la $s0, skip_whitespace
|
|
sw $s0, 12($sp)
|
|
la $t0, __L668
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L668:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
lw $s0, 0($s0)
|
|
li $s1, 2
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, get_expression
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L670
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L670:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $sp, $sp, -16
|
|
la $s0, skip_whitespace
|
|
sw $s0, 12($sp)
|
|
la $t0, __L672
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L672:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 4($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
sne $s0, $s0, $zero
|
|
bne $s0, $zero, __L674
|
|
lw $s1, 0($sp)
|
|
li $s2, 2
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
seq $s1, $s1, $zero
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L674:
|
|
beq $s0, $zero, __L675
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L677
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L677:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 0($sp)
|
|
li $s1, 2
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
beq $s0, $zero, __L678
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L680
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L680:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
|
|
__L678:
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L682
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L682:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 0
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L675:
|
|
lw $s0, 0($sp)
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl list_dim
|
|
list_dim:
|
|
addi $sp, $sp, 0
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L684
|
|
sw $t0, 8($sp)
|
|
la $t0, __str57
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L684:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L686
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L686:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L688
|
|
sw $t0, 8($sp)
|
|
la $t0, __str58
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L688:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L690
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L690:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl parse_if
|
|
parse_if:
|
|
addi $sp, $sp, -4
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, kmalloc
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L692
|
|
sw $t0, 8($sp)
|
|
la $t0, POINTER_SIZE
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
lw $t0, 0($sp)
|
|
mult $t0, $s0
|
|
mflo $t0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L692:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $s0, $sp, 0
|
|
lw $s0, 0($s0)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, IF
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, get_expression
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L694
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L694:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $sp, $sp, -16
|
|
la $s0, skip_whitespace
|
|
sw $s0, 12($sp)
|
|
la $t0, __L696
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L696:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 0($sp)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L697
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L699
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L699:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 0
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L700
|
|
|
|
__L697:
|
|
lw $s0, 4($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
beq $s0, $zero, __L701
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L703
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L703:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L705
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L705:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 0
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L701:
|
|
|
|
__L700:
|
|
lw $s0, 0($sp)
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl list_if
|
|
list_if:
|
|
addi $sp, $sp, 0
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L707
|
|
sw $t0, 8($sp)
|
|
la $t0, __str59
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L707:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L709
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L709:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl parse_goto
|
|
parse_goto:
|
|
addi $sp, $sp, -4
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, kmalloc
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L711
|
|
sw $t0, 8($sp)
|
|
la $t0, POINTER_SIZE
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
lw $t0, 0($sp)
|
|
mult $t0, $s0
|
|
mflo $t0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L711:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $s0, $sp, 0
|
|
lw $s0, 0($s0)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, GOTO
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, get_expression
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L713
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L713:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $sp, $sp, -16
|
|
la $s0, skip_whitespace
|
|
sw $s0, 12($sp)
|
|
la $t0, __L715
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L715:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 0($sp)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L716
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L718
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L718:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 0
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L719
|
|
|
|
__L716:
|
|
lw $s0, 4($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
beq $s0, $zero, __L720
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L722
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L722:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L724
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L724:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 0
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L720:
|
|
|
|
__L719:
|
|
lw $s0, 0($sp)
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl list_goto
|
|
list_goto:
|
|
addi $sp, $sp, 0
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L726
|
|
sw $t0, 8($sp)
|
|
la $t0, __str60
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L726:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L728
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L728:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl parse_gosub
|
|
parse_gosub:
|
|
addi $sp, $sp, -4
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, kmalloc
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L730
|
|
sw $t0, 8($sp)
|
|
la $t0, POINTER_SIZE
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
lw $t0, 0($sp)
|
|
mult $t0, $s0
|
|
mflo $t0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L730:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $s0, $sp, 0
|
|
lw $s0, 0($s0)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, GOSUB
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, get_expression
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L732
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L732:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $sp, $sp, -16
|
|
la $s0, skip_whitespace
|
|
sw $s0, 12($sp)
|
|
la $t0, __L734
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L734:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 0($sp)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L735
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L737
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L737:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 0
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L738
|
|
|
|
__L735:
|
|
lw $s0, 4($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
beq $s0, $zero, __L739
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L741
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L741:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L743
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L743:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 0
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L739:
|
|
|
|
__L738:
|
|
lw $s0, 0($sp)
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl list_gosub
|
|
list_gosub:
|
|
addi $sp, $sp, 0
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L745
|
|
sw $t0, 8($sp)
|
|
la $t0, __str61
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L745:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L747
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L747:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl parse_while
|
|
parse_while:
|
|
addi $sp, $sp, -4
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, kmalloc
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L749
|
|
sw $t0, 8($sp)
|
|
la $t0, POINTER_SIZE
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
lw $t0, 0($sp)
|
|
mult $t0, $s0
|
|
mflo $t0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L749:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $s0, $sp, 0
|
|
lw $s0, 0($s0)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, WHILE
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, get_expression
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L751
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L751:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $sp, $sp, -16
|
|
la $s0, skip_whitespace
|
|
sw $s0, 12($sp)
|
|
la $t0, __L753
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L753:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 0($sp)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L754
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L756
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L756:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 0
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L757
|
|
|
|
__L754:
|
|
lw $s0, 4($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
beq $s0, $zero, __L758
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L760
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L760:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L762
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L762:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 0
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L758:
|
|
|
|
__L757:
|
|
lw $s0, 0($sp)
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl list_while
|
|
list_while:
|
|
addi $sp, $sp, 0
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L764
|
|
sw $t0, 8($sp)
|
|
la $t0, __str62
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L764:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L766
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L766:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl parse_run
|
|
parse_run:
|
|
addi $sp, $sp, -4
|
|
addi $sp, $sp, -16
|
|
la $s0, skip_whitespace
|
|
sw $s0, 12($sp)
|
|
la $t0, __L768
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L768:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 4($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
beq $s0, $zero, __L769
|
|
li $s0, 0
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L769:
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, kmalloc
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L771
|
|
sw $t0, 8($sp)
|
|
la $t0, POINTER_SIZE
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L771:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $s0, $sp, 0
|
|
lw $s0, 0($s0)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, RUN
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 0($sp)
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl list_run
|
|
list_run:
|
|
addi $sp, $sp, 0
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L773
|
|
sw $t0, 8($sp)
|
|
la $t0, __str63
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L773:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl parse_end
|
|
parse_end:
|
|
addi $sp, $sp, -36
|
|
addi $sp, $sp, -16
|
|
la $s0, skip_whitespace
|
|
sw $s0, 12($sp)
|
|
la $t0, __L775
|
|
sw $t0, 8($sp)
|
|
lw $t0, 52($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L775:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 36($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L776
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 52
|
|
la $s1, kmalloc
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L778
|
|
sw $t0, 8($sp)
|
|
la $t0, POINTER_SIZE
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
lw $t0, 0($sp)
|
|
mult $t0, $s0
|
|
mflo $t0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L778:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $s0, $sp, 32
|
|
lw $s0, 0($s0)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, END
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 32
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 32($sp)
|
|
sw $s0, 40($sp)
|
|
addi $sp, $sp, 36
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L776:
|
|
addi $sp, $sp, -24
|
|
la $s0, get_word
|
|
sw $s0, 20($sp)
|
|
la $t0, __L780
|
|
sw $t0, 16($sp)
|
|
addi $t0, $sp, 24
|
|
sw $t0, 8($sp)
|
|
lw $t0, 60($sp)
|
|
sw $t0, 4($sp)
|
|
li $t0, 32
|
|
sw $t0, 0($sp)
|
|
lw $t0, 20($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L780:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 12($sp)
|
|
lw $s0, 20($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 24
|
|
addi $sp, $sp, -16
|
|
la $s0, skip_whitespace
|
|
sw $s0, 12($sp)
|
|
la $t0, __L782
|
|
sw $t0, 8($sp)
|
|
lw $t0, 52($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L782:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 36($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
beq $s0, $zero, __L783
|
|
li $s0, 0
|
|
sw $s0, 40($sp)
|
|
addi $sp, $sp, 36
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L783:
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 52
|
|
la $s1, kmalloc
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L785
|
|
sw $t0, 8($sp)
|
|
la $t0, POINTER_SIZE
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
lw $t0, 0($sp)
|
|
mult $t0, $s0
|
|
mflo $t0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L785:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $s0, $sp, 32
|
|
lw $s0, 0($s0)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, END
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -20
|
|
la $s0, strcmp
|
|
sw $s0, 16($sp)
|
|
la $t0, __L787
|
|
sw $t0, 12($sp)
|
|
addi $t0, $sp, 20
|
|
sw $t0, 4($sp)
|
|
la $t0, __str64
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L787:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
seq $s0, $s0, $zero
|
|
addi $sp, $sp, 20
|
|
beq $s0, $zero, __L788
|
|
addi $s0, $sp, 32
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, IF
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L789
|
|
|
|
__L788:
|
|
addi $sp, $sp, -20
|
|
la $s0, strcmp
|
|
sw $s0, 16($sp)
|
|
la $t0, __L791
|
|
sw $t0, 12($sp)
|
|
addi $t0, $sp, 20
|
|
sw $t0, 4($sp)
|
|
la $t0, __str65
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L791:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
seq $s0, $s0, $zero
|
|
addi $sp, $sp, 20
|
|
beq $s0, $zero, __L792
|
|
addi $s0, $sp, 32
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, WHILE
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L793
|
|
|
|
__L792:
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L795
|
|
sw $t0, 8($sp)
|
|
lw $t0, 48($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L795:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 0
|
|
sw $s0, 40($sp)
|
|
addi $sp, $sp, 36
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L793:
|
|
|
|
__L789:
|
|
lw $s0, 32($sp)
|
|
sw $s0, 40($sp)
|
|
addi $sp, $sp, 36
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 36
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl list_end
|
|
list_end:
|
|
addi $sp, $sp, 0
|
|
lw $s0, 0($sp)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, IF
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L796
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L798
|
|
sw $t0, 8($sp)
|
|
la $t0, __str66
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L798:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L799
|
|
|
|
__L796:
|
|
lw $s0, 0($sp)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, WHILE
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L800
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L802
|
|
sw $t0, 8($sp)
|
|
la $t0, __str67
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L802:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L803
|
|
|
|
__L800:
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L805
|
|
sw $t0, 8($sp)
|
|
la $t0, __str68
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L805:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
|
|
__L803:
|
|
|
|
__L799:
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl parse_return
|
|
parse_return:
|
|
addi $sp, $sp, -4
|
|
addi $sp, $sp, -16
|
|
la $s0, skip_whitespace
|
|
sw $s0, 12($sp)
|
|
la $t0, __L807
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L807:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 4($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L808
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, kmalloc
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L810
|
|
sw $t0, 8($sp)
|
|
la $t0, POINTER_SIZE
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L810:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $s0, $sp, 0
|
|
lw $s0, 0($s0)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, RETURN
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 0($sp)
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L808:
|
|
li $s0, 0
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl list_return
|
|
list_return:
|
|
addi $sp, $sp, 0
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L812
|
|
sw $t0, 8($sp)
|
|
la $t0, __str69
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L812:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl parse_list
|
|
parse_list:
|
|
addi $sp, $sp, -4
|
|
addi $sp, $sp, -16
|
|
la $s0, skip_whitespace
|
|
sw $s0, 12($sp)
|
|
la $t0, __L814
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L814:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 4($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L815
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, kmalloc
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L817
|
|
sw $t0, 8($sp)
|
|
la $t0, POINTER_SIZE
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L817:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $s0, $sp, 0
|
|
lw $s0, 0($s0)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, LIST
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 0($sp)
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L815:
|
|
li $s0, 0
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl list_list
|
|
list_list:
|
|
addi $sp, $sp, 0
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L819
|
|
sw $t0, 8($sp)
|
|
la $t0, __str70
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L819:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl get_statement
|
|
get_statement:
|
|
addi $sp, $sp, -32
|
|
addi $sp, $sp, -24
|
|
la $s0, get_word
|
|
sw $s0, 20($sp)
|
|
la $t0, __L821
|
|
sw $t0, 16($sp)
|
|
addi $t0, $sp, 24
|
|
sw $t0, 8($sp)
|
|
lw $t0, 56($sp)
|
|
sw $t0, 4($sp)
|
|
li $t0, 32
|
|
sw $t0, 0($sp)
|
|
lw $t0, 20($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L821:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 12($sp)
|
|
lw $s0, 20($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 24
|
|
addi $sp, $sp, -20
|
|
la $s0, strcmp
|
|
sw $s0, 16($sp)
|
|
la $t0, __L823
|
|
sw $t0, 12($sp)
|
|
addi $t0, $sp, 20
|
|
sw $t0, 4($sp)
|
|
la $t0, __str71
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L823:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
seq $s0, $s0, $zero
|
|
addi $sp, $sp, 20
|
|
beq $s0, $zero, __L824
|
|
addi $sp, $sp, -16
|
|
la $s0, parse_print
|
|
sw $s0, 12($sp)
|
|
la $t0, __L826
|
|
sw $t0, 8($sp)
|
|
lw $t0, 48($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L826:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
sw $s0, 36($sp)
|
|
addi $sp, $sp, 32
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L827
|
|
|
|
__L824:
|
|
addi $sp, $sp, -20
|
|
la $s0, strcmp
|
|
sw $s0, 16($sp)
|
|
la $t0, __L829
|
|
sw $t0, 12($sp)
|
|
addi $t0, $sp, 20
|
|
sw $t0, 4($sp)
|
|
la $t0, __str72
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L829:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
seq $s0, $s0, $zero
|
|
addi $sp, $sp, 20
|
|
beq $s0, $zero, __L830
|
|
addi $sp, $sp, -16
|
|
la $s0, parse_input
|
|
sw $s0, 12($sp)
|
|
la $t0, __L832
|
|
sw $t0, 8($sp)
|
|
lw $t0, 48($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L832:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
sw $s0, 36($sp)
|
|
addi $sp, $sp, 32
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L833
|
|
|
|
__L830:
|
|
addi $sp, $sp, -20
|
|
la $s0, strcmp
|
|
sw $s0, 16($sp)
|
|
la $t0, __L835
|
|
sw $t0, 12($sp)
|
|
addi $t0, $sp, 20
|
|
sw $t0, 4($sp)
|
|
la $t0, __str73
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L835:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
seq $s0, $s0, $zero
|
|
addi $sp, $sp, 20
|
|
beq $s0, $zero, __L836
|
|
addi $sp, $sp, -16
|
|
la $s0, parse_inputstr
|
|
sw $s0, 12($sp)
|
|
la $t0, __L838
|
|
sw $t0, 8($sp)
|
|
lw $t0, 48($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L838:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
sw $s0, 36($sp)
|
|
addi $sp, $sp, 32
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L839
|
|
|
|
__L836:
|
|
addi $sp, $sp, -20
|
|
la $s0, strcmp
|
|
sw $s0, 16($sp)
|
|
la $t0, __L841
|
|
sw $t0, 12($sp)
|
|
addi $t0, $sp, 20
|
|
sw $t0, 4($sp)
|
|
la $t0, __str74
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L841:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
seq $s0, $s0, $zero
|
|
addi $sp, $sp, 20
|
|
beq $s0, $zero, __L842
|
|
addi $sp, $sp, -16
|
|
la $s0, parse_run
|
|
sw $s0, 12($sp)
|
|
la $t0, __L844
|
|
sw $t0, 8($sp)
|
|
lw $t0, 48($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L844:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
sw $s0, 36($sp)
|
|
addi $sp, $sp, 32
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L845
|
|
|
|
__L842:
|
|
addi $sp, $sp, -20
|
|
la $s0, strcmp
|
|
sw $s0, 16($sp)
|
|
la $t0, __L847
|
|
sw $t0, 12($sp)
|
|
addi $t0, $sp, 20
|
|
sw $t0, 4($sp)
|
|
la $t0, __str75
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L847:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
seq $s0, $s0, $zero
|
|
addi $sp, $sp, 20
|
|
beq $s0, $zero, __L848
|
|
addi $sp, $sp, -16
|
|
la $s0, parse_end
|
|
sw $s0, 12($sp)
|
|
la $t0, __L850
|
|
sw $t0, 8($sp)
|
|
lw $t0, 48($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L850:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
sw $s0, 36($sp)
|
|
addi $sp, $sp, 32
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L851
|
|
|
|
__L848:
|
|
addi $sp, $sp, -20
|
|
la $s0, strcmp
|
|
sw $s0, 16($sp)
|
|
la $t0, __L853
|
|
sw $t0, 12($sp)
|
|
addi $t0, $sp, 20
|
|
sw $t0, 4($sp)
|
|
la $t0, __str76
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L853:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
seq $s0, $s0, $zero
|
|
addi $sp, $sp, 20
|
|
beq $s0, $zero, __L854
|
|
addi $sp, $sp, -16
|
|
la $s0, parse_if
|
|
sw $s0, 12($sp)
|
|
la $t0, __L856
|
|
sw $t0, 8($sp)
|
|
lw $t0, 48($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L856:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
sw $s0, 36($sp)
|
|
addi $sp, $sp, 32
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L857
|
|
|
|
__L854:
|
|
addi $sp, $sp, -20
|
|
la $s0, strcmp
|
|
sw $s0, 16($sp)
|
|
la $t0, __L859
|
|
sw $t0, 12($sp)
|
|
addi $t0, $sp, 20
|
|
sw $t0, 4($sp)
|
|
la $t0, __str77
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L859:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
seq $s0, $s0, $zero
|
|
addi $sp, $sp, 20
|
|
beq $s0, $zero, __L860
|
|
addi $sp, $sp, -16
|
|
la $s0, parse_while
|
|
sw $s0, 12($sp)
|
|
la $t0, __L862
|
|
sw $t0, 8($sp)
|
|
lw $t0, 48($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L862:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
sw $s0, 36($sp)
|
|
addi $sp, $sp, 32
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L863
|
|
|
|
__L860:
|
|
addi $sp, $sp, -20
|
|
la $s0, strcmp
|
|
sw $s0, 16($sp)
|
|
la $t0, __L865
|
|
sw $t0, 12($sp)
|
|
addi $t0, $sp, 20
|
|
sw $t0, 4($sp)
|
|
la $t0, __str78
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L865:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
seq $s0, $s0, $zero
|
|
addi $sp, $sp, 20
|
|
beq $s0, $zero, __L866
|
|
addi $sp, $sp, -16
|
|
la $s0, parse_let
|
|
sw $s0, 12($sp)
|
|
la $t0, __L868
|
|
sw $t0, 8($sp)
|
|
lw $t0, 48($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L868:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
sw $s0, 36($sp)
|
|
addi $sp, $sp, 32
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L869
|
|
|
|
__L866:
|
|
addi $sp, $sp, -20
|
|
la $s0, strcmp
|
|
sw $s0, 16($sp)
|
|
la $t0, __L871
|
|
sw $t0, 12($sp)
|
|
addi $t0, $sp, 20
|
|
sw $t0, 4($sp)
|
|
la $t0, __str79
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L871:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
seq $s0, $s0, $zero
|
|
addi $sp, $sp, 20
|
|
beq $s0, $zero, __L872
|
|
addi $sp, $sp, -16
|
|
la $s0, parse_dim
|
|
sw $s0, 12($sp)
|
|
la $t0, __L874
|
|
sw $t0, 8($sp)
|
|
lw $t0, 48($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L874:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
sw $s0, 36($sp)
|
|
addi $sp, $sp, 32
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L875
|
|
|
|
__L872:
|
|
addi $sp, $sp, -20
|
|
la $s0, strcmp
|
|
sw $s0, 16($sp)
|
|
la $t0, __L877
|
|
sw $t0, 12($sp)
|
|
addi $t0, $sp, 20
|
|
sw $t0, 4($sp)
|
|
la $t0, __str80
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L877:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
seq $s0, $s0, $zero
|
|
addi $sp, $sp, 20
|
|
beq $s0, $zero, __L878
|
|
addi $sp, $sp, -16
|
|
la $s0, parse_goto
|
|
sw $s0, 12($sp)
|
|
la $t0, __L880
|
|
sw $t0, 8($sp)
|
|
lw $t0, 48($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L880:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
sw $s0, 36($sp)
|
|
addi $sp, $sp, 32
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L881
|
|
|
|
__L878:
|
|
addi $sp, $sp, -20
|
|
la $s0, strcmp
|
|
sw $s0, 16($sp)
|
|
la $t0, __L883
|
|
sw $t0, 12($sp)
|
|
addi $t0, $sp, 20
|
|
sw $t0, 4($sp)
|
|
la $t0, __str81
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L883:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
seq $s0, $s0, $zero
|
|
addi $sp, $sp, 20
|
|
beq $s0, $zero, __L884
|
|
addi $sp, $sp, -16
|
|
la $s0, parse_gosub
|
|
sw $s0, 12($sp)
|
|
la $t0, __L886
|
|
sw $t0, 8($sp)
|
|
lw $t0, 48($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L886:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
sw $s0, 36($sp)
|
|
addi $sp, $sp, 32
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L887
|
|
|
|
__L884:
|
|
addi $sp, $sp, -20
|
|
la $s0, strcmp
|
|
sw $s0, 16($sp)
|
|
la $t0, __L889
|
|
sw $t0, 12($sp)
|
|
addi $t0, $sp, 20
|
|
sw $t0, 4($sp)
|
|
la $t0, __str82
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L889:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
seq $s0, $s0, $zero
|
|
addi $sp, $sp, 20
|
|
beq $s0, $zero, __L890
|
|
addi $sp, $sp, -16
|
|
la $s0, parse_return
|
|
sw $s0, 12($sp)
|
|
la $t0, __L892
|
|
sw $t0, 8($sp)
|
|
lw $t0, 48($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L892:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
sw $s0, 36($sp)
|
|
addi $sp, $sp, 32
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L893
|
|
|
|
__L890:
|
|
addi $sp, $sp, -20
|
|
la $s0, strcmp
|
|
sw $s0, 16($sp)
|
|
la $t0, __L895
|
|
sw $t0, 12($sp)
|
|
addi $t0, $sp, 20
|
|
sw $t0, 4($sp)
|
|
la $t0, __str83
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L895:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
seq $s0, $s0, $zero
|
|
addi $sp, $sp, 20
|
|
beq $s0, $zero, __L896
|
|
addi $sp, $sp, -16
|
|
la $s0, parse_list
|
|
sw $s0, 12($sp)
|
|
la $t0, __L898
|
|
sw $t0, 8($sp)
|
|
lw $t0, 48($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L898:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
sw $s0, 36($sp)
|
|
addi $sp, $sp, 32
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L899
|
|
|
|
__L896:
|
|
li $s0, 0
|
|
sw $s0, 36($sp)
|
|
addi $sp, $sp, 32
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L899:
|
|
|
|
__L893:
|
|
|
|
__L887:
|
|
|
|
__L881:
|
|
|
|
__L875:
|
|
|
|
__L869:
|
|
|
|
__L863:
|
|
|
|
__L857:
|
|
|
|
__L851:
|
|
|
|
__L845:
|
|
|
|
__L839:
|
|
|
|
__L833:
|
|
|
|
__L827:
|
|
addi $sp, $sp, 32
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl free_statement
|
|
free_statement:
|
|
addi $sp, $sp, 0
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, PRINT
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L900
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L902
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L902:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L904
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L904:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L905
|
|
|
|
__L900:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, INPUT
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L906
|
|
lw $s0, 0($sp)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
li $s1, 2
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
beq $s0, $zero, __L907
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L909
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L909:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
|
|
__L907:
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L911
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L911:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L913
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L913:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L915
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L915:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L916
|
|
|
|
__L906:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, RUN
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L917
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L919
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L919:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L920
|
|
|
|
__L917:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, END
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L921
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L923
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L923:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L924
|
|
|
|
__L921:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, IF
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L925
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L927
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L927:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L929
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L929:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L930
|
|
|
|
__L925:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, WHILE
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L931
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L933
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L933:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L935
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L935:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L936
|
|
|
|
__L931:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, LET
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L937
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L939
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L939:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L941
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L941:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L943
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L943:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L944
|
|
|
|
__L937:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, DIM
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L945
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L947
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L947:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L949
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L949:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L951
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L951:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L952
|
|
|
|
__L945:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, GOTO
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L953
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L955
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L955:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L957
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L957:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L958
|
|
|
|
__L953:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, GOSUB
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L959
|
|
addi $sp, $sp, -16
|
|
la $s0, free_expression
|
|
sw $s0, 12($sp)
|
|
la $t0, __L961
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L961:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L963
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L963:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L964
|
|
|
|
__L959:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, LIST
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L965
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L967
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L967:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
|
|
__L965:
|
|
|
|
__L964:
|
|
|
|
__L958:
|
|
|
|
__L952:
|
|
|
|
__L944:
|
|
|
|
__L936:
|
|
|
|
__L930:
|
|
|
|
__L924:
|
|
|
|
__L920:
|
|
|
|
__L916:
|
|
|
|
__L905:
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
.data
|
|
__str84:
|
|
.asciiz "\n"
|
|
__str85:
|
|
.asciiz " "
|
|
__str86:
|
|
.asciiz "\n"
|
|
__str87:
|
|
.asciiz "SYNTAX ERROR"
|
|
__str88:
|
|
.asciiz "\n>: "
|
|
__str89:
|
|
.asciiz "SYNTAX ERROR"
|
|
__str90:
|
|
.asciiz "RUNTIME ERROR"
|
|
.text
|
|
|
|
.data
|
|
.align 2
|
|
variables:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
statement_list:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
ERR_VAL:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
INT_VAL:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
STR_VAL:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
do_end:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
do_if:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
do_while:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
do_skip_if:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
do_skip_while:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
do_gosub:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
do_goto:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
do_return:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
goto_label:
|
|
.space 4
|
|
.text
|
|
.data
|
|
.align 2
|
|
gosubs:
|
|
.space 128
|
|
.text
|
|
.data
|
|
.align 2
|
|
current_gosub:
|
|
.space 4
|
|
.text
|
|
|
|
.globl create_value
|
|
create_value:
|
|
addi $sp, $sp, -4
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, kmalloc
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L969
|
|
sw $t0, 8($sp)
|
|
la $t0, POINTER_SIZE
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
lw $t0, 0($sp)
|
|
mult $t0, $s0
|
|
mflo $t0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L969:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $s0, $sp, 0
|
|
lw $s0, 0($s0)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 8($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 0
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 4($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 0($sp)
|
|
sw $s0, 12($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 4
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
.globl create_statement_entry
|
|
create_statement_entry:
|
|
addi $sp, $sp, -4
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, kmalloc
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L971
|
|
sw $t0, 8($sp)
|
|
la $t0, POINTER_SIZE
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
lw $t0, 0($sp)
|
|
mult $t0, $s0
|
|
mflo $t0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L971:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $s0, $sp, 0
|
|
lw $s0, 0($s0)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 8($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 0
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 4($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 0($sp)
|
|
sw $s0, 12($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 4
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
.globl free_statement_entry
|
|
free_statement_entry:
|
|
addi $sp, $sp, 0
|
|
addi $sp, $sp, -16
|
|
la $s0, free_statement
|
|
sw $s0, 12($sp)
|
|
la $t0, __L973
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 0
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L973:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L975
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L975:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl free_value
|
|
free_value:
|
|
addi $sp, $sp, 0
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, STR_VAL
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L976
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L978
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L978:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
|
|
__L976:
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L980
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L980:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl strlen
|
|
strlen:
|
|
addi $sp, $sp, -4
|
|
addi $s0, $sp, 0
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L981:
|
|
lw $s0, 4($sp)
|
|
lb $s0, 0($s0)
|
|
beq $s0, $zero, __L982
|
|
addi $s0, $sp, 0
|
|
lw $s1, 0($sp)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 4
|
|
lw $s1, 4($sp)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L981
|
|
|
|
__L982:
|
|
lw $s0, 0($sp)
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl strcpy
|
|
strcpy:
|
|
addi $sp, $sp, 0
|
|
|
|
__L983:
|
|
lw $s0, 0($sp)
|
|
lb $s0, 0($s0)
|
|
beq $s0, $zero, __L984
|
|
lw $s0, 4($sp)
|
|
lw $s1, 0($sp)
|
|
lb $s1, 0($s1)
|
|
sb $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 4
|
|
lw $s1, 4($sp)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 0
|
|
lw $s1, 0($sp)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L983
|
|
|
|
__L984:
|
|
lw $s0, 4($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 24
|
|
sra $s1, $s1, 24
|
|
sb $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 0
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
.globl strncpy
|
|
strncpy:
|
|
addi $sp, $sp, 0
|
|
|
|
__L985:
|
|
lw $s0, 0($sp)
|
|
beq $s0, $zero, __L988
|
|
lw $s1, 4($sp)
|
|
lb $s1, 0($s1)
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L988:
|
|
beq $s0, $zero, __L986
|
|
lw $s0, 8($sp)
|
|
lw $s1, 4($sp)
|
|
lb $s1, 0($s1)
|
|
sb $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 8
|
|
lw $s1, 8($sp)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 4
|
|
lw $s1, 4($sp)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 0
|
|
lw $s1, 0($sp)
|
|
li $s2, 1
|
|
sub $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L985
|
|
|
|
__L986:
|
|
lw $s0, 8($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 24
|
|
sra $s1, $s1, 24
|
|
sb $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 0
|
|
lw $ra, 16($sp)
|
|
jr $ra
|
|
|
|
.globl duplicate_str
|
|
duplicate_str:
|
|
addi $sp, $sp, -12
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 28
|
|
la $s1, strlen
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L990
|
|
sw $t0, 8($sp)
|
|
lw $t0, 32($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L990:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, kmalloc
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L992
|
|
sw $t0, 8($sp)
|
|
la $t0, CHAR_SIZE
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $s0, 28($sp)
|
|
li $s1, 1
|
|
add $s0, $s0, $s1
|
|
lw $t0, 0($sp)
|
|
mult $t0, $s0
|
|
mflo $t0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L992:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $s0, $sp, 4
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L993:
|
|
lw $s0, 4($sp)
|
|
lw $s1, 8($sp)
|
|
slt $s0, $s0, $s1
|
|
beq $s0, $zero, __L994
|
|
j __L995
|
|
|
|
__L996:
|
|
addi $s0, $sp, 4
|
|
lw $s1, 4($sp)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L993
|
|
|
|
__L995:
|
|
addi $s0, $sp, 0
|
|
lw $s0, 0($s0)
|
|
lw $s1, 4($sp)
|
|
add $s0, $s0, $s1
|
|
lw $s1, 12($sp)
|
|
lw $s2, 4($sp)
|
|
add $s1, $s1, $s2
|
|
lb $s1, 0($s1)
|
|
sb $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L996
|
|
|
|
__L994:
|
|
addi $s0, $sp, 0
|
|
lw $s0, 0($s0)
|
|
lw $s1, 8($sp)
|
|
add $s0, $s0, $s1
|
|
li $s1, 0
|
|
sll $s1, $s1, 24
|
|
sra $s1, $s1, 24
|
|
sb $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 0($sp)
|
|
sw $s0, 16($sp)
|
|
addi $sp, $sp, 12
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 12
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl concat
|
|
concat:
|
|
addi $sp, $sp, -16
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 28
|
|
la $s1, strlen
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L998
|
|
sw $t0, 8($sp)
|
|
lw $t0, 40($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L998:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 24
|
|
la $s1, strlen
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1000
|
|
sw $t0, 8($sp)
|
|
lw $t0, 36($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1000:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, kmalloc
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1002
|
|
sw $t0, 8($sp)
|
|
la $t0, CHAR_SIZE
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $s0, 28($sp)
|
|
lw $s1, 24($sp)
|
|
add $s0, $s0, $s1
|
|
li $s1, 1
|
|
add $s0, $s0, $s1
|
|
lw $t0, 0($sp)
|
|
mult $t0, $s0
|
|
mflo $t0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1002:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $s0, $sp, 12
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L1003:
|
|
lw $s0, 12($sp)
|
|
lw $s1, 8($sp)
|
|
slt $s0, $s0, $s1
|
|
beq $s0, $zero, __L1004
|
|
j __L1005
|
|
|
|
__L1006:
|
|
addi $s0, $sp, 12
|
|
lw $s1, 12($sp)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L1003
|
|
|
|
__L1005:
|
|
addi $s0, $sp, 0
|
|
lw $s0, 0($s0)
|
|
lw $s1, 12($sp)
|
|
add $s0, $s0, $s1
|
|
lw $s1, 20($sp)
|
|
lw $s2, 12($sp)
|
|
add $s1, $s1, $s2
|
|
lb $s1, 0($s1)
|
|
sb $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L1006
|
|
|
|
__L1004:
|
|
addi $s0, $sp, 12
|
|
lw $s1, 8($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L1007:
|
|
lw $s0, 12($sp)
|
|
lw $s1, 8($sp)
|
|
lw $s2, 4($sp)
|
|
add $s1, $s1, $s2
|
|
slt $s0, $s0, $s1
|
|
beq $s0, $zero, __L1008
|
|
j __L1009
|
|
|
|
__L1010:
|
|
addi $s0, $sp, 12
|
|
lw $s1, 12($sp)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L1007
|
|
|
|
__L1009:
|
|
addi $s0, $sp, 0
|
|
lw $s0, 0($s0)
|
|
lw $s1, 12($sp)
|
|
add $s0, $s0, $s1
|
|
lw $s1, 16($sp)
|
|
lw $s2, 12($sp)
|
|
lw $s3, 8($sp)
|
|
sub $s2, $s2, $s3
|
|
add $s1, $s1, $s2
|
|
lb $s1, 0($s1)
|
|
sb $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L1010
|
|
|
|
__L1008:
|
|
addi $s0, $sp, 0
|
|
lw $s0, 0($s0)
|
|
lw $s1, 12($sp)
|
|
add $s0, $s0, $s1
|
|
li $s1, 0
|
|
sll $s1, $s1, 24
|
|
sra $s1, $s1, 24
|
|
sb $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 0($sp)
|
|
sw $s0, 24($sp)
|
|
addi $sp, $sp, 16
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 16
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
.globl add_values
|
|
add_values:
|
|
addi $sp, $sp, -4
|
|
lw $s0, 8($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, INT_VAL
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1012
|
|
lw $s1, 4($sp)
|
|
li $s2, 0
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
la $s2, INT_VAL
|
|
lw $s2, 0($s2)
|
|
seq $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L1012:
|
|
beq $s0, $zero, __L1013
|
|
addi $s0, $sp, 8
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 8($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
lw $s2, 4($sp)
|
|
li $s3, 1
|
|
sll $s3, $s3, 2
|
|
add $s2, $s2, $s3
|
|
lw $s2, 0($s2)
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1015
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1015:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 8($sp)
|
|
sw $s0, 12($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
j __L1016
|
|
|
|
__L1013:
|
|
lw $s0, 8($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, STR_VAL
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1018
|
|
lw $s1, 4($sp)
|
|
li $s2, 0
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
la $s2, STR_VAL
|
|
lw $s2, 0($s2)
|
|
seq $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L1018:
|
|
beq $s0, $zero, __L1019
|
|
addi $sp, $sp, -24
|
|
addi $s0, $sp, 24
|
|
la $s1, concat
|
|
sw $s1, 20($sp)
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1021
|
|
sw $t0, 12($sp)
|
|
lw $t0, 32($sp)
|
|
sw $t0, 4($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 4($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 20($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1021:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
lw $s1, 20($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 24
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1023
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1023:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1025
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1025:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $s0, $sp, 8
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 0($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 8($sp)
|
|
sw $s0, 12($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
j __L1026
|
|
|
|
__L1019:
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1028
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1028:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1030
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1030:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -24
|
|
addi $s0, $sp, 32
|
|
la $s1, create_value
|
|
sw $s1, 20($sp)
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1032
|
|
sw $t0, 12($sp)
|
|
la $t0, ERR_VAL
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
li $t0, 0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 20($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1032:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
lw $s1, 20($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 24
|
|
lw $s0, 8($sp)
|
|
sw $s0, 12($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
__L1026:
|
|
|
|
__L1016:
|
|
addi $sp, $sp, 4
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
.globl subtract_values
|
|
subtract_values:
|
|
addi $sp, $sp, -4
|
|
lw $s0, 8($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, INT_VAL
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1034
|
|
lw $s1, 4($sp)
|
|
li $s2, 0
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
la $s2, INT_VAL
|
|
lw $s2, 0($s2)
|
|
seq $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L1034:
|
|
beq $s0, $zero, __L1035
|
|
addi $s0, $sp, 8
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 8($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
lw $s2, 4($sp)
|
|
li $s3, 1
|
|
sll $s3, $s3, 2
|
|
add $s2, $s2, $s3
|
|
lw $s2, 0($s2)
|
|
sub $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1037
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1037:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 8($sp)
|
|
sw $s0, 12($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
j __L1038
|
|
|
|
__L1035:
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1040
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1040:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1042
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1042:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -24
|
|
addi $s0, $sp, 32
|
|
la $s1, create_value
|
|
sw $s1, 20($sp)
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1044
|
|
sw $t0, 12($sp)
|
|
la $t0, ERR_VAL
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
li $t0, 0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 20($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1044:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
lw $s1, 20($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 24
|
|
lw $s0, 8($sp)
|
|
sw $s0, 12($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
__L1038:
|
|
addi $sp, $sp, 4
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
.globl multiply_values
|
|
multiply_values:
|
|
addi $sp, $sp, -4
|
|
lw $s0, 8($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, INT_VAL
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1046
|
|
lw $s1, 4($sp)
|
|
li $s2, 0
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
la $s2, INT_VAL
|
|
lw $s2, 0($s2)
|
|
seq $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L1046:
|
|
beq $s0, $zero, __L1047
|
|
addi $s0, $sp, 8
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 8($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
lw $s2, 4($sp)
|
|
li $s3, 1
|
|
sll $s3, $s3, 2
|
|
add $s2, $s2, $s3
|
|
lw $s2, 0($s2)
|
|
mult $s1, $s2
|
|
mflo $s1
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1049
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1049:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 8($sp)
|
|
sw $s0, 12($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
j __L1050
|
|
|
|
__L1047:
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1052
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1052:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1054
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1054:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -24
|
|
addi $s0, $sp, 32
|
|
la $s1, create_value
|
|
sw $s1, 20($sp)
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1056
|
|
sw $t0, 12($sp)
|
|
la $t0, ERR_VAL
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
li $t0, 0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 20($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1056:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
lw $s1, 20($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 24
|
|
lw $s0, 8($sp)
|
|
sw $s0, 12($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
__L1050:
|
|
addi $sp, $sp, 4
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
.globl divide_values
|
|
divide_values:
|
|
addi $sp, $sp, -4
|
|
lw $s0, 8($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, INT_VAL
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1058
|
|
lw $s1, 4($sp)
|
|
li $s2, 0
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
la $s2, INT_VAL
|
|
lw $s2, 0($s2)
|
|
seq $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L1058:
|
|
beq $s0, $zero, __L1059
|
|
addi $s0, $sp, 8
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 8($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
lw $s2, 4($sp)
|
|
li $s3, 1
|
|
sll $s3, $s3, 2
|
|
add $s2, $s2, $s3
|
|
lw $s2, 0($s2)
|
|
div $s1, $s2
|
|
mflo $s1
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1061
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1061:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 8($sp)
|
|
sw $s0, 12($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
j __L1062
|
|
|
|
__L1059:
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1064
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1064:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1066
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1066:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -24
|
|
addi $s0, $sp, 32
|
|
la $s1, create_value
|
|
sw $s1, 20($sp)
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1068
|
|
sw $t0, 12($sp)
|
|
la $t0, ERR_VAL
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
li $t0, 0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 20($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1068:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
lw $s1, 20($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 24
|
|
lw $s0, 8($sp)
|
|
sw $s0, 12($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
__L1062:
|
|
addi $sp, $sp, 4
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
.globl equals_values
|
|
equals_values:
|
|
addi $sp, $sp, -4
|
|
lw $s0, 8($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, INT_VAL
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1070
|
|
lw $s1, 4($sp)
|
|
li $s2, 0
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
la $s2, INT_VAL
|
|
lw $s2, 0($s2)
|
|
seq $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L1070:
|
|
beq $s0, $zero, __L1071
|
|
addi $s0, $sp, 0
|
|
lw $s1, 8($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
lw $s2, 4($sp)
|
|
li $s3, 1
|
|
sll $s3, $s3, 2
|
|
add $s2, $s2, $s3
|
|
lw $s2, 0($s2)
|
|
seq $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 8
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 0($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1073
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1073:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 8($sp)
|
|
sw $s0, 12($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
j __L1074
|
|
|
|
__L1071:
|
|
lw $s0, 8($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, STR_VAL
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1076
|
|
lw $s1, 4($sp)
|
|
li $s2, 0
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
la $s2, STR_VAL
|
|
lw $s2, 0($s2)
|
|
seq $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L1076:
|
|
beq $s0, $zero, __L1077
|
|
addi $sp, $sp, -24
|
|
addi $s0, $sp, 24
|
|
la $s1, strcmp
|
|
sw $s1, 20($sp)
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1079
|
|
sw $t0, 12($sp)
|
|
lw $t0, 32($sp)
|
|
sw $t0, 4($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 4($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 20($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1079:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
lw $s1, 20($sp)
|
|
move $s1, $t0
|
|
seq $s1, $s1, $zero
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 24
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1081
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1081:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $s0, $sp, 8
|
|
lw $s0, 0($s0)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, INT_VAL
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 8
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 0($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1083
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1083:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 8($sp)
|
|
sw $s0, 12($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
j __L1084
|
|
|
|
__L1077:
|
|
lw $s0, 8($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, ERR_VAL
|
|
lw $s1, 0($s1)
|
|
sne $s0, $s0, $s1
|
|
beq $s0, $zero, __L1086
|
|
lw $s1, 4($sp)
|
|
li $s2, 0
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
la $s2, ERR_VAL
|
|
lw $s2, 0($s2)
|
|
sne $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L1086:
|
|
beq $s0, $zero, __L1087
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1089
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1089:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1091
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1091:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -20
|
|
la $s0, create_value
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1093
|
|
sw $t0, 12($sp)
|
|
la $t0, INT_VAL
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
li $t0, 0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1093:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 20
|
|
sw $s0, 12($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
j __L1094
|
|
|
|
__L1087:
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1096
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1096:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1098
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1098:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -20
|
|
la $s0, create_value
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1100
|
|
sw $t0, 12($sp)
|
|
la $t0, ERR_VAL
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
li $t0, 0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1100:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 20
|
|
sw $s0, 12($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
__L1094:
|
|
|
|
__L1084:
|
|
|
|
__L1074:
|
|
addi $sp, $sp, 4
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
.globl not_equals_values
|
|
not_equals_values:
|
|
addi $sp, $sp, -4
|
|
lw $s0, 8($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, INT_VAL
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1102
|
|
lw $s1, 4($sp)
|
|
li $s2, 0
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
la $s2, INT_VAL
|
|
lw $s2, 0($s2)
|
|
seq $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L1102:
|
|
beq $s0, $zero, __L1103
|
|
addi $s0, $sp, 0
|
|
lw $s1, 8($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
lw $s2, 4($sp)
|
|
li $s3, 1
|
|
sll $s3, $s3, 2
|
|
add $s2, $s2, $s3
|
|
lw $s2, 0($s2)
|
|
sne $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 8
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 0($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1105
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1105:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 8($sp)
|
|
sw $s0, 12($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
j __L1106
|
|
|
|
__L1103:
|
|
lw $s0, 8($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, STR_VAL
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1108
|
|
lw $s1, 4($sp)
|
|
li $s2, 0
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
la $s2, STR_VAL
|
|
lw $s2, 0($s2)
|
|
seq $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L1108:
|
|
beq $s0, $zero, __L1109
|
|
addi $sp, $sp, -24
|
|
addi $s0, $sp, 24
|
|
la $s1, strcmp
|
|
sw $s1, 20($sp)
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1111
|
|
sw $t0, 12($sp)
|
|
lw $t0, 32($sp)
|
|
sw $t0, 4($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 4($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 20($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1111:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
lw $s1, 20($sp)
|
|
move $s1, $t0
|
|
seq $s1, $s1, $zero
|
|
seq $s1, $s1, $zero
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 24
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1113
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1113:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $s0, $sp, 8
|
|
lw $s0, 0($s0)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, INT_VAL
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 8
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 0($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1115
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1115:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 8($sp)
|
|
sw $s0, 12($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
j __L1116
|
|
|
|
__L1109:
|
|
lw $s0, 8($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, ERR_VAL
|
|
lw $s1, 0($s1)
|
|
sne $s0, $s0, $s1
|
|
beq $s0, $zero, __L1118
|
|
lw $s1, 4($sp)
|
|
li $s2, 0
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
la $s2, ERR_VAL
|
|
lw $s2, 0($s2)
|
|
sne $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L1118:
|
|
beq $s0, $zero, __L1119
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1121
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1121:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1123
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1123:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -20
|
|
la $s0, create_value
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1125
|
|
sw $t0, 12($sp)
|
|
la $t0, INT_VAL
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
li $t0, 1
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1125:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 20
|
|
sw $s0, 12($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
j __L1126
|
|
|
|
__L1119:
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1128
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1128:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1130
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1130:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -20
|
|
la $s0, create_value
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1132
|
|
sw $t0, 12($sp)
|
|
la $t0, ERR_VAL
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
li $t0, 0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1132:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 20
|
|
sw $s0, 12($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
__L1126:
|
|
|
|
__L1116:
|
|
|
|
__L1106:
|
|
addi $sp, $sp, 4
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
.globl greater_than_values
|
|
greater_than_values:
|
|
addi $sp, $sp, 0
|
|
lw $s0, 4($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, INT_VAL
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1134
|
|
lw $s1, 0($sp)
|
|
li $s2, 0
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
la $s2, INT_VAL
|
|
lw $s2, 0($s2)
|
|
seq $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L1134:
|
|
beq $s0, $zero, __L1135
|
|
addi $s0, $sp, 4
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 4($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
lw $s2, 0($sp)
|
|
li $s3, 1
|
|
sll $s3, $s3, 2
|
|
add $s2, $s2, $s3
|
|
lw $s2, 0($s2)
|
|
sgt $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1137
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1137:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 4($sp)
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
j __L1138
|
|
|
|
__L1135:
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1140
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1140:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1142
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1142:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -20
|
|
la $s0, create_value
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1144
|
|
sw $t0, 12($sp)
|
|
la $t0, ERR_VAL
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
li $t0, 0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1144:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 20
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
__L1138:
|
|
addi $sp, $sp, 0
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
.globl less_than_values
|
|
less_than_values:
|
|
addi $sp, $sp, 0
|
|
lw $s0, 4($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, INT_VAL
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1146
|
|
lw $s1, 0($sp)
|
|
li $s2, 0
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
la $s2, INT_VAL
|
|
lw $s2, 0($s2)
|
|
seq $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L1146:
|
|
beq $s0, $zero, __L1147
|
|
addi $s0, $sp, 4
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 4($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
lw $s2, 0($sp)
|
|
li $s3, 1
|
|
sll $s3, $s3, 2
|
|
add $s2, $s2, $s3
|
|
lw $s2, 0($s2)
|
|
slt $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1149
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1149:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 4($sp)
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
j __L1150
|
|
|
|
__L1147:
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1152
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1152:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1154
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1154:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -20
|
|
la $s0, create_value
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1156
|
|
sw $t0, 12($sp)
|
|
la $t0, ERR_VAL
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
li $t0, 0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1156:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 20
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
__L1150:
|
|
addi $sp, $sp, 0
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
.globl and_values
|
|
and_values:
|
|
addi $sp, $sp, 0
|
|
lw $s0, 4($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, INT_VAL
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1158
|
|
lw $s1, 0($sp)
|
|
li $s2, 0
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
la $s2, INT_VAL
|
|
lw $s2, 0($s2)
|
|
seq $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L1158:
|
|
beq $s0, $zero, __L1159
|
|
addi $s0, $sp, 4
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 4($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
beq $s1, $zero, __L1161
|
|
lw $s2, 0($sp)
|
|
li $s3, 1
|
|
sll $s3, $s3, 2
|
|
add $s2, $s2, $s3
|
|
lw $s2, 0($s2)
|
|
sne $s2, $s2, $zero
|
|
move $s1, $s2
|
|
|
|
__L1161:
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1163
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1163:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 4($sp)
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
j __L1164
|
|
|
|
__L1159:
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1166
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1166:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1168
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1168:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -20
|
|
la $s0, create_value
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1170
|
|
sw $t0, 12($sp)
|
|
la $t0, ERR_VAL
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
li $t0, 0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1170:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 20
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
__L1164:
|
|
addi $sp, $sp, 0
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
.globl or_values
|
|
or_values:
|
|
addi $sp, $sp, 0
|
|
lw $s0, 4($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, INT_VAL
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1172
|
|
lw $s1, 0($sp)
|
|
li $s2, 0
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
la $s2, INT_VAL
|
|
lw $s2, 0($s2)
|
|
seq $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L1172:
|
|
beq $s0, $zero, __L1173
|
|
addi $s0, $sp, 4
|
|
lw $s0, 0($s0)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 4($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sne $s1, $s1, $zero
|
|
bne $s1, $zero, __L1175
|
|
lw $s2, 0($sp)
|
|
li $s3, 1
|
|
sll $s3, $s3, 2
|
|
add $s2, $s2, $s3
|
|
lw $s2, 0($s2)
|
|
sne $s2, $s2, $zero
|
|
move $s1, $s2
|
|
|
|
__L1175:
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1177
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1177:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 4($sp)
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
j __L1178
|
|
|
|
__L1173:
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1180
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1180:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1182
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1182:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -20
|
|
la $s0, create_value
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1184
|
|
sw $t0, 12($sp)
|
|
la $t0, ERR_VAL
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
li $t0, 0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1184:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 20
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
__L1178:
|
|
addi $sp, $sp, 0
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
.globl strfunc
|
|
strfunc:
|
|
addi $sp, $sp, -36
|
|
addi $s0, $sp, 28
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 36($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, INT_VAL
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1185
|
|
addi $s0, $sp, 32
|
|
lw $s1, 36($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 4
|
|
li $s1, 15
|
|
add $s0, $s0, $s1
|
|
li $s1, 0
|
|
sll $s1, $s1, 24
|
|
sra $s1, $s1, 24
|
|
sb $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 20
|
|
addi $s1, $sp, 4
|
|
li $s2, 14
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 32($sp)
|
|
li $s1, 0
|
|
slt $s0, $s0, $s1
|
|
beq $s0, $zero, __L1186
|
|
addi $s0, $sp, 32
|
|
lw $s1, 32($sp)
|
|
sub $s1, $zero, $s1
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 28
|
|
li $s1, 1
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L1186:
|
|
lw $s0, 32($sp)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L1187
|
|
lw $s0, 20($sp)
|
|
li $s1, 48
|
|
sll $s1, $s1, 24
|
|
sra $s1, $s1, 24
|
|
sb $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 20
|
|
lw $s1, 20($sp)
|
|
li $s2, 1
|
|
sub $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L1188
|
|
|
|
__L1187:
|
|
|
|
__L1189:
|
|
lw $s0, 32($sp)
|
|
beq $s0, $zero, __L1190
|
|
addi $s0, $sp, 0
|
|
lw $s1, 32($sp)
|
|
li $s2, 10
|
|
div $s1, $s2
|
|
mfhi $s1
|
|
li $s2, 48
|
|
add $s1, $s1, $s2
|
|
sll $s1, $s1, 24
|
|
sra $s1, $s1, 24
|
|
sb $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 20($sp)
|
|
lb $s1, 0($sp)
|
|
sb $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 20
|
|
lw $s1, 20($sp)
|
|
li $s2, 1
|
|
sub $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 32
|
|
lw $s1, 32($sp)
|
|
li $s2, 10
|
|
div $s1, $s2
|
|
mflo $s1
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L1189
|
|
|
|
__L1190:
|
|
|
|
__L1188:
|
|
lw $s0, 28($sp)
|
|
beq $s0, $zero, __L1191
|
|
lw $s0, 20($sp)
|
|
li $s1, 45
|
|
sll $s1, $s1, 24
|
|
sra $s1, $s1, 24
|
|
sb $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 20
|
|
lw $s1, 20($sp)
|
|
li $s2, 1
|
|
sub $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L1191:
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 44
|
|
la $s1, kmalloc
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1193
|
|
sw $t0, 8($sp)
|
|
la $t0, CHAR_SIZE
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
addi $s0, $sp, 24
|
|
lw $s1, 40($sp)
|
|
sub $s0, $s0, $s1
|
|
li $s1, 16
|
|
add $s0, $s0, $s1
|
|
lw $t0, 0($sp)
|
|
mult $t0, $s0
|
|
mflo $t0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1193:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $sp, $sp, -20
|
|
la $s0, strcpy
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1195
|
|
sw $t0, 12($sp)
|
|
lw $t0, 44($sp)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 40($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1195:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 20
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1197
|
|
sw $t0, 8($sp)
|
|
lw $t0, 52($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1197:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -20
|
|
la $s0, create_value
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1199
|
|
sw $t0, 12($sp)
|
|
la $t0, STR_VAL
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 44($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1199:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 20
|
|
sw $s0, 40($sp)
|
|
addi $sp, $sp, 36
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L1200
|
|
|
|
__L1185:
|
|
lw $s0, 36($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, STR_VAL
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1201
|
|
lw $s0, 36($sp)
|
|
sw $s0, 40($sp)
|
|
addi $sp, $sp, 36
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L1202
|
|
|
|
__L1201:
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1204
|
|
sw $t0, 8($sp)
|
|
lw $t0, 52($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1204:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -20
|
|
la $s0, create_value
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1206
|
|
sw $t0, 12($sp)
|
|
la $t0, ERR_VAL
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
li $t0, 0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1206:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 20
|
|
sw $s0, 40($sp)
|
|
addi $sp, $sp, 36
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L1202:
|
|
|
|
__L1200:
|
|
addi $sp, $sp, 36
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl substring
|
|
substring:
|
|
addi $sp, $sp, -20
|
|
lw $s0, 28($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, STR_VAL
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1209
|
|
lw $s1, 24($sp)
|
|
li $s2, 0
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
la $s2, INT_VAL
|
|
lw $s2, 0($s2)
|
|
seq $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L1209:
|
|
beq $s0, $zero, __L1210
|
|
lw $s1, 20($sp)
|
|
li $s2, 0
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
la $s2, INT_VAL
|
|
lw $s2, 0($s2)
|
|
seq $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L1210:
|
|
beq $s0, $zero, __L1211
|
|
addi $s0, $sp, 4
|
|
lw $s1, 28($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 28
|
|
la $s1, strlen
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1213
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1213:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $s0, $sp, 16
|
|
lw $s1, 24($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 12
|
|
lw $s1, 20($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 16($sp)
|
|
li $s1, 0
|
|
slt $s0, $s0, $s1
|
|
beq $s0, $zero, __L1214
|
|
addi $s0, $sp, 16
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L1214:
|
|
lw $s0, 16($sp)
|
|
lw $s1, 8($sp)
|
|
slt $s0, $s0, $s1
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L1215
|
|
addi $s0, $sp, 16
|
|
lw $s1, 8($sp)
|
|
li $s2, 1
|
|
sub $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L1215:
|
|
lw $s0, 12($sp)
|
|
li $s1, 0
|
|
slt $s0, $s0, $s1
|
|
beq $s0, $zero, __L1216
|
|
addi $s0, $sp, 12
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L1216:
|
|
lw $s0, 12($sp)
|
|
lw $s1, 8($sp)
|
|
slt $s0, $s0, $s1
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L1217
|
|
addi $s0, $sp, 12
|
|
lw $s1, 8($sp)
|
|
li $s2, 1
|
|
sub $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L1217:
|
|
lw $s0, 16($sp)
|
|
lw $s1, 12($sp)
|
|
sgt $s0, $s0, $s1
|
|
beq $s0, $zero, __L1218
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1220
|
|
sw $t0, 8($sp)
|
|
lw $t0, 44($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1220:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1222
|
|
sw $t0, 8($sp)
|
|
lw $t0, 40($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1222:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1224
|
|
sw $t0, 8($sp)
|
|
lw $t0, 36($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1224:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 24
|
|
la $s1, kmalloc
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1226
|
|
sw $t0, 8($sp)
|
|
la $t0, CHAR_SIZE
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1226:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
lw $s0, 4($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 24
|
|
sra $s1, $s1, 24
|
|
sb $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -20
|
|
la $s0, create_value
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1228
|
|
sw $t0, 12($sp)
|
|
la $t0, STR_VAL
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1228:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 20
|
|
sw $s0, 32($sp)
|
|
addi $sp, $sp, 20
|
|
lw $ra, 16($sp)
|
|
jr $ra
|
|
j __L1229
|
|
|
|
__L1218:
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, kmalloc
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1231
|
|
sw $t0, 8($sp)
|
|
la $t0, CHAR_SIZE
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $s0, 32($sp)
|
|
lw $s1, 36($sp)
|
|
sub $s0, $s0, $s1
|
|
li $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $t0, 0($sp)
|
|
mult $t0, $s0
|
|
mflo $t0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1231:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $sp, $sp, -24
|
|
la $s0, strncpy
|
|
sw $s0, 20($sp)
|
|
la $t0, __L1233
|
|
sw $t0, 16($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 8($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 4($sp)
|
|
lw $s0, 40($sp)
|
|
lw $t0, 4($sp)
|
|
add $t0, $t0, $s0
|
|
sw $t0, 4($sp)
|
|
lw $t0, 36($sp)
|
|
sw $t0, 0($sp)
|
|
lw $s0, 40($sp)
|
|
lw $t0, 0($sp)
|
|
sub $t0, $t0, $s0
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 20($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1233:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 12($sp)
|
|
lw $s0, 20($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 24
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1235
|
|
sw $t0, 8($sp)
|
|
lw $t0, 44($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1235:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1237
|
|
sw $t0, 8($sp)
|
|
lw $t0, 40($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1237:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1239
|
|
sw $t0, 8($sp)
|
|
lw $t0, 36($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1239:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -20
|
|
la $s0, create_value
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1241
|
|
sw $t0, 12($sp)
|
|
la $t0, STR_VAL
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1241:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 20
|
|
sw $s0, 32($sp)
|
|
addi $sp, $sp, 20
|
|
lw $ra, 16($sp)
|
|
jr $ra
|
|
|
|
__L1229:
|
|
j __L1242
|
|
|
|
__L1211:
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1244
|
|
sw $t0, 8($sp)
|
|
lw $t0, 44($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1244:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1246
|
|
sw $t0, 8($sp)
|
|
lw $t0, 40($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1246:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1248
|
|
sw $t0, 8($sp)
|
|
lw $t0, 36($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1248:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -20
|
|
la $s0, create_value
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1250
|
|
sw $t0, 12($sp)
|
|
la $t0, ERR_VAL
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
li $t0, 0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1250:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 20
|
|
sw $s0, 32($sp)
|
|
addi $sp, $sp, 20
|
|
lw $ra, 16($sp)
|
|
jr $ra
|
|
|
|
__L1242:
|
|
addi $sp, $sp, 20
|
|
lw $ra, 16($sp)
|
|
jr $ra
|
|
|
|
.globl evaluate
|
|
evaluate:
|
|
addi $sp, $sp, -24
|
|
lw $s0, 24($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, INT_TOKEN
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1251
|
|
addi $sp, $sp, -20
|
|
la $s0, create_value
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1253
|
|
sw $t0, 12($sp)
|
|
la $t0, INT_VAL
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 44($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1253:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 20
|
|
sw $s0, 28($sp)
|
|
addi $sp, $sp, 24
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L1254
|
|
|
|
__L1251:
|
|
lw $s0, 24($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, STR_TOKEN
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1255
|
|
addi $sp, $sp, -32
|
|
la $s0, create_value
|
|
sw $s0, 28($sp)
|
|
la $t0, __L1258
|
|
sw $t0, 24($sp)
|
|
la $t0, STR_VAL
|
|
lw $t0, 0($t0)
|
|
sw $t0, 16($sp)
|
|
la $t0, duplicate_str
|
|
sw $t0, 12($sp)
|
|
la $t0, __L1259
|
|
sw $t0, 8($sp)
|
|
lw $t0, 56($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1259:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
sw $t0, 12($sp)
|
|
lw $t0, 28($sp)
|
|
addi $sp, $sp, 12
|
|
jr $t0
|
|
|
|
__L1258:
|
|
addi $sp, $sp, -12
|
|
lw $t0, 20($sp)
|
|
lw $s0, 28($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 32
|
|
sw $s0, 28($sp)
|
|
addi $sp, $sp, 24
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L1260
|
|
|
|
__L1255:
|
|
lw $s0, 24($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, PLUS
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1261
|
|
addi $sp, $sp, -32
|
|
la $s0, add_values
|
|
sw $s0, 28($sp)
|
|
la $t0, __L1265
|
|
sw $t0, 24($sp)
|
|
la $t0, evaluate
|
|
sw $t0, 16($sp)
|
|
la $t0, __L1266
|
|
sw $t0, 12($sp)
|
|
lw $t0, 56($sp)
|
|
sw $t0, 4($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 4($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 4
|
|
jr $t0
|
|
|
|
__L1266:
|
|
addi $sp, $sp, -4
|
|
lw $t0, 8($sp)
|
|
sw $t0, 16($sp)
|
|
la $t0, evaluate
|
|
sw $t0, 12($sp)
|
|
la $t0, __L1267
|
|
sw $t0, 8($sp)
|
|
lw $t0, 56($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1267:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
sw $t0, 12($sp)
|
|
lw $t0, 28($sp)
|
|
addi $sp, $sp, 12
|
|
jr $t0
|
|
|
|
__L1265:
|
|
addi $sp, $sp, -12
|
|
lw $t0, 20($sp)
|
|
lw $s0, 28($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 32
|
|
sw $s0, 28($sp)
|
|
addi $sp, $sp, 24
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L1268
|
|
|
|
__L1261:
|
|
lw $s0, 24($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, MINUS
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1269
|
|
addi $sp, $sp, -32
|
|
la $s0, subtract_values
|
|
sw $s0, 28($sp)
|
|
la $t0, __L1273
|
|
sw $t0, 24($sp)
|
|
la $t0, evaluate
|
|
sw $t0, 16($sp)
|
|
la $t0, __L1274
|
|
sw $t0, 12($sp)
|
|
lw $t0, 56($sp)
|
|
sw $t0, 4($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 4($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 4
|
|
jr $t0
|
|
|
|
__L1274:
|
|
addi $sp, $sp, -4
|
|
lw $t0, 8($sp)
|
|
sw $t0, 16($sp)
|
|
la $t0, evaluate
|
|
sw $t0, 12($sp)
|
|
la $t0, __L1275
|
|
sw $t0, 8($sp)
|
|
lw $t0, 56($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1275:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
sw $t0, 12($sp)
|
|
lw $t0, 28($sp)
|
|
addi $sp, $sp, 12
|
|
jr $t0
|
|
|
|
__L1273:
|
|
addi $sp, $sp, -12
|
|
lw $t0, 20($sp)
|
|
lw $s0, 28($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 32
|
|
sw $s0, 28($sp)
|
|
addi $sp, $sp, 24
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L1276
|
|
|
|
__L1269:
|
|
lw $s0, 24($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, MULTIPLY
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1277
|
|
addi $sp, $sp, -32
|
|
la $s0, multiply_values
|
|
sw $s0, 28($sp)
|
|
la $t0, __L1281
|
|
sw $t0, 24($sp)
|
|
la $t0, evaluate
|
|
sw $t0, 16($sp)
|
|
la $t0, __L1282
|
|
sw $t0, 12($sp)
|
|
lw $t0, 56($sp)
|
|
sw $t0, 4($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 4($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 4
|
|
jr $t0
|
|
|
|
__L1282:
|
|
addi $sp, $sp, -4
|
|
lw $t0, 8($sp)
|
|
sw $t0, 16($sp)
|
|
la $t0, evaluate
|
|
sw $t0, 12($sp)
|
|
la $t0, __L1283
|
|
sw $t0, 8($sp)
|
|
lw $t0, 56($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1283:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
sw $t0, 12($sp)
|
|
lw $t0, 28($sp)
|
|
addi $sp, $sp, 12
|
|
jr $t0
|
|
|
|
__L1281:
|
|
addi $sp, $sp, -12
|
|
lw $t0, 20($sp)
|
|
lw $s0, 28($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 32
|
|
sw $s0, 28($sp)
|
|
addi $sp, $sp, 24
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L1284
|
|
|
|
__L1277:
|
|
lw $s0, 24($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, DIVIDE
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1285
|
|
addi $sp, $sp, -32
|
|
la $s0, divide_values
|
|
sw $s0, 28($sp)
|
|
la $t0, __L1289
|
|
sw $t0, 24($sp)
|
|
la $t0, evaluate
|
|
sw $t0, 16($sp)
|
|
la $t0, __L1290
|
|
sw $t0, 12($sp)
|
|
lw $t0, 56($sp)
|
|
sw $t0, 4($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 4($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 4
|
|
jr $t0
|
|
|
|
__L1290:
|
|
addi $sp, $sp, -4
|
|
lw $t0, 8($sp)
|
|
sw $t0, 16($sp)
|
|
la $t0, evaluate
|
|
sw $t0, 12($sp)
|
|
la $t0, __L1291
|
|
sw $t0, 8($sp)
|
|
lw $t0, 56($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1291:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
sw $t0, 12($sp)
|
|
lw $t0, 28($sp)
|
|
addi $sp, $sp, 12
|
|
jr $t0
|
|
|
|
__L1289:
|
|
addi $sp, $sp, -12
|
|
lw $t0, 20($sp)
|
|
lw $s0, 28($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 32
|
|
sw $s0, 28($sp)
|
|
addi $sp, $sp, 24
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L1292
|
|
|
|
__L1285:
|
|
lw $s0, 24($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, EQUALS
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1293
|
|
addi $sp, $sp, -32
|
|
la $s0, equals_values
|
|
sw $s0, 28($sp)
|
|
la $t0, __L1297
|
|
sw $t0, 24($sp)
|
|
la $t0, evaluate
|
|
sw $t0, 16($sp)
|
|
la $t0, __L1298
|
|
sw $t0, 12($sp)
|
|
lw $t0, 56($sp)
|
|
sw $t0, 4($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 4($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 4
|
|
jr $t0
|
|
|
|
__L1298:
|
|
addi $sp, $sp, -4
|
|
lw $t0, 8($sp)
|
|
sw $t0, 16($sp)
|
|
la $t0, evaluate
|
|
sw $t0, 12($sp)
|
|
la $t0, __L1299
|
|
sw $t0, 8($sp)
|
|
lw $t0, 56($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1299:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
sw $t0, 12($sp)
|
|
lw $t0, 28($sp)
|
|
addi $sp, $sp, 12
|
|
jr $t0
|
|
|
|
__L1297:
|
|
addi $sp, $sp, -12
|
|
lw $t0, 20($sp)
|
|
lw $s0, 28($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 32
|
|
sw $s0, 28($sp)
|
|
addi $sp, $sp, 24
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L1300
|
|
|
|
__L1293:
|
|
lw $s0, 24($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, NOT_EQUALS
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1301
|
|
addi $sp, $sp, -32
|
|
la $s0, not_equals_values
|
|
sw $s0, 28($sp)
|
|
la $t0, __L1305
|
|
sw $t0, 24($sp)
|
|
la $t0, evaluate
|
|
sw $t0, 16($sp)
|
|
la $t0, __L1306
|
|
sw $t0, 12($sp)
|
|
lw $t0, 56($sp)
|
|
sw $t0, 4($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 4($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 4
|
|
jr $t0
|
|
|
|
__L1306:
|
|
addi $sp, $sp, -4
|
|
lw $t0, 8($sp)
|
|
sw $t0, 16($sp)
|
|
la $t0, evaluate
|
|
sw $t0, 12($sp)
|
|
la $t0, __L1307
|
|
sw $t0, 8($sp)
|
|
lw $t0, 56($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1307:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
sw $t0, 12($sp)
|
|
lw $t0, 28($sp)
|
|
addi $sp, $sp, 12
|
|
jr $t0
|
|
|
|
__L1305:
|
|
addi $sp, $sp, -12
|
|
lw $t0, 20($sp)
|
|
lw $s0, 28($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 32
|
|
sw $s0, 28($sp)
|
|
addi $sp, $sp, 24
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L1308
|
|
|
|
__L1301:
|
|
lw $s0, 24($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, GREATER_THAN
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1309
|
|
addi $sp, $sp, -32
|
|
la $s0, greater_than_values
|
|
sw $s0, 28($sp)
|
|
la $t0, __L1313
|
|
sw $t0, 24($sp)
|
|
la $t0, evaluate
|
|
sw $t0, 16($sp)
|
|
la $t0, __L1314
|
|
sw $t0, 12($sp)
|
|
lw $t0, 56($sp)
|
|
sw $t0, 4($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 4($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 4
|
|
jr $t0
|
|
|
|
__L1314:
|
|
addi $sp, $sp, -4
|
|
lw $t0, 8($sp)
|
|
sw $t0, 16($sp)
|
|
la $t0, evaluate
|
|
sw $t0, 12($sp)
|
|
la $t0, __L1315
|
|
sw $t0, 8($sp)
|
|
lw $t0, 56($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1315:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
sw $t0, 12($sp)
|
|
lw $t0, 28($sp)
|
|
addi $sp, $sp, 12
|
|
jr $t0
|
|
|
|
__L1313:
|
|
addi $sp, $sp, -12
|
|
lw $t0, 20($sp)
|
|
lw $s0, 28($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 32
|
|
sw $s0, 28($sp)
|
|
addi $sp, $sp, 24
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L1316
|
|
|
|
__L1309:
|
|
lw $s0, 24($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, LESS_THAN
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1317
|
|
addi $sp, $sp, -32
|
|
la $s0, less_than_values
|
|
sw $s0, 28($sp)
|
|
la $t0, __L1321
|
|
sw $t0, 24($sp)
|
|
la $t0, evaluate
|
|
sw $t0, 16($sp)
|
|
la $t0, __L1322
|
|
sw $t0, 12($sp)
|
|
lw $t0, 56($sp)
|
|
sw $t0, 4($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 4($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 4
|
|
jr $t0
|
|
|
|
__L1322:
|
|
addi $sp, $sp, -4
|
|
lw $t0, 8($sp)
|
|
sw $t0, 16($sp)
|
|
la $t0, evaluate
|
|
sw $t0, 12($sp)
|
|
la $t0, __L1323
|
|
sw $t0, 8($sp)
|
|
lw $t0, 56($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1323:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
sw $t0, 12($sp)
|
|
lw $t0, 28($sp)
|
|
addi $sp, $sp, 12
|
|
jr $t0
|
|
|
|
__L1321:
|
|
addi $sp, $sp, -12
|
|
lw $t0, 20($sp)
|
|
lw $s0, 28($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 32
|
|
sw $s0, 28($sp)
|
|
addi $sp, $sp, 24
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L1324
|
|
|
|
__L1317:
|
|
lw $s0, 24($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, OR
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1325
|
|
addi $sp, $sp, -32
|
|
la $s0, or_values
|
|
sw $s0, 28($sp)
|
|
la $t0, __L1329
|
|
sw $t0, 24($sp)
|
|
la $t0, evaluate
|
|
sw $t0, 16($sp)
|
|
la $t0, __L1330
|
|
sw $t0, 12($sp)
|
|
lw $t0, 56($sp)
|
|
sw $t0, 4($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 4($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 4
|
|
jr $t0
|
|
|
|
__L1330:
|
|
addi $sp, $sp, -4
|
|
lw $t0, 8($sp)
|
|
sw $t0, 16($sp)
|
|
la $t0, evaluate
|
|
sw $t0, 12($sp)
|
|
la $t0, __L1331
|
|
sw $t0, 8($sp)
|
|
lw $t0, 56($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1331:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
sw $t0, 12($sp)
|
|
lw $t0, 28($sp)
|
|
addi $sp, $sp, 12
|
|
jr $t0
|
|
|
|
__L1329:
|
|
addi $sp, $sp, -12
|
|
lw $t0, 20($sp)
|
|
lw $s0, 28($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 32
|
|
sw $s0, 28($sp)
|
|
addi $sp, $sp, 24
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L1332
|
|
|
|
__L1325:
|
|
lw $s0, 24($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, AND
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1333
|
|
addi $sp, $sp, -32
|
|
la $s0, and_values
|
|
sw $s0, 28($sp)
|
|
la $t0, __L1337
|
|
sw $t0, 24($sp)
|
|
la $t0, evaluate
|
|
sw $t0, 16($sp)
|
|
la $t0, __L1338
|
|
sw $t0, 12($sp)
|
|
lw $t0, 56($sp)
|
|
sw $t0, 4($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 4($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 4
|
|
jr $t0
|
|
|
|
__L1338:
|
|
addi $sp, $sp, -4
|
|
lw $t0, 8($sp)
|
|
sw $t0, 16($sp)
|
|
la $t0, evaluate
|
|
sw $t0, 12($sp)
|
|
la $t0, __L1339
|
|
sw $t0, 8($sp)
|
|
lw $t0, 56($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1339:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
sw $t0, 12($sp)
|
|
lw $t0, 28($sp)
|
|
addi $sp, $sp, 12
|
|
jr $t0
|
|
|
|
__L1337:
|
|
addi $sp, $sp, -12
|
|
lw $t0, 20($sp)
|
|
lw $s0, 28($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 32
|
|
sw $s0, 28($sp)
|
|
addi $sp, $sp, 24
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L1340
|
|
|
|
__L1333:
|
|
lw $s0, 24($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, VAR_TOKEN
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1341
|
|
addi $sp, $sp, -28
|
|
addi $s0, $sp, 48
|
|
la $s1, read_dictionary
|
|
sw $s1, 24($sp)
|
|
sw $s0, 20($sp)
|
|
la $t0, __L1343
|
|
sw $t0, 16($sp)
|
|
la $t0, variables
|
|
lw $t0, 0($t0)
|
|
sw $t0, 8($sp)
|
|
lw $t0, 52($sp)
|
|
sw $t0, 4($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 4($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
li $t0, 0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 0($sp)
|
|
sll $t0, $t0, 24
|
|
sra $t0, $t0, 24
|
|
sw $t0, 0($sp)
|
|
lw $t0, 24($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1343:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 12($sp)
|
|
lw $s0, 20($sp)
|
|
lw $s1, 24($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 28
|
|
lw $s0, 20($sp)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L1344
|
|
addi $sp, $sp, -20
|
|
la $s0, create_value
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1346
|
|
sw $t0, 12($sp)
|
|
la $t0, INT_VAL
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
li $t0, 0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1346:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 20
|
|
sw $s0, 28($sp)
|
|
addi $sp, $sp, 24
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L1344:
|
|
addi $s0, $sp, 16
|
|
lw $s1, 24($sp)
|
|
li $s2, 2
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 16($sp)
|
|
beq $s0, $zero, __L1347
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 24
|
|
la $s1, evaluate
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1349
|
|
sw $t0, 8($sp)
|
|
lw $t0, 36($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1349:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
lw $s0, 4($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, INT_VAL
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1350
|
|
addi $s0, $sp, 12
|
|
lw $s1, 4($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L1351
|
|
|
|
__L1350:
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1353
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1353:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -20
|
|
la $s0, create_value
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1355
|
|
sw $t0, 12($sp)
|
|
la $t0, ERR_VAL
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
li $t0, 0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1355:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 20
|
|
sw $s0, 28($sp)
|
|
addi $sp, $sp, 24
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L1351:
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1357
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1357:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $s0, $sp, 8
|
|
lw $s1, 20($sp)
|
|
li $s2, 2
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 12($sp)
|
|
lw $s1, 8($sp)
|
|
slt $s0, $s0, $s1
|
|
seq $s0, $s0, $zero
|
|
sne $s0, $s0, $zero
|
|
bne $s0, $zero, __L1359
|
|
lw $s1, 12($sp)
|
|
li $s2, 0
|
|
slt $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L1359:
|
|
beq $s0, $zero, __L1360
|
|
addi $sp, $sp, -20
|
|
la $s0, create_value
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1362
|
|
sw $t0, 12($sp)
|
|
la $t0, ERR_VAL
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
li $t0, 0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1362:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 20
|
|
sw $s0, 28($sp)
|
|
addi $sp, $sp, 24
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L1360:
|
|
j __L1363
|
|
|
|
__L1347:
|
|
addi $s0, $sp, 12
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L1363:
|
|
addi $s0, $sp, 0
|
|
lw $s1, 20($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
lw $s2, 12($sp)
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, STR_VAL
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1364
|
|
addi $sp, $sp, -32
|
|
la $s0, create_value
|
|
sw $s0, 28($sp)
|
|
la $t0, __L1367
|
|
sw $t0, 24($sp)
|
|
lw $t0, 32($sp)
|
|
sw $t0, 16($sp)
|
|
li $s0, 0
|
|
sll $s0, $s0, 2
|
|
lw $t0, 16($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 16($sp)
|
|
la $t0, duplicate_str
|
|
sw $t0, 12($sp)
|
|
la $t0, __L1368
|
|
sw $t0, 8($sp)
|
|
lw $t0, 32($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1368:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
sw $t0, 12($sp)
|
|
lw $t0, 28($sp)
|
|
addi $sp, $sp, 12
|
|
jr $t0
|
|
|
|
__L1367:
|
|
addi $sp, $sp, -12
|
|
lw $t0, 20($sp)
|
|
lw $s0, 28($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 32
|
|
sw $s0, 28($sp)
|
|
addi $sp, $sp, 24
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L1369
|
|
|
|
__L1364:
|
|
addi $sp, $sp, -20
|
|
la $s0, create_value
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1371
|
|
sw $t0, 12($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 4($sp)
|
|
li $s0, 0
|
|
sll $s0, $s0, 2
|
|
lw $t0, 4($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1371:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 20
|
|
sw $s0, 28($sp)
|
|
addi $sp, $sp, 24
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L1369:
|
|
j __L1372
|
|
|
|
__L1341:
|
|
lw $s0, 24($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, SUBSTRING
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1373
|
|
addi $sp, $sp, -24
|
|
addi $s0, $sp, 20
|
|
lw $s1, 48($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 16
|
|
lw $s1, 48($sp)
|
|
li $s2, 2
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 12
|
|
lw $s1, 48($sp)
|
|
li $s2, 3
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 28
|
|
la $s1, evaluate
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1375
|
|
sw $t0, 8($sp)
|
|
lw $t0, 40($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1375:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 24
|
|
la $s1, evaluate
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1377
|
|
sw $t0, 8($sp)
|
|
lw $t0, 36($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1377:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, evaluate
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1379
|
|
sw $t0, 8($sp)
|
|
lw $t0, 32($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1379:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $sp, $sp, -24
|
|
la $s0, substring
|
|
sw $s0, 20($sp)
|
|
la $t0, __L1381
|
|
sw $t0, 16($sp)
|
|
lw $t0, 32($sp)
|
|
sw $t0, 8($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 20($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1381:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 12($sp)
|
|
lw $s0, 20($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 24
|
|
sw $s0, 52($sp)
|
|
addi $sp, $sp, 48
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 24
|
|
j __L1382
|
|
|
|
__L1373:
|
|
lw $s0, 24($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, STRFUNC
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1383
|
|
addi $sp, $sp, -8
|
|
addi $s0, $sp, 4
|
|
lw $s1, 32($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, evaluate
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1385
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1385:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $sp, $sp, -16
|
|
la $s0, strfunc
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1387
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1387:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
sw $s0, 36($sp)
|
|
addi $sp, $sp, 32
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 8
|
|
j __L1388
|
|
|
|
__L1383:
|
|
addi $sp, $sp, -20
|
|
la $s0, create_value
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1390
|
|
sw $t0, 12($sp)
|
|
la $t0, ERR_VAL
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
li $t0, 0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1390:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 20
|
|
sw $s0, 28($sp)
|
|
addi $sp, $sp, 24
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L1388:
|
|
|
|
__L1382:
|
|
|
|
__L1372:
|
|
|
|
__L1340:
|
|
|
|
__L1332:
|
|
|
|
__L1324:
|
|
|
|
__L1316:
|
|
|
|
__L1308:
|
|
|
|
__L1300:
|
|
|
|
__L1292:
|
|
|
|
__L1284:
|
|
|
|
__L1276:
|
|
|
|
__L1268:
|
|
|
|
__L1260:
|
|
|
|
__L1254:
|
|
addi $sp, $sp, 24
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl print_value
|
|
print_value:
|
|
addi $sp, $sp, 0
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, INT_VAL
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1391
|
|
addi $sp, $sp, -16
|
|
la $s0, printd
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1393
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1393:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L1394
|
|
|
|
__L1391:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, STR_VAL
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1395
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1397
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1397:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
|
|
__L1395:
|
|
|
|
__L1394:
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl run_print
|
|
run_print:
|
|
addi $sp, $sp, -4
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, evaluate
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1399
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1399:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $sp, $sp, -16
|
|
la $s0, print_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1401
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1401:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, ERR_VAL
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1402
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1404
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1404:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 1
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L1405
|
|
|
|
__L1402:
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1407
|
|
sw $t0, 8($sp)
|
|
la $t0, __str84
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1407:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1409
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1409:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 0
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L1405:
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl run_if
|
|
run_if:
|
|
addi $sp, $sp, -4
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, evaluate
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1411
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1411:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, ERR_VAL
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1412
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1414
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1414:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 1
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L1415
|
|
|
|
__L1412:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, INT_VAL
|
|
lw $s1, 0($s1)
|
|
sne $s0, $s0, $s1
|
|
sne $s0, $s0, $zero
|
|
bne $s0, $zero, __L1418
|
|
lw $s1, 0($sp)
|
|
li $s2, 0
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
la $s2, INT_VAL
|
|
lw $s2, 0($s2)
|
|
seq $s1, $s1, $s2
|
|
beq $s1, $zero, __L1419
|
|
lw $s2, 0($sp)
|
|
li $s3, 1
|
|
sll $s3, $s3, 2
|
|
add $s2, $s2, $s3
|
|
lw $s2, 0($s2)
|
|
sne $s2, $s2, $zero
|
|
move $s1, $s2
|
|
|
|
__L1419:
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L1418:
|
|
beq $s0, $zero, __L1420
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1422
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1422:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 0
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L1423
|
|
|
|
__L1420:
|
|
la $s0, do_skip_if
|
|
li $s1, 1
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1425
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1425:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 0
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L1423:
|
|
|
|
__L1415:
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl run_goto
|
|
run_goto:
|
|
addi $sp, $sp, -4
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, evaluate
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1427
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1427:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, INT_VAL
|
|
lw $s1, 0($s1)
|
|
sne $s0, $s0, $s1
|
|
beq $s0, $zero, __L1428
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1430
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1430:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 1
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L1428:
|
|
la $s0, goto_label
|
|
lw $s1, 0($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1432
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1432:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
la $s0, do_goto
|
|
li $s1, 1
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
li $s0, 0
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl run_gosub
|
|
run_gosub:
|
|
addi $sp, $sp, -4
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, evaluate
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1434
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1434:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, INT_VAL
|
|
lw $s1, 0($s1)
|
|
sne $s0, $s0, $s1
|
|
beq $s0, $zero, __L1435
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1437
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1437:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 1
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L1435:
|
|
la $s0, goto_label
|
|
lw $s1, 0($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1439
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1439:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
la $s0, do_gosub
|
|
li $s1, 1
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
li $s0, 0
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl run_return
|
|
run_return:
|
|
addi $sp, $sp, 0
|
|
la $s0, do_return
|
|
li $s1, 1
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
li $s0, 0
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl run_while
|
|
run_while:
|
|
addi $sp, $sp, -4
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, evaluate
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1441
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1441:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, ERR_VAL
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1442
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1444
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1444:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 1
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L1445
|
|
|
|
__L1442:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, INT_VAL
|
|
lw $s1, 0($s1)
|
|
sne $s0, $s0, $s1
|
|
sne $s0, $s0, $zero
|
|
bne $s0, $zero, __L1448
|
|
lw $s1, 0($sp)
|
|
li $s2, 0
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
la $s2, INT_VAL
|
|
lw $s2, 0($s2)
|
|
seq $s1, $s1, $s2
|
|
beq $s1, $zero, __L1449
|
|
lw $s2, 0($sp)
|
|
li $s3, 1
|
|
sll $s3, $s3, 2
|
|
add $s2, $s2, $s3
|
|
lw $s2, 0($s2)
|
|
sne $s2, $s2, $zero
|
|
move $s1, $s2
|
|
|
|
__L1449:
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L1448:
|
|
beq $s0, $zero, __L1450
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1452
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1452:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 0
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L1453
|
|
|
|
__L1450:
|
|
la $s0, do_skip_while
|
|
li $s1, 1
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1455
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1455:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 0
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L1453:
|
|
|
|
__L1445:
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl set_var
|
|
set_var:
|
|
addi $sp, $sp, -28
|
|
addi $sp, $sp, -28
|
|
addi $s0, $sp, 52
|
|
la $s1, read_dictionary
|
|
sw $s1, 24($sp)
|
|
sw $s0, 20($sp)
|
|
la $t0, __L1457
|
|
sw $t0, 16($sp)
|
|
la $t0, variables
|
|
lw $t0, 0($t0)
|
|
sw $t0, 8($sp)
|
|
lw $t0, 60($sp)
|
|
sw $t0, 4($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 4($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
li $t0, 0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 0($sp)
|
|
sll $t0, $t0, 24
|
|
sra $t0, $t0, 24
|
|
sw $t0, 0($sp)
|
|
lw $t0, 24($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1457:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 12($sp)
|
|
lw $s0, 20($sp)
|
|
lw $s1, 24($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 28
|
|
lw $s0, 24($sp)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L1458
|
|
addi $s0, $sp, 20
|
|
lw $s1, 32($sp)
|
|
li $s2, 2
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 20($sp)
|
|
beq $s0, $zero, __L1459
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 36
|
|
la $s1, evaluate
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1461
|
|
sw $t0, 8($sp)
|
|
lw $t0, 40($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1461:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
lw $s0, 16($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, INT_VAL
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1462
|
|
addi $s0, $sp, 4
|
|
lw $s1, 16($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L1463
|
|
|
|
__L1462:
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1465
|
|
sw $t0, 8($sp)
|
|
lw $t0, 32($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1465:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 1
|
|
sw $s0, 36($sp)
|
|
addi $sp, $sp, 28
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
__L1463:
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1467
|
|
sw $t0, 8($sp)
|
|
lw $t0, 32($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1467:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L1468
|
|
|
|
__L1459:
|
|
addi $s0, $sp, 4
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L1468:
|
|
lw $s0, 4($sp)
|
|
li $s1, 0
|
|
sne $s0, $s0, $s1
|
|
beq $s0, $zero, __L1469
|
|
li $s0, 1
|
|
sw $s0, 36($sp)
|
|
addi $sp, $sp, 28
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
__L1469:
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 32
|
|
la $s1, kmalloc
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1471
|
|
sw $t0, 8($sp)
|
|
la $t0, POINTER_SIZE
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1471:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $s0, $sp, 12
|
|
lw $s0, 0($s0)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 28($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -44
|
|
la $s0, write_dictionary
|
|
sw $s0, 40($sp)
|
|
la $t0, __L1474
|
|
sw $t0, 36($sp)
|
|
la $t0, variables
|
|
lw $t0, 0($t0)
|
|
sw $t0, 28($sp)
|
|
lw $t0, 76($sp)
|
|
sw $t0, 24($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 24($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 24($sp)
|
|
la $t0, create_variable
|
|
sw $t0, 20($sp)
|
|
la $t0, __L1475
|
|
sw $t0, 16($sp)
|
|
la $t0, INTVAR
|
|
lw $t0, 0($t0)
|
|
sw $t0, 8($sp)
|
|
lw $t0, 56($sp)
|
|
sw $t0, 4($sp)
|
|
li $t0, 1
|
|
sw $t0, 0($sp)
|
|
lw $t0, 20($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1475:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 12($sp)
|
|
sw $t0, 20($sp)
|
|
li $t0, 0
|
|
sw $t0, 16($sp)
|
|
lw $t0, 16($sp)
|
|
sll $t0, $t0, 24
|
|
sra $t0, $t0, 24
|
|
sw $t0, 16($sp)
|
|
lw $t0, 40($sp)
|
|
addi $sp, $sp, 16
|
|
jr $t0
|
|
|
|
__L1474:
|
|
addi $sp, $sp, -16
|
|
lw $t0, 32($sp)
|
|
lw $s0, 40($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 44
|
|
j __L1476
|
|
|
|
__L1458:
|
|
addi $s0, $sp, 20
|
|
lw $s1, 32($sp)
|
|
li $s2, 2
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 20($sp)
|
|
beq $s0, $zero, __L1477
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 36
|
|
la $s1, evaluate
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1479
|
|
sw $t0, 8($sp)
|
|
lw $t0, 40($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1479:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
lw $s0, 16($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, INT_VAL
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1480
|
|
addi $s0, $sp, 4
|
|
lw $s1, 16($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L1481
|
|
|
|
__L1480:
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1483
|
|
sw $t0, 8($sp)
|
|
lw $t0, 32($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1483:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 1
|
|
sw $s0, 36($sp)
|
|
addi $sp, $sp, 28
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
__L1481:
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1485
|
|
sw $t0, 8($sp)
|
|
lw $t0, 32($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1485:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L1486
|
|
|
|
__L1477:
|
|
addi $s0, $sp, 4
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L1486:
|
|
addi $s0, $sp, 0
|
|
lw $s1, 24($sp)
|
|
li $s2, 2
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 4($sp)
|
|
lw $s1, 0($sp)
|
|
slt $s0, $s0, $s1
|
|
seq $s0, $s0, $zero
|
|
sne $s0, $s0, $zero
|
|
bne $s0, $zero, __L1488
|
|
lw $s1, 4($sp)
|
|
li $s2, 0
|
|
slt $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L1488:
|
|
beq $s0, $zero, __L1489
|
|
li $s0, 1
|
|
sw $s0, 36($sp)
|
|
addi $sp, $sp, 28
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
__L1489:
|
|
addi $s0, $sp, 8
|
|
lw $s1, 24($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
lw $s2, 4($sp)
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1491
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1491:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 24($sp)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
lw $s1, 4($sp)
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 28($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L1476:
|
|
li $s0, 0
|
|
sw $s0, 36($sp)
|
|
addi $sp, $sp, 28
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 28
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
.globl del_var
|
|
del_var:
|
|
addi $sp, $sp, -16
|
|
addi $sp, $sp, -28
|
|
addi $s0, $sp, 40
|
|
la $s1, read_dictionary
|
|
sw $s1, 24($sp)
|
|
sw $s0, 20($sp)
|
|
la $t0, __L1493
|
|
sw $t0, 16($sp)
|
|
la $t0, variables
|
|
lw $t0, 0($t0)
|
|
sw $t0, 8($sp)
|
|
lw $t0, 44($sp)
|
|
sw $t0, 4($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 4($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
li $t0, 0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 0($sp)
|
|
sll $t0, $t0, 24
|
|
sra $t0, $t0, 24
|
|
sw $t0, 0($sp)
|
|
lw $t0, 24($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1493:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 12($sp)
|
|
lw $s0, 20($sp)
|
|
lw $s1, 24($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 28
|
|
lw $s0, 12($sp)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L1494
|
|
addi $sp, $sp, 16
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L1494:
|
|
addi $s0, $sp, 8
|
|
lw $s1, 12($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 0
|
|
lw $s1, 12($sp)
|
|
li $s2, 2
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 4
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L1495:
|
|
lw $s0, 4($sp)
|
|
lw $s1, 0($sp)
|
|
slt $s0, $s0, $s1
|
|
beq $s0, $zero, __L1496
|
|
j __L1497
|
|
|
|
__L1498:
|
|
addi $s0, $sp, 4
|
|
lw $s1, 4($sp)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L1495
|
|
|
|
__L1497:
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1500
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $s0, 20($sp)
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1500:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L1498
|
|
|
|
__L1496:
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1502
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1502:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, kfree
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1504
|
|
sw $t0, 8($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1504:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -28
|
|
la $s0, write_dictionary
|
|
sw $s0, 24($sp)
|
|
la $t0, __L1506
|
|
sw $t0, 20($sp)
|
|
la $t0, variables
|
|
lw $t0, 0($t0)
|
|
sw $t0, 12($sp)
|
|
lw $t0, 44($sp)
|
|
sw $t0, 8($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 8($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 8($sp)
|
|
li $t0, 0
|
|
sw $t0, 4($sp)
|
|
li $t0, 0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 0($sp)
|
|
sll $t0, $t0, 24
|
|
sra $t0, $t0, 24
|
|
sw $t0, 0($sp)
|
|
lw $t0, 24($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1506:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 16($sp)
|
|
lw $s0, 24($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 28
|
|
addi $sp, $sp, 16
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl run_dim
|
|
run_dim:
|
|
addi $sp, $sp, -28
|
|
addi $s0, $sp, 24
|
|
lw $s1, 28($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 20
|
|
lw $s1, 28($sp)
|
|
li $s2, 2
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 36
|
|
la $s1, evaluate
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1508
|
|
sw $t0, 8($sp)
|
|
lw $t0, 40($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1508:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
lw $s0, 16($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, INT_VAL
|
|
lw $s1, 0($s1)
|
|
sne $s0, $s0, $s1
|
|
sne $s0, $s0, $zero
|
|
bne $s0, $zero, __L1510
|
|
lw $s1, 16($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
li $s2, 1
|
|
slt $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L1510:
|
|
beq $s0, $zero, __L1511
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1513
|
|
sw $t0, 8($sp)
|
|
lw $t0, 32($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1513:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 1
|
|
sw $s0, 32($sp)
|
|
addi $sp, $sp, 28
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L1511:
|
|
addi $sp, $sp, -16
|
|
la $s0, del_var
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1515
|
|
sw $t0, 8($sp)
|
|
lw $t0, 40($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1515:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $s0, $sp, 4
|
|
lw $s1, 16($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1517
|
|
sw $t0, 8($sp)
|
|
lw $t0, 32($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1517:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 32
|
|
la $s1, kmalloc
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1519
|
|
sw $t0, 8($sp)
|
|
la $t0, POINTER_SIZE
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $s0, 24($sp)
|
|
lw $t0, 0($sp)
|
|
mult $t0, $s0
|
|
mflo $t0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1519:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $s0, $sp, 0
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L1520:
|
|
lw $s0, 0($sp)
|
|
lw $s1, 4($sp)
|
|
slt $s0, $s0, $s1
|
|
beq $s0, $zero, __L1521
|
|
j __L1522
|
|
|
|
__L1523:
|
|
addi $s0, $sp, 0
|
|
lw $s1, 0($sp)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L1520
|
|
|
|
__L1522:
|
|
addi $sp, $sp, -24
|
|
addi $s0, $sp, 36
|
|
lw $s0, 0($s0)
|
|
lw $s1, 24($sp)
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
la $s1, create_value
|
|
sw $s1, 20($sp)
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1525
|
|
sw $t0, 12($sp)
|
|
la $t0, INT_VAL
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
li $t0, 0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 20($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1525:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
lw $s1, 20($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 24
|
|
j __L1523
|
|
|
|
__L1521:
|
|
addi $sp, $sp, -28
|
|
addi $s0, $sp, 36
|
|
la $s1, create_variable
|
|
sw $s1, 24($sp)
|
|
sw $s0, 20($sp)
|
|
la $t0, __L1527
|
|
sw $t0, 16($sp)
|
|
la $t0, INTVAR
|
|
lw $t0, 0($t0)
|
|
sw $t0, 8($sp)
|
|
lw $t0, 40($sp)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 32($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 24($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1527:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 12($sp)
|
|
lw $s0, 20($sp)
|
|
lw $s1, 24($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 28
|
|
addi $sp, $sp, -28
|
|
la $s0, write_dictionary
|
|
sw $s0, 24($sp)
|
|
la $t0, __L1529
|
|
sw $t0, 20($sp)
|
|
la $t0, variables
|
|
lw $t0, 0($t0)
|
|
sw $t0, 12($sp)
|
|
lw $t0, 52($sp)
|
|
sw $t0, 8($sp)
|
|
li $s0, 1
|
|
sll $s0, $s0, 2
|
|
lw $t0, 8($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 8($sp)
|
|
lw $t0, 36($sp)
|
|
sw $t0, 4($sp)
|
|
li $t0, 0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 0($sp)
|
|
sll $t0, $t0, 24
|
|
sra $t0, $t0, 24
|
|
sw $t0, 0($sp)
|
|
lw $t0, 24($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1529:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 16($sp)
|
|
lw $s0, 24($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 28
|
|
li $s0, 0
|
|
sw $s0, 32($sp)
|
|
addi $sp, $sp, 28
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 28
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl run_input
|
|
run_input:
|
|
addi $sp, $sp, -12
|
|
addi $sp, $sp, -16
|
|
addi $s0, $sp, 24
|
|
la $s1, inputd
|
|
sw $s1, 12($sp)
|
|
sw $s0, 8($sp)
|
|
la $t0, __L1531
|
|
sw $t0, 4($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1531:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 0($sp)
|
|
lw $s0, 8($sp)
|
|
lw $s1, 12($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 16
|
|
addi $s0, $sp, 4
|
|
lw $s1, 12($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -24
|
|
addi $s0, $sp, 24
|
|
la $s1, create_value
|
|
sw $s1, 20($sp)
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1533
|
|
sw $t0, 12($sp)
|
|
la $t0, INT_VAL
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 32($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 20($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1533:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
lw $s1, 20($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 24
|
|
addi $sp, $sp, -20
|
|
la $s0, set_var
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1535
|
|
sw $t0, 12($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1535:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 20
|
|
beq $s0, $zero, __L1536
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1538
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1538:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 1
|
|
sw $s0, 16($sp)
|
|
addi $sp, $sp, 12
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L1536:
|
|
li $s0, 0
|
|
sw $s0, 16($sp)
|
|
addi $sp, $sp, 12
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 12
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl run_inputstr
|
|
run_inputstr:
|
|
addi $sp, $sp, -272
|
|
addi $sp, $sp, -20
|
|
la $s0, inputs
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1540
|
|
sw $t0, 12($sp)
|
|
addi $t0, $sp, 36
|
|
sw $t0, 4($sp)
|
|
li $t0, 256
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1540:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 20
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 32
|
|
la $s1, strlen
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1542
|
|
sw $t0, 8($sp)
|
|
addi $t0, $sp, 36
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1542:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
lw $s0, 12($sp)
|
|
beq $s0, $zero, __L1543
|
|
addi $s0, $sp, 16
|
|
lw $s1, 12($sp)
|
|
li $s2, 1
|
|
sub $s1, $s1, $s2
|
|
add $s0, $s0, $s1
|
|
li $s1, 0
|
|
sll $s1, $s1, 24
|
|
sra $s1, $s1, 24
|
|
sb $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $s0, $sp, 12
|
|
lw $s1, 12($sp)
|
|
li $s2, 1
|
|
sub $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L1543:
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 28
|
|
la $s1, kmalloc
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1545
|
|
sw $t0, 8($sp)
|
|
la $t0, CHAR_SIZE
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $s0, 32($sp)
|
|
li $s1, 1
|
|
add $s0, $s0, $s1
|
|
lw $t0, 0($sp)
|
|
mult $t0, $s0
|
|
mflo $t0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1545:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $sp, $sp, -20
|
|
la $s0, strcpy
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1547
|
|
sw $t0, 12($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 4($sp)
|
|
addi $t0, $sp, 36
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1547:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 20
|
|
addi $s0, $sp, 4
|
|
lw $s1, 272($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -24
|
|
addi $s0, $sp, 24
|
|
la $s1, create_value
|
|
sw $s1, 20($sp)
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1549
|
|
sw $t0, 12($sp)
|
|
la $t0, STR_VAL
|
|
lw $t0, 0($t0)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 32($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 20($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1549:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
lw $s1, 20($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 24
|
|
addi $sp, $sp, -20
|
|
la $s0, set_var
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1551
|
|
sw $t0, 12($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1551:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 20
|
|
beq $s0, $zero, __L1552
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1554
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1554:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 1
|
|
sw $s0, 276($sp)
|
|
addi $sp, $sp, 272
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L1552:
|
|
li $s0, 0
|
|
sw $s0, 276($sp)
|
|
addi $sp, $sp, 272
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 272
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl run_let
|
|
run_let:
|
|
addi $sp, $sp, -12
|
|
addi $s0, $sp, 8
|
|
lw $s1, 12($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, evaluate
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1556
|
|
sw $t0, 8($sp)
|
|
lw $t0, 32($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 2
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1556:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, ERR_VAL
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1557
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1559
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1559:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 1
|
|
sw $s0, 16($sp)
|
|
addi $sp, $sp, 12
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L1557:
|
|
addi $sp, $sp, -20
|
|
la $s0, set_var
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1561
|
|
sw $t0, 12($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1561:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 20
|
|
beq $s0, $zero, __L1562
|
|
addi $sp, $sp, -16
|
|
la $s0, free_value
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1564
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1564:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
li $s0, 1
|
|
sw $s0, 16($sp)
|
|
addi $sp, $sp, 12
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L1562:
|
|
li $s0, 0
|
|
sw $s0, 16($sp)
|
|
addi $sp, $sp, 12
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 12
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl run_end
|
|
run_end:
|
|
addi $sp, $sp, -4
|
|
addi $s0, $sp, 0
|
|
lw $s1, 4($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 0($sp)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L1565
|
|
la $s0, do_end
|
|
li $s1, 1
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L1566
|
|
|
|
__L1565:
|
|
lw $s0, 0($sp)
|
|
la $s1, WHILE
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1567
|
|
la $s0, do_while
|
|
li $s1, 1
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L1568
|
|
|
|
__L1567:
|
|
lw $s0, 0($sp)
|
|
la $s1, IF
|
|
lw $s1, 0($s1)
|
|
sne $s0, $s0, $s1
|
|
beq $s0, $zero, __L1569
|
|
li $s0, 1
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L1569:
|
|
|
|
__L1568:
|
|
|
|
__L1566:
|
|
li $s0, 0
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl skip_to_end
|
|
skip_to_end:
|
|
addi $sp, $sp, -12
|
|
addi $s0, $sp, 8
|
|
li $s1, 1
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, next_list
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1571
|
|
sw $t0, 8($sp)
|
|
lw $t0, 36($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1571:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
lw $s0, 0($sp)
|
|
beq $s0, $zero, __L1572
|
|
addi $s0, $sp, 16
|
|
lw $s1, 0($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L1572:
|
|
|
|
__L1573:
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, next_list
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1576
|
|
sw $t0, 8($sp)
|
|
lw $t0, 36($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1576:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
beq $s0, $zero, __L1574
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 24
|
|
la $s1, get_list_value
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1578
|
|
sw $t0, 8($sp)
|
|
lw $t0, 36($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1578:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
lw $s0, 4($sp)
|
|
beq $s0, $zero, __L1579
|
|
lw $s0, 4($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
lw $s1, 12($sp)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1580
|
|
addi $s0, $sp, 8
|
|
lw $s1, 8($sp)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L1581
|
|
|
|
__L1580:
|
|
lw $s0, 4($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, END
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1583
|
|
lw $s1, 4($sp)
|
|
li $s2, 0
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
lw $s2, 12($sp)
|
|
seq $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L1583:
|
|
beq $s0, $zero, __L1584
|
|
addi $s0, $sp, 8
|
|
lw $s1, 8($sp)
|
|
li $s2, 1
|
|
sub $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L1584:
|
|
|
|
__L1581:
|
|
lw $s0, 8($sp)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L1585
|
|
lw $s0, 16($sp)
|
|
sw $s0, 20($sp)
|
|
addi $sp, $sp, 12
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
__L1585:
|
|
|
|
__L1579:
|
|
addi $s0, $sp, 16
|
|
lw $s1, 0($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L1573
|
|
|
|
__L1574:
|
|
lw $s0, 16($sp)
|
|
sw $s0, 20($sp)
|
|
addi $sp, $sp, 12
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 12
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
.globl seek
|
|
seek:
|
|
addi $sp, $sp, -12
|
|
addi $s0, $sp, 8
|
|
li $s1, 1
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 36
|
|
la $s1, previous_list
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1587
|
|
sw $t0, 8($sp)
|
|
lw $t0, 36($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1587:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
|
|
__L1588:
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, previous_list
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1592
|
|
sw $t0, 8($sp)
|
|
lw $t0, 36($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1592:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
beq $s0, $zero, __L1593
|
|
lw $s1, 28($sp)
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L1593:
|
|
addi $sp, $sp, 20
|
|
beq $s0, $zero, __L1589
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 24
|
|
la $s1, get_list_value
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1595
|
|
sw $t0, 8($sp)
|
|
lw $t0, 36($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1595:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
lw $s0, 4($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, END
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1597
|
|
lw $s1, 4($sp)
|
|
li $s2, 0
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
lw $s2, 12($sp)
|
|
seq $s1, $s1, $s2
|
|
sne $s1, $s1, $zero
|
|
move $s0, $s1
|
|
|
|
__L1597:
|
|
beq $s0, $zero, __L1598
|
|
addi $s0, $sp, 8
|
|
lw $s1, 8($sp)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L1599
|
|
|
|
__L1598:
|
|
lw $s0, 4($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
lw $s1, 12($sp)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1600
|
|
addi $s0, $sp, 8
|
|
lw $s1, 8($sp)
|
|
li $s2, 1
|
|
sub $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L1600:
|
|
|
|
__L1599:
|
|
lw $s0, 8($sp)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L1601
|
|
addi $sp, $sp, -16
|
|
la $s0, previous_list
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1603
|
|
sw $t0, 8($sp)
|
|
lw $t0, 32($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1603:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
sw $s0, 20($sp)
|
|
addi $sp, $sp, 12
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
__L1601:
|
|
addi $s0, $sp, 16
|
|
lw $s1, 0($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
j __L1588
|
|
|
|
__L1589:
|
|
li $s0, 0
|
|
sw $s0, 20($sp)
|
|
addi $sp, $sp, 12
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 12
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
.globl seek_goto
|
|
seek_goto:
|
|
addi $sp, $sp, -8
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 24
|
|
la $s1, next_list
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1605
|
|
sw $t0, 8($sp)
|
|
la $t0, statement_list
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1605:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
|
|
__L1606:
|
|
lw $s0, 4($sp)
|
|
beq $s0, $zero, __L1607
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, get_list_value
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1609
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1609:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
lw $s0, 0($sp)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
lw $s1, 8($sp)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1610
|
|
lw $s0, 4($sp)
|
|
sw $s0, 12($sp)
|
|
addi $sp, $sp, 8
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L1610:
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 24
|
|
la $s1, next_list
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1612
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1612:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
j __L1606
|
|
|
|
__L1607:
|
|
li $s0, 0
|
|
sw $s0, 12($sp)
|
|
addi $sp, $sp, 8
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 8
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl run_program
|
|
run_program:
|
|
addi $sp, $sp, -4
|
|
|
|
__L1613:
|
|
lw $s0, 4($sp)
|
|
beq $s0, $zero, __L1614
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, get_list_value
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1616
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1616:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $sp, $sp, -16
|
|
la $s0, run_statement
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1618
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 0
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1618:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
beq $s0, $zero, __L1619
|
|
li $s0, 1
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L1619:
|
|
la $s0, do_end
|
|
lw $s0, 0($s0)
|
|
beq $s0, $zero, __L1620
|
|
la $s0, do_end
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
li $s0, 0
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L1621
|
|
|
|
__L1620:
|
|
la $s0, do_skip_if
|
|
lw $s0, 0($s0)
|
|
beq $s0, $zero, __L1622
|
|
addi $sp, $sp, -24
|
|
addi $s0, $sp, 28
|
|
la $s1, skip_to_end
|
|
sw $s1, 20($sp)
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1624
|
|
sw $t0, 12($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 4($sp)
|
|
la $t0, IF
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 20($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1624:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
lw $s1, 20($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 24
|
|
la $s0, do_skip_if
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -16
|
|
la $s0, next_list
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1626
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1626:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
seq $s0, $s0, $zero
|
|
addi $sp, $sp, 16
|
|
beq $s0, $zero, __L1627
|
|
li $s0, 1
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L1627:
|
|
j __L1628
|
|
|
|
__L1622:
|
|
la $s0, do_skip_while
|
|
lw $s0, 0($s0)
|
|
beq $s0, $zero, __L1629
|
|
addi $sp, $sp, -24
|
|
addi $s0, $sp, 28
|
|
la $s1, skip_to_end
|
|
sw $s1, 20($sp)
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1631
|
|
sw $t0, 12($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 4($sp)
|
|
la $t0, WHILE
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 20($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1631:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
lw $s1, 20($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 24
|
|
la $s0, do_skip_while
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -16
|
|
la $s0, next_list
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1633
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1633:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
seq $s0, $s0, $zero
|
|
addi $sp, $sp, 16
|
|
beq $s0, $zero, __L1634
|
|
li $s0, 1
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L1634:
|
|
j __L1635
|
|
|
|
__L1629:
|
|
la $s0, do_while
|
|
lw $s0, 0($s0)
|
|
beq $s0, $zero, __L1636
|
|
addi $sp, $sp, -24
|
|
addi $s0, $sp, 28
|
|
la $s1, seek
|
|
sw $s1, 20($sp)
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1638
|
|
sw $t0, 12($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 4($sp)
|
|
la $t0, WHILE
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 20($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1638:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
lw $s1, 20($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 24
|
|
la $s0, do_while
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 4($sp)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L1639
|
|
li $s0, 1
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L1639:
|
|
j __L1640
|
|
|
|
__L1636:
|
|
la $s0, do_goto
|
|
lw $s0, 0($s0)
|
|
beq $s0, $zero, __L1641
|
|
addi $sp, $sp, -32
|
|
addi $s0, $sp, 36
|
|
la $s1, previous_list
|
|
sw $s1, 28($sp)
|
|
sw $s0, 24($sp)
|
|
la $t0, __L1644
|
|
sw $t0, 20($sp)
|
|
la $t0, seek_goto
|
|
sw $t0, 12($sp)
|
|
la $t0, __L1645
|
|
sw $t0, 8($sp)
|
|
la $t0, goto_label
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1645:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
sw $t0, 12($sp)
|
|
lw $t0, 28($sp)
|
|
addi $sp, $sp, 12
|
|
jr $t0
|
|
|
|
__L1644:
|
|
addi $sp, $sp, -12
|
|
lw $t0, 16($sp)
|
|
lw $s0, 24($sp)
|
|
lw $s1, 28($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 32
|
|
la $s0, do_goto
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 4($sp)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L1646
|
|
li $s0, 1
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L1646:
|
|
j __L1647
|
|
|
|
__L1641:
|
|
la $s0, do_gosub
|
|
lw $s0, 0($s0)
|
|
beq $s0, $zero, __L1648
|
|
la $s0, current_gosub
|
|
lw $s0, 0($s0)
|
|
li $s1, 32
|
|
slt $s0, $s0, $s1
|
|
beq $s0, $zero, __L1649
|
|
la $s0, gosubs
|
|
la $s1, current_gosub
|
|
lw $s1, 0($s1)
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s1, 0($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, current_gosub
|
|
la $s1, current_gosub
|
|
lw $s1, 0($s1)
|
|
li $s2, 1
|
|
add $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -32
|
|
addi $s0, $sp, 36
|
|
la $s1, previous_list
|
|
sw $s1, 28($sp)
|
|
sw $s0, 24($sp)
|
|
la $t0, __L1652
|
|
sw $t0, 20($sp)
|
|
la $t0, seek_goto
|
|
sw $t0, 12($sp)
|
|
la $t0, __L1653
|
|
sw $t0, 8($sp)
|
|
la $t0, goto_label
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1653:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
sw $t0, 12($sp)
|
|
lw $t0, 28($sp)
|
|
addi $sp, $sp, 12
|
|
jr $t0
|
|
|
|
__L1652:
|
|
addi $sp, $sp, -12
|
|
lw $t0, 16($sp)
|
|
lw $s0, 24($sp)
|
|
lw $s1, 28($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 32
|
|
la $s0, do_gosub
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 4($sp)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L1654
|
|
li $s0, 1
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L1654:
|
|
j __L1655
|
|
|
|
__L1649:
|
|
li $s0, 1
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L1655:
|
|
j __L1656
|
|
|
|
__L1648:
|
|
la $s0, do_return
|
|
lw $s0, 0($s0)
|
|
beq $s0, $zero, __L1657
|
|
la $s0, current_gosub
|
|
lw $s0, 0($s0)
|
|
beq $s0, $zero, __L1658
|
|
la $s0, current_gosub
|
|
la $s1, current_gosub
|
|
lw $s1, 0($s1)
|
|
li $s2, 1
|
|
sub $s1, $s1, $s2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 24
|
|
la $s1, seek_goto
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1660
|
|
sw $t0, 8($sp)
|
|
la $t0, gosubs
|
|
sw $t0, 0($sp)
|
|
la $s0, current_gosub
|
|
lw $s0, 0($s0)
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1660:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
la $s0, do_return
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 4($sp)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L1661
|
|
li $s0, 1
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L1661:
|
|
j __L1662
|
|
|
|
__L1658:
|
|
li $s0, 1
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L1662:
|
|
|
|
__L1657:
|
|
|
|
__L1656:
|
|
|
|
__L1647:
|
|
|
|
__L1640:
|
|
|
|
__L1635:
|
|
|
|
__L1628:
|
|
|
|
__L1621:
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 24
|
|
la $s1, next_list
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1664
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1664:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
j __L1613
|
|
|
|
__L1614:
|
|
li $s0, 0
|
|
sw $s0, 8($sp)
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 4
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl run_statement
|
|
run_statement:
|
|
addi $sp, $sp, 0
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, PRINT
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1665
|
|
addi $sp, $sp, -16
|
|
la $s0, run_print
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1667
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1667:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L1668
|
|
|
|
__L1665:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, INPUT
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1669
|
|
addi $sp, $sp, -16
|
|
la $s0, run_input
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1671
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1671:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L1672
|
|
|
|
__L1669:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, INPUTSTR
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1673
|
|
addi $sp, $sp, -16
|
|
la $s0, run_inputstr
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1675
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1675:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L1676
|
|
|
|
__L1673:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, RUN
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1677
|
|
addi $sp, $sp, -28
|
|
la $s0, run_program
|
|
sw $s0, 24($sp)
|
|
la $t0, __L1680
|
|
sw $t0, 20($sp)
|
|
la $t0, next_list
|
|
sw $t0, 12($sp)
|
|
la $t0, __L1681
|
|
sw $t0, 8($sp)
|
|
la $t0, statement_list
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1681:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
sw $t0, 12($sp)
|
|
lw $t0, 24($sp)
|
|
addi $sp, $sp, 12
|
|
jr $t0
|
|
|
|
__L1680:
|
|
addi $sp, $sp, -12
|
|
lw $t0, 16($sp)
|
|
lw $s0, 24($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 28
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L1682
|
|
|
|
__L1677:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, END
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1683
|
|
addi $sp, $sp, -16
|
|
la $s0, run_end
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1685
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1685:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L1686
|
|
|
|
__L1683:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, IF
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1687
|
|
addi $sp, $sp, -16
|
|
la $s0, run_if
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1689
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1689:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L1690
|
|
|
|
__L1687:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, WHILE
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1691
|
|
addi $sp, $sp, -16
|
|
la $s0, run_while
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1693
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1693:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L1694
|
|
|
|
__L1691:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, LET
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1695
|
|
addi $sp, $sp, -16
|
|
la $s0, run_let
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1697
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1697:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L1698
|
|
|
|
__L1695:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, DIM
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1699
|
|
addi $sp, $sp, -16
|
|
la $s0, run_dim
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1701
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1701:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L1702
|
|
|
|
__L1699:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, GOTO
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1703
|
|
addi $sp, $sp, -16
|
|
la $s0, run_goto
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1705
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1705:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L1706
|
|
|
|
__L1703:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, GOSUB
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1707
|
|
addi $sp, $sp, -16
|
|
la $s0, run_gosub
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1709
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1709:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L1710
|
|
|
|
__L1707:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, RETURN
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1711
|
|
addi $sp, $sp, -16
|
|
la $s0, run_return
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1713
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1713:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L1714
|
|
|
|
__L1711:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, LIST
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1715
|
|
addi $sp, $sp, -16
|
|
la $s0, run_list
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1717
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1717:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
j __L1718
|
|
|
|
__L1715:
|
|
li $s0, 1
|
|
sw $s0, 4($sp)
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L1718:
|
|
|
|
__L1714:
|
|
|
|
__L1710:
|
|
|
|
__L1706:
|
|
|
|
__L1702:
|
|
|
|
__L1698:
|
|
|
|
__L1694:
|
|
|
|
__L1690:
|
|
|
|
__L1686:
|
|
|
|
__L1682:
|
|
|
|
__L1676:
|
|
|
|
__L1672:
|
|
|
|
__L1668:
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl list_statement
|
|
list_statement:
|
|
addi $sp, $sp, 0
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, PRINT
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1719
|
|
addi $sp, $sp, -16
|
|
la $s0, list_print
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1721
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1721:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L1722
|
|
|
|
__L1719:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, INPUT
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1723
|
|
addi $sp, $sp, -16
|
|
la $s0, list_input
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1725
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1725:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L1726
|
|
|
|
__L1723:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, INPUTSTR
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1727
|
|
addi $sp, $sp, -16
|
|
la $s0, list_inputstr
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1729
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1729:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L1730
|
|
|
|
__L1727:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, RUN
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1731
|
|
addi $sp, $sp, -28
|
|
la $s0, list_run
|
|
sw $s0, 24($sp)
|
|
la $t0, __L1734
|
|
sw $t0, 20($sp)
|
|
la $t0, next_list
|
|
sw $t0, 12($sp)
|
|
la $t0, __L1735
|
|
sw $t0, 8($sp)
|
|
la $t0, statement_list
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1735:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
sw $t0, 12($sp)
|
|
lw $t0, 24($sp)
|
|
addi $sp, $sp, 12
|
|
jr $t0
|
|
|
|
__L1734:
|
|
addi $sp, $sp, -12
|
|
lw $t0, 16($sp)
|
|
lw $s0, 24($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 28
|
|
j __L1736
|
|
|
|
__L1731:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, END
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1737
|
|
addi $sp, $sp, -16
|
|
la $s0, list_end
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1739
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1739:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L1740
|
|
|
|
__L1737:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, IF
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1741
|
|
addi $sp, $sp, -16
|
|
la $s0, list_if
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1743
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1743:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L1744
|
|
|
|
__L1741:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, WHILE
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1745
|
|
addi $sp, $sp, -16
|
|
la $s0, list_while
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1747
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1747:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L1748
|
|
|
|
__L1745:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, LET
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1749
|
|
addi $sp, $sp, -16
|
|
la $s0, list_let
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1751
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1751:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L1752
|
|
|
|
__L1749:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, DIM
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1753
|
|
addi $sp, $sp, -16
|
|
la $s0, list_dim
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1755
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1755:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L1756
|
|
|
|
__L1753:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, GOTO
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1757
|
|
addi $sp, $sp, -16
|
|
la $s0, list_goto
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1759
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1759:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L1760
|
|
|
|
__L1757:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, GOSUB
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1761
|
|
addi $sp, $sp, -16
|
|
la $s0, list_gosub
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1763
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1763:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L1764
|
|
|
|
__L1761:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, RETURN
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1765
|
|
addi $sp, $sp, -16
|
|
la $s0, list_return
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1767
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1767:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L1768
|
|
|
|
__L1765:
|
|
lw $s0, 0($sp)
|
|
li $s1, 0
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
la $s1, LIST
|
|
lw $s1, 0($s1)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1769
|
|
addi $sp, $sp, -16
|
|
la $s0, list_list
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1771
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1771:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
|
|
__L1769:
|
|
|
|
__L1768:
|
|
|
|
__L1764:
|
|
|
|
__L1760:
|
|
|
|
__L1756:
|
|
|
|
__L1752:
|
|
|
|
__L1748:
|
|
|
|
__L1744:
|
|
|
|
__L1740:
|
|
|
|
__L1736:
|
|
|
|
__L1730:
|
|
|
|
__L1726:
|
|
|
|
__L1722:
|
|
addi $sp, $sp, 0
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl remove_line
|
|
remove_line:
|
|
addi $sp, $sp, -8
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 24
|
|
la $s1, next_list
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1773
|
|
sw $t0, 8($sp)
|
|
la $t0, statement_list
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1773:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
|
|
__L1774:
|
|
lw $s0, 4($sp)
|
|
beq $s0, $zero, __L1775
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, get_list_value
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1777
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1777:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
lw $s0, 0($sp)
|
|
li $s1, 1
|
|
sll $s1, $s1, 2
|
|
add $s0, $s0, $s1
|
|
lw $s0, 0($s0)
|
|
lw $s1, 8($sp)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1778
|
|
addi $sp, $sp, -16
|
|
la $s0, free_statement
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1780
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 0
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1780:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -20
|
|
la $s0, remove_value
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1782
|
|
sw $t0, 12($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 4($sp)
|
|
la $t0, kfree
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1782:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 20
|
|
addi $sp, $sp, 8
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L1778:
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 24
|
|
la $s1, next_list
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1784
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1784:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
j __L1774
|
|
|
|
__L1775:
|
|
addi $sp, $sp, 8
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl run_list
|
|
run_list:
|
|
addi $sp, $sp, -12
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 28
|
|
la $s1, next_list
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1786
|
|
sw $t0, 8($sp)
|
|
la $t0, statement_list
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1786:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
|
|
__L1787:
|
|
lw $s0, 8($sp)
|
|
beq $s0, $zero, __L1788
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 24
|
|
la $s1, get_list_value
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1790
|
|
sw $t0, 8($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1790:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $s0, $sp, 0
|
|
lw $s1, 4($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -16
|
|
la $s0, printd
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1792
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1792:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1794
|
|
sw $t0, 8($sp)
|
|
la $t0, __str85
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1794:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, list_statement
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1796
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
li $s0, 0
|
|
sll $s0, $s0, 2
|
|
lw $t0, 0($sp)
|
|
add $t0, $t0, $s0
|
|
lw $t0, 0($t0)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1796:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1798
|
|
sw $t0, 8($sp)
|
|
la $t0, __str86
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1798:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 28
|
|
la $s1, next_list
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1800
|
|
sw $t0, 8($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1800:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
j __L1787
|
|
|
|
__L1788:
|
|
li $s0, 0
|
|
sw $s0, 16($sp)
|
|
addi $sp, $sp, 12
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
addi $sp, $sp, 12
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl insert_statement
|
|
insert_statement:
|
|
addi $sp, $sp, -24
|
|
addi $sp, $sp, -24
|
|
addi $s0, $sp, 32
|
|
la $s1, create_statement_entry
|
|
sw $s1, 20($sp)
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1802
|
|
sw $t0, 12($sp)
|
|
lw $t0, 52($sp)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 48($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 20($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1802:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
lw $s1, 20($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 24
|
|
addi $s0, $sp, 4
|
|
la $s1, statement_list
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 36
|
|
la $s1, next_list
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1804
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1804:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
|
|
__L1805:
|
|
lw $s0, 16($sp)
|
|
beq $s0, $zero, __L1806
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 32
|
|
la $s1, get_list_value
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1808
|
|
sw $t0, 8($sp)
|
|
lw $t0, 36($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1808:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $s0, $sp, 0
|
|
lw $s1, 12($sp)
|
|
li $s2, 1
|
|
sll $s2, $s2, 2
|
|
add $s1, $s1, $s2
|
|
lw $s1, 0($s1)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
lw $s0, 0($sp)
|
|
lw $s1, 24($sp)
|
|
sgt $s0, $s0, $s1
|
|
beq $s0, $zero, __L1809
|
|
addi $sp, $sp, -20
|
|
la $s0, add_value
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1811
|
|
sw $t0, 12($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1811:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 20
|
|
addi $sp, $sp, 24
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
j __L1812
|
|
|
|
__L1809:
|
|
lw $s0, 0($sp)
|
|
lw $s1, 24($sp)
|
|
seq $s0, $s0, $s1
|
|
beq $s0, $zero, __L1813
|
|
addi $sp, $sp, -20
|
|
la $s0, remove_value
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1815
|
|
sw $t0, 12($sp)
|
|
lw $t0, 36($sp)
|
|
sw $t0, 4($sp)
|
|
la $t0, free_statement_entry
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1815:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 20
|
|
addi $sp, $sp, -20
|
|
la $s0, add_value
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1817
|
|
sw $t0, 12($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1817:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 20
|
|
addi $sp, $sp, 24
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
__L1813:
|
|
|
|
__L1812:
|
|
addi $s0, $sp, 4
|
|
lw $s1, 16($sp)
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 36
|
|
la $s1, next_list
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1819
|
|
sw $t0, 8($sp)
|
|
lw $t0, 36($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1819:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
j __L1805
|
|
|
|
__L1806:
|
|
addi $sp, $sp, -20
|
|
la $s0, add_value
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1821
|
|
sw $t0, 12($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1821:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 20
|
|
addi $sp, $sp, 24
|
|
lw $ra, 12($sp)
|
|
jr $ra
|
|
|
|
.globl add_statement
|
|
add_statement:
|
|
addi $sp, $sp, -8
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 24
|
|
la $s1, get_int
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1823
|
|
sw $t0, 8($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1823:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $sp, $sp, -16
|
|
la $s0, skip_whitespace
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1825
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1825:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
lw $s0, 8($sp)
|
|
lw $s0, 0($s0)
|
|
lb $s0, 0($s0)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L1826
|
|
addi $sp, $sp, -16
|
|
la $s0, remove_line
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1828
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1828:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, 8
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
__L1826:
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, get_statement
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1830
|
|
sw $t0, 8($sp)
|
|
lw $t0, 28($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1830:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
lw $s0, 0($sp)
|
|
beq $s0, $zero, __L1831
|
|
addi $sp, $sp, -20
|
|
la $s0, insert_statement
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1833
|
|
sw $t0, 12($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 4($sp)
|
|
lw $t0, 24($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1833:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 20
|
|
j __L1834
|
|
|
|
__L1831:
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1836
|
|
sw $t0, 8($sp)
|
|
la $t0, __str87
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1836:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
|
|
__L1834:
|
|
addi $sp, $sp, 8
|
|
lw $ra, 8($sp)
|
|
jr $ra
|
|
|
|
.globl entry
|
|
entry:
|
|
addi $sp, $sp, -264
|
|
la $s0, ERR_VAL
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, INT_VAL
|
|
li $s1, 1
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, STR_VAL
|
|
li $s1, 2
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -28
|
|
la $s0, kmalloc_init
|
|
sw $s0, 24($sp)
|
|
la $t0, __L1839
|
|
sw $t0, 20($sp)
|
|
la $t0, malloc
|
|
sw $t0, 12($sp)
|
|
la $t0, __L1840
|
|
sw $t0, 8($sp)
|
|
li $t0, 32000
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1840:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
sw $t0, 12($sp)
|
|
li $t0, 32000
|
|
sw $t0, 8($sp)
|
|
lw $t0, 24($sp)
|
|
addi $sp, $sp, 8
|
|
jr $t0
|
|
|
|
__L1839:
|
|
addi $sp, $sp, -8
|
|
lw $t0, 16($sp)
|
|
lw $s0, 24($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 28
|
|
addi $sp, $sp, -20
|
|
la $s0, variables
|
|
la $s1, create_dictionary
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1842
|
|
sw $t0, 8($sp)
|
|
li $t0, 0
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1842:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $sp, $sp, -20
|
|
la $s0, statement_list
|
|
la $s1, create_linked_list
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1844
|
|
sw $t0, 8($sp)
|
|
la $t0, ERR_VAL
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1844:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
addi $sp, $sp, -12
|
|
la $s0, init_tokens
|
|
sw $s0, 8($sp)
|
|
la $t0, __L1846
|
|
sw $t0, 4($sp)
|
|
lw $t0, 8($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1846:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 0($sp)
|
|
lw $s0, 8($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 12
|
|
la $s0, do_end
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, do_if
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, do_while
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, do_skip_if
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, do_skip_while
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, do_goto
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, do_gosub
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, do_return
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
la $s0, current_gosub
|
|
li $s1, 0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
|
|
__L1847:
|
|
li $s0, 1
|
|
beq $s0, $zero, __L1848
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1850
|
|
sw $t0, 8($sp)
|
|
la $t0, __str88
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1850:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -20
|
|
la $s0, inputs
|
|
sw $s0, 16($sp)
|
|
la $t0, __L1852
|
|
sw $t0, 12($sp)
|
|
addi $t0, $sp, 28
|
|
sw $t0, 4($sp)
|
|
li $t0, 256
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1852:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 8($sp)
|
|
lw $s0, 16($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 20
|
|
addi $s0, $sp, 4
|
|
addi $s1, $sp, 8
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, -16
|
|
la $s0, skip_whitespace
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1854
|
|
sw $t0, 8($sp)
|
|
addi $t0, $sp, 20
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1854:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
addi $sp, $sp, -16
|
|
la $s0, digit
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1856
|
|
sw $t0, 8($sp)
|
|
lw $t0, 20($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 0($sp)
|
|
lb $t0, 0($t0)
|
|
sb $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1856:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
beq $s0, $zero, __L1857
|
|
addi $sp, $sp, -16
|
|
la $s0, add_statement
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1859
|
|
sw $t0, 8($sp)
|
|
addi $t0, $sp, 20
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1859:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L1860
|
|
|
|
__L1857:
|
|
addi $sp, $sp, -20
|
|
addi $s0, $sp, 20
|
|
la $s1, get_statement
|
|
sw $s1, 16($sp)
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1862
|
|
sw $t0, 8($sp)
|
|
addi $t0, $sp, 24
|
|
sw $t0, 0($sp)
|
|
lw $t0, 16($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1862:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
lw $s1, 16($sp)
|
|
move $s1, $t0
|
|
sw $s1, 0($s0)
|
|
move $s0, $s1
|
|
addi $sp, $sp, 20
|
|
lw $s0, 0($sp)
|
|
seq $s0, $s0, $zero
|
|
beq $s0, $zero, __L1863
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1865
|
|
sw $t0, 8($sp)
|
|
la $t0, __str89
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1865:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
j __L1866
|
|
|
|
__L1863:
|
|
addi $sp, $sp, -16
|
|
la $s0, run_statement
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1868
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1868:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
beq $s0, $zero, __L1869
|
|
addi $sp, $sp, -16
|
|
la $s0, prints
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1871
|
|
sw $t0, 8($sp)
|
|
la $t0, __str90
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1871:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
|
|
__L1869:
|
|
addi $sp, $sp, -16
|
|
la $s0, free_statement
|
|
sw $s0, 12($sp)
|
|
la $t0, __L1873
|
|
sw $t0, 8($sp)
|
|
lw $t0, 16($sp)
|
|
sw $t0, 0($sp)
|
|
lw $t0, 12($sp)
|
|
addi $sp, $sp, 0
|
|
jr $t0
|
|
|
|
__L1873:
|
|
addi $sp, $sp, 0
|
|
lw $t0, 4($sp)
|
|
lw $s0, 12($sp)
|
|
move $s0, $t0
|
|
addi $sp, $sp, 16
|
|
|
|
__L1866:
|
|
|
|
__L1860:
|
|
j __L1847
|
|
|
|
__L1848:
|
|
addi $sp, $sp, 264
|
|
lw $ra, 4($sp)
|
|
jr $ra
|