summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbd-912 <bdunahu@colostate.edu>2024-04-27 22:42:35 -0600
committerbd-912 <bdunahu@colostate.edu>2024-04-27 22:42:35 -0600
commitbc7af8fdf0e2f6560c7d7fa6c17f893409c4830c (patch)
treed661c0af9f8ccd7a21641f2358d58bb6df21a161
parente3054fac8eca3148df169afa2cd85de40cf5ac94 (diff)
Implement variable spilling
-rw-r--r--output/BinaryTree.vaporm2772
-rw-r--r--output/BubbleSort.vaporm192
-rw-r--r--output/Factorial.vaporm66
-rw-r--r--output/LinearSearch.vaporm252
-rw-r--r--output/LinkedList.vaporm1560
-rw-r--r--output/QuickSort.vaporm252
-rw-r--r--output/TreeVisitor.vaporm3242
-rw-r--r--output/ex29.vaporm4
-rw-r--r--output/ex30.vaporm6
-rw-r--r--output/ex31.vaporm8
-rw-r--r--output/ex32.vaporm36
-rw-r--r--output/ex33.vaporm68
-rw-r--r--output/ex34.vaporm36
-rw-r--r--output/ex35.vaporm36
-rw-r--r--output/ex36.vaporm36
-rw-r--r--output/ex37.vaporm36
-rw-r--r--output/ex38.vaporm36
-rw-r--r--output/ex39.vaporm4
-rw-r--r--output/ex40.vaporm36
-rw-r--r--output/ex41.vaporm36
-rw-r--r--output/ex43.vaporm36
-rw-r--r--output/ex44.vaporm36
-rw-r--r--output/ex45.vaporm66
-rw-r--r--output/ex46.vaporm98
-rw-r--r--output/ex47.vaporm98
-rw-r--r--output/ex48.vaporm68
-rw-r--r--output/ex49.vaporm38
-rw-r--r--output/ex50.vaporm100
-rw-r--r--vaporize/LIRDict.java10
-rw-r--r--vaporize/RegisterAlloc.java10
-rw-r--r--vaporize/VaporizeVisitor.java80
31 files changed, 1444 insertions, 7910 deletions
diff --git a/output/BinaryTree.vaporm b/output/BinaryTree.vaporm
index c622fd9..e69de29 100644
--- a/output/BinaryTree.vaporm
+++ b/output/BinaryTree.vaporm
@@ -1,2772 +0,0 @@
-const functable_BT
- :BT_Start
-const functable_Tree
- :Tree_Init
- :Tree_SetRight
- :Tree_SetLeft
- :Tree_GetRight
- :Tree_GetLeft
- :Tree_GetKey
- :Tree_SetKey
- :Tree_GetHas_Right
- :Tree_GetHas_Left
- :Tree_SetHas_Left
- :Tree_SetHas_Right
- :Tree_Compare
- :Tree_Insert
- :Tree_Delete
- :Tree_Remove
- :Tree_RemoveRight
- :Tree_RemoveLeft
- :Tree_Search
- :Tree_Print
- :Tree_RecPrint
-func Main [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s7 = HeapAllocZ(4 )
- [$s7+0] = :functable_BT
- $s6 = $s7
- $s7 = [$s6+0]
- $s5 = [$s7+0]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s6
- call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s7 = $v0
- $s5 = $s7
- PrintIntS($s5 )
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func BT_Start [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s7 = $a0
- $s6 = HeapAllocZ(104 )
- [$s6+0] = :functable_Tree
- $s7 = $s6
- $s7 = $s7
- $s6 = [$s7+0]
- $s5 = [$s6+0]
- $s6 = 16
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $s6
- call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s4 = $v0
- $s6 = $s4
- $s7 = $s7
- $s6 = [$s7+0]
- $s4 = [$s6+72]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s6 = $v0
- $s6 = $s6
- $s6 = 100000000
- PrintIntS($s6 )
- $s7 = $s7
- $s6 = [$s7+0]
- $s4 = [$s6+48]
- $s6 = 8
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $s6
- call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s5 = $v0
- $s6 = $s5
- $s7 = $s7
- $s5 = [$s7+0]
- $s6 = [$s5+72]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s6
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s5 = $v0
- $s6 = $s5
- $s7 = $s7
- $s5 = [$s7+0]
- $s6 = [$s5+48]
- $s5 = 24
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $s5
- call $s6
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s4 = $v0
- $s6 = $s4
- $s7 = $s7
- $s4 = [$s7+0]
- $s5 = [$s4+48]
- $s4 = 4
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $s4
- call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s6 = $v0
- $s6 = $s6
- $s7 = $s7
- $s6 = [$s7+0]
- $s4 = [$s6+48]
- $s6 = 12
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $s6
- call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s5 = $v0
- $s6 = $s5
- $s7 = $s7
- $s5 = [$s7+0]
- $s6 = [$s5+48]
- $s5 = 20
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $s5
- call $s6
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s4 = $v0
- $s6 = $s4
- $s7 = $s7
- $s4 = [$s7+0]
- $s5 = [$s4+48]
- $s4 = 28
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $s4
- call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s6 = $v0
- $s6 = $s6
- $s7 = $s7
- $s6 = [$s7+0]
- $s4 = [$s6+48]
- $s6 = 14
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $s6
- call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s5 = $v0
- $s6 = $s5
- $s7 = $s7
- $s5 = [$s7+0]
- $s6 = [$s5+72]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s6
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s5 = $v0
- $s6 = $s5
- $s7 = $s7
- $s5 = [$s7+0]
- $s6 = [$s5+68]
- $s5 = 24
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $s5
- call $s6
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s4 = $v0
- $s5 = $s4
- PrintIntS($s5 )
- $s7 = $s7
- $s5 = [$s7+0]
- $s4 = [$s5+68]
- $s5 = 12
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $s5
- call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s6 = $v0
- $s5 = $s6
- PrintIntS($s5 )
- $s7 = $s7
- $s5 = [$s7+0]
- $s6 = [$s5+68]
- $s5 = 16
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $s5
- call $s6
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s4 = $v0
- $s5 = $s4
- PrintIntS($s5 )
- $s7 = $s7
- $s5 = [$s7+0]
- $s4 = [$s5+68]
- $s5 = 50
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $s5
- call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s6 = $v0
- $s5 = $s6
- PrintIntS($s5 )
- $s7 = $s7
- $s5 = [$s7+0]
- $s6 = [$s5+68]
- $s5 = 12
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $s5
- call $s6
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s4 = $v0
- $s5 = $s4
- PrintIntS($s5 )
- $s7 = $s7
- $s5 = [$s7+0]
- $s4 = [$s5+52]
- $s5 = 12
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $s5
- call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s6 = $v0
- $s6 = $s6
- $s7 = $s7
- $s6 = [$s7+0]
- $s5 = [$s6+72]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s6 = $v0
- $s6 = $s6
- $s7 = $s7
- $s6 = [$s7+0]
- $s5 = [$s6+68]
- $s6 = 12
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $s6
- call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s4 = $v0
- $s6 = $s4
- PrintIntS($s6 )
- $s6 = 0
- $v0 = $s6
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_Init [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s6 = $a0
- $s7 = $a1
- [$s6+88] = $s7
- [$s6+92] = 0
- [$s6+96] = 0
- $s6 = 1
- $v0 = $s6
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_SetRight [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s6 = $a0
- $s7 = $a1
- [$s6+84] = $s7
- $s6 = 1
- $v0 = $s6
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_SetLeft [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s6 = $a0
- $s7 = $a1
- [$s6+80] = $s7
- $s6 = 1
- $v0 = $s6
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_GetRight [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s6 = $a0
- $s7 = [$s6+84]
- $v0 = $s7
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_GetLeft [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s6 = $a0
- $s7 = [$s6+80]
- $v0 = $s7
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_GetKey [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s6 = $a0
- $s7 = [$s6+88]
- $v0 = $s7
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_SetKey [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s6 = $a0
- $s7 = $a1
- [$s6+88] = $s7
- $s6 = 1
- $v0 = $s6
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_GetHas_Right [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s6 = $a0
- $s7 = [$s6+96]
- $v0 = $s7
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_GetHas_Left [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s6 = $a0
- $s7 = [$s6+92]
- $v0 = $s7
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_SetHas_Left [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s6 = $a0
- $s7 = $a1
- [$s6+92] = $s7
- $s6 = 1
- $v0 = $s6
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_SetHas_Right [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s6 = $a0
- $s7 = $a1
- [$s6+96] = $s7
- $s6 = 1
- $v0 = $s6
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_Compare [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s5 = $a0
- $s6 = $a1
- $s7 = $a2
- $s4 = 0
- $s5 = $s7
- $s3 = 1
- $s2 = Add($s5 $s3 )
- $s3 = $s2
- $s2 = $s6
- $s5 = $s7
- $s7 = LtS($s2 $s5 )
- $s5 = $s7
- if0 $s5 goto :if100_else
-if100_body:
- $s4 = 0
- goto :if100_end
-if100_else:
- $s5 = $s6
- $s6 = $s3
- $s3 = LtS($s5 $s6 )
- $s6 = Eq($s3 0 )
- $s3 = $s6
- if0 $s3 goto :if104_else
-if104_body:
- $s4 = 0
- goto :if104_end
-if104_else:
- $s4 = 1
-if104_end:
-if100_end:
- $s3 = $s4
- $v0 = $s3
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_Insert [in 0, out 0, local 29]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s6 = $a0
- $s7 = $a1
- $s5 = HeapAllocZ(104 )
- [$s5+0] = :functable_Tree
- $s4 = $s5
- $s4 = $s4
- $s5 = [$s4+0]
- $s3 = [$s5+0]
- $s5 = $s7
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s4
- $a1 = $s5
- call $s3
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s2 = $v0
- $s5 = $s2
- $s5 = $s6
- $s6 = 1
-while115_test:
- $s2 = $s6
- if0 $s2 goto :while115_end
-while115_body:
- $s5 = $s5
- $s2 = [$s5+0]
- null = [$s2+20]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $t5 = $v0
- $s2 = $t5
- null = $s7
- null = $s2
- $s2 = LtS(null null )
- null = $s2
- if0 null goto :if120_else
-if120_body:
- $s5 = $s5
- $s2 = [$s5+0]
- null = [$s2+32]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $t7 = $v0
- $s2 = $t7
- if0 $s2 goto :if124_else
-if124_body:
- $s5 = $s5
- $s2 = [$s5+0]
- null = [$s2+16]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s3 = $v0
- $s5 = $s3
- goto :if124_end
-if124_else:
- $s6 = 0
- $s5 = $s5
- $s2 = [$s5+0]
- null = [$s2+36]
- $s2 = 1
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- $a1 = $s2
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s0 = $v0
- $s5 = $s0
- $s5 = $s5
- $s2 = [$s5+0]
- null = [$s2+8]
- $s2 = $s4
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- $a1 = $s2
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $t3 = $v0
- $s5 = $t3
-if124_end:
- goto :if120_end
-if120_else:
- $s5 = $s5
- $s2 = [$s5+0]
- null = [$s2+28]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $t4 = $v0
- $s2 = $t4
- if0 $s2 goto :if139_else
-if139_body:
- $s5 = $s5
- $s2 = [$s5+0]
- null = [$s2+12]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s2 = $v0
- $s5 = $s2
- goto :if139_end
-if139_else:
- $s6 = 0
- $s5 = $s5
- $s2 = [$s5+0]
- null = [$s2+40]
- $s2 = 1
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- $a1 = $s2
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $t6 = $v0
- $s5 = $t6
- $s5 = $s5
- $s2 = [$s5+0]
- null = [$s2+4]
- $s2 = $s4
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- $a1 = $s2
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s1 = $v0
- $s5 = $s1
-if139_end:
-if120_end:
- goto :while115_test
-while115_end:
- $t3 = 1
- $v0 = $t3
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_Delete [in 0, out 0, local 44]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s6 = $a0
- $s7 = $a1
- $s5 = $s6
- $s4 = $s6
- $s3 = 1
- $s2 = 0
- $s1 = 1
-while155_test:
- $s0 = $s3
- if0 $s0 goto :while155_end
-while155_body:
- $s5 = $s5
- $s0 = [$s5+0]
- null = [$s0+20]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $t5 = $v0
- $s0 = $t5
- null = $s7
- null = $s0
- null = LtS(null null )
- null = null
- if0 null goto :if160_else
-if160_body:
- $s5 = $s5
- null = [$s5+0]
- null = [null+32]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- null = $v0
- null = null
- if0 null goto :if164_else
-if164_body:
- $s4 = $s5
- $s5 = $s5
- null = [$s5+0]
- null = [null+16]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $t4 = $v0
- $s5 = $t4
- goto :if164_end
-if164_else:
- $s3 = 0
-if164_end:
- goto :if160_end
-if160_else:
- null = $s0
- $s0 = $s7
- null = LtS(null $s0 )
- $s0 = null
- if0 $s0 goto :if171_else
-if171_body:
- $s5 = $s5
- $s0 = [$s5+0]
- null = [$s0+28]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s0 = $v0
- null = $s0
- if0 null goto :if175_else
-if175_body:
- $s4 = $s5
- $s5 = $s5
- $s0 = [$s5+0]
- null = [$s0+12]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s0 = $v0
- $s5 = $s0
- goto :if175_end
-if175_else:
- $s3 = 0
-if175_end:
- goto :if171_end
-if171_else:
- $s0 = $s1
- if0 $s0 goto :if182_else
-if182_body:
- $s5 = $s5
- $s0 = [$s5+0]
- null = [$s0+28]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $t6 = $v0
- $s0 = Eq($t6 0 )
- null = $s0
- $s5 = $s5
- $s0 = [$s5+0]
- null = [$s0+32]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $t7 = $v0
- $s0 = Eq($t7 0 )
- null = $s0
- $s0 = Eq(1 null )
- null = Eq(1 null )
- null = Eq($s0 null )
- $s0 = null
- if0 $s0 goto :if183_else
-if183_body:
- $s0 = 1
- goto :if183_end
-if183_else:
- $s0 = [$s6+0]
- null = $s4
- null = $s5
- $s0 = [$s0+56]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s6
- $a1 = null
- $a2 = null
- call $s0
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $t3 = $v0
- $s0 = $t3
-if183_end:
- goto :if182_end
-if182_else:
- $s0 = [$s6+0]
- null = $s4
- null = $s5
- $s0 = [$s0+56]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s6
- $a1 = null
- $a2 = null
- call $s0
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- null = $v0
- $s0 = null
-if182_end:
- $s2 = 1
- $s3 = 0
-if171_end:
-if160_end:
- $s1 = 0
- goto :while155_test
-while155_end:
- $t3 = $s2
- $v0 = $t3
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_Remove [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s5 = $a0
- $s6 = $a1
- $s7 = $a2
- $s7 = $s7
- $s4 = [$s7+0]
- $s3 = [$s4+32]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s3
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s4 = $v0
- $s3 = $s4
- if0 $s3 goto :if206_else
-if206_body:
- $s3 = [$s5+0]
- $s4 = $s6
- $s2 = $s7
- $s3 = [$s3+64]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- $a1 = $s4
- $a2 = $s2
- call $s3
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s1 = $v0
- $s2 = $s1
- goto :if206_end
-if206_else:
- $s7 = $s7
- $s2 = [$s7+0]
- $s1 = [$s2+28]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s1
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s2 = $v0
- $s1 = $s2
- if0 $s1 goto :if214_else
-if214_body:
- $s1 = [$s5+0]
- $s2 = $s6
- $s4 = $s7
- $s1 = [$s1+60]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- $a1 = $s2
- $a2 = $s4
- call $s1
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s3 = $v0
- $s2 = $s3
- goto :if214_end
-if214_else:
- $s7 = $s7
- $s3 = [$s7+0]
- $s4 = [$s3+20]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s3 = $v0
- $s4 = $s3
- $s6 = $s6
- $s3 = [$s6+0]
- $s7 = [$s3+16]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s6
- call $s7
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s3 = $v0
- $s7 = $s3
- $s3 = [$s7+0]
- $s2 = [$s3+20]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s2
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s3 = $v0
- $s2 = $s3
- $s3 = [$s5+0]
- $s7 = $s4
- $s4 = $s2
- $s3 = [$s3+44]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- $a1 = $s7
- $a2 = $s4
- call $s3
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s2 = $v0
- $s4 = $s2
- if0 $s4 goto :if232_else
-if232_body:
- $s6 = $s6
- $s4 = [$s6+0]
- $s2 = [$s4+8]
- $s4 = [$s5+100]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s6
- $a1 = $s4
- call $s2
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s7 = $v0
- $s2 = $s7
- $s6 = $s6
- $s7 = [$s6+0]
- $s4 = [$s7+36]
- $s7 = 0
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s6
- $a1 = $s7
- call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s2 = $v0
- $s2 = $s2
- goto :if232_end
-if232_else:
- $s6 = $s6
- $s2 = [$s6+0]
- $s7 = [$s2+4]
- $s2 = [$s5+100]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s6
- $a1 = $s2
- call $s7
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s5 = $v0
- $s2 = $s5
- $s6 = $s6
- $s5 = [$s6+0]
- $s2 = [$s5+40]
- $s5 = 0
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s6
- $a1 = $s5
- call $s2
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s7 = $v0
- $s2 = $s7
-if232_end:
-if214_end:
-if206_end:
- $s7 = 1
- $v0 = $s7
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_RemoveRight [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s5 = $a0
- $s6 = $a1
- $s7 = $a2
-while254_test:
- $s7 = $s7
- $t7 = [$s7+0]
- $t6 = [$t7+28]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $t6
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s1 = $v0
- $t6 = $s1
- if0 $t6 goto :while254_end
-while254_body:
- $s7 = $s7
- $t6 = [$s7+0]
- $t7 = [$t6+24]
- $s7 = $s7
- $t6 = [$s7+0]
- $t5 = [$t6+12]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $t5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s3 = $v0
- $t5 = $s3
- $t6 = [$t5+0]
- $t4 = [$t6+20]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $t5
- call $t4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s4 = $v0
- $t4 = $s4
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $t4
- call $t7
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s0 = $v0
- $t4 = $s0
- $s6 = $s7
- $s7 = $s7
- $t4 = [$s7+0]
- $t7 = [$t4+12]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $t7
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s2 = $v0
- $s7 = $s2
- goto :while254_test
-while254_end:
- $s6 = $s6
- $s0 = [$s6+0]
- $s1 = [$s0+4]
- $s0 = [$s5+100]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s6
- $a1 = $s0
- call $s1
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s5 = $v0
- $t4 = $s5
- $s6 = $s6
- $s5 = [$s6+0]
- $s0 = [$s5+40]
- $s5 = 0
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s6
- $a1 = $s5
- call $s0
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s1 = $v0
- $t4 = $s1
- $s1 = 1
- $v0 = $s1
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_RemoveLeft [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s5 = $a0
- $s6 = $a1
- $s7 = $a2
-while282_test:
- $s7 = $s7
- $t7 = [$s7+0]
- $t6 = [$t7+32]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $t6
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s1 = $v0
- $t6 = $s1
- if0 $t6 goto :while282_end
-while282_body:
- $s7 = $s7
- $t6 = [$s7+0]
- $t7 = [$t6+24]
- $s7 = $s7
- $t6 = [$s7+0]
- $t5 = [$t6+16]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $t5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s3 = $v0
- $t5 = $s3
- $t6 = [$t5+0]
- $t4 = [$t6+20]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $t5
- call $t4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s4 = $v0
- $t4 = $s4
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $t4
- call $t7
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s0 = $v0
- $t4 = $s0
- $s6 = $s7
- $s7 = $s7
- $t4 = [$s7+0]
- $t7 = [$t4+16]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $t7
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s2 = $v0
- $s7 = $s2
- goto :while282_test
-while282_end:
- $s6 = $s6
- $s0 = [$s6+0]
- $s1 = [$s0+8]
- $s0 = [$s5+100]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s6
- $a1 = $s0
- call $s1
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s5 = $v0
- $t4 = $s5
- $s6 = $s6
- $s5 = [$s6+0]
- $s0 = [$s5+36]
- $s5 = 0
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s6
- $a1 = $s5
- call $s0
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s1 = $v0
- $t4 = $s1
- $s1 = 1
- $v0 = $s1
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_Search [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s6 = $a0
- $s7 = $a1
- $s5 = $s6
- $s6 = 1
- $s4 = 0
-while310_test:
- $s3 = $s6
- if0 $s3 goto :while310_end
-while310_body:
- $s5 = $s5
- $s3 = [$s5+0]
- $t7 = [$s3+20]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- call $t7
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s0 = $v0
- $t7 = $s0
- $s3 = $s7
- $t6 = $t7
- $t5 = LtS($s3 $t6 )
- $t6 = $t5
- if0 $t6 goto :if315_else
-if315_body:
- $s5 = $s5
- $t6 = [$s5+0]
- $t5 = [$t6+32]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- call $t5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s1 = $v0
- $t5 = $s1
- if0 $t5 goto :if319_else
-if319_body:
- $s5 = $s5
- $t5 = [$s5+0]
- $t6 = [$t5+16]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- call $t6
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s2 = $v0
- $s5 = $s2
- goto :if319_end
-if319_else:
- $s6 = 0
-if319_end:
- goto :if315_end
-if315_else:
- $t6 = $t7
- $t7 = $s7
- $t5 = LtS($t6 $t7 )
- $t7 = $t5
- if0 $t7 goto :if326_else
-if326_body:
- $s5 = $s5
- $t7 = [$s5+0]
- $t5 = [$t7+28]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- call $t5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $t7 = $v0
- $t5 = $t7
- if0 $t5 goto :if330_else
-if330_body:
- $s5 = $s5
- $t5 = [$s5+0]
- $t7 = [$t5+12]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- call $t7
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $t5 = $v0
- $s5 = $t5
- goto :if330_end
-if330_else:
- $s6 = 0
-if330_end:
- goto :if326_end
-if326_else:
- $s4 = 1
- $s6 = 0
-if326_end:
-if315_end:
- goto :while310_test
-while310_end:
- $s0 = $s4
- $v0 = $s0
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_Print [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s6 = $a0
- $s7 = $s6
- $s5 = [$s6+0]
- $s4 = $s7
- $s5 = [$s5+76]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s6
- $a1 = $s4
- call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s7 = $v0
- $s4 = $s7
- $s4 = 1
- $v0 = $s4
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_RecPrint [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s6 = $a0
- $s7 = $a1
- $s7 = $s7
- $s5 = [$s7+0]
- $s4 = [$s5+32]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s5 = $v0
- $s4 = $s5
- if0 $s4 goto :if342_else
-if342_body:
- $s4 = [$s6+0]
- $s7 = $s7
- $s5 = [$s7+0]
- $s3 = [$s5+16]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s3
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s5 = $v0
- $s3 = $s5
- $s4 = [$s4+76]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s6
- $a1 = $s3
- call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s5 = $v0
- $s3 = $s5
- goto :if342_end
-if342_else:
- $s3 = 1
-if342_end:
- $s7 = $s7
- $s3 = [$s7+0]
- $s5 = [$s3+20]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s3 = $v0
- $s5 = $s3
- PrintIntS($s5 )
- $s7 = $s7
- $s5 = [$s7+0]
- $s3 = [$s5+28]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s3
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s5 = $v0
- $s3 = $s5
- if0 $s3 goto :if356_else
-if356_body:
- $s3 = [$s6+0]
- $s7 = $s7
- $s5 = [$s7+0]
- $s4 = [$s5+12]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s5 = $v0
- $s4 = $s5
- $s3 = [$s3+76]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s6
- $a1 = $s4
- call $s3
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s5 = $v0
- $s3 = $s5
- goto :if356_end
-if356_else:
- $s3 = 1
-if356_end:
- $s5 = 1
- $v0 = $s5
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func AllocArray [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s7 = $a0
- $s6 = MulS($s7 4 )
- $s6 = Add($s6 4 )
- $s5 = HeapAllocZ($s6 )
- [$s5+0] = $s7
- $v0 = $s5
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
diff --git a/output/BubbleSort.vaporm b/output/BubbleSort.vaporm
index aa6cb19..0e223d0 100644
--- a/output/BubbleSort.vaporm
+++ b/output/BubbleSort.vaporm
@@ -3,7 +3,7 @@ const functable_BBS
:BBS_Sort
:BBS_Print
:BBS_Init
-func Main [in 0, out 0, local 17]
+func Main [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -18,27 +18,21 @@ func Main [in 0, out 0, local 17]
$s7 = [$s6+0]
$s5 = [$s7+0]
$s7 = 10
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
$a1 = $s7
call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s4 = $v0
$s7 = $s4
PrintIntS($s7 )
@@ -51,7 +45,7 @@ func Main [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func BBS_Start [in 0, out 0, local 17]
+func BBS_Start [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -65,101 +59,77 @@ func BBS_Start [in 0, out 0, local 17]
$s5 = [$s6+0]
$s4 = $s7
$s5 = [$s5+12]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
$a1 = $s4
call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s7 = $v0
$s4 = $s7
$s4 = [$s6+0]
$s4 = [$s4+8]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s7 = $v0
$s4 = $s7
$s7 = 99999
PrintIntS($s7 )
$s7 = [$s6+0]
$s7 = [$s7+4]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
call $s7
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s4 = $v0
$s4 = $s4
$s4 = [$s6+0]
$s4 = [$s4+8]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s7 = $v0
$s4 = $s7
$s7 = 0
@@ -173,7 +143,7 @@ func BBS_Start [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func BBS_Sort [in 0, out 0, local 17]
+func BBS_Sort [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -283,7 +253,7 @@ while23_end:
$s6 = local[6]
$s7 = local[7]
ret
-func BBS_Print [in 0, out 0, local 17]
+func BBS_Print [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -325,7 +295,7 @@ while69_end:
$s6 = local[6]
$s7 = local[7]
ret
-func BBS_Init [in 0, out 0, local 17]
+func BBS_Init [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -337,26 +307,20 @@ func BBS_Init [in 0, out 0, local 17]
$s6 = $a0
$s7 = $a1
[$s6+20] = $s7
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s7
call :AllocArray
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s5 = $v0
[$s6+16] = $s5
$s5 = [$s6+16]
@@ -420,7 +384,7 @@ func BBS_Init [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func AllocArray [in 0, out 0, local 17]
+func AllocArray [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
diff --git a/output/Factorial.vaporm b/output/Factorial.vaporm
index 7c973e1..714dcb0 100644
--- a/output/Factorial.vaporm
+++ b/output/Factorial.vaporm
@@ -1,6 +1,6 @@
const functable_Fac
:Fac_ComputeFac
-func Main [in 0, out 0, local 17]
+func Main [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -15,27 +15,21 @@ func Main [in 0, out 0, local 17]
$s7 = [$s6+0]
$s5 = [$s7+0]
$s7 = 10
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
$a1 = $s7
call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s4 = $v0
$s7 = $s4
PrintIntS($s7 )
@@ -48,7 +42,7 @@ func Main [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func Fac_ComputeFac [in 0, out 0, local 17]
+func Fac_ComputeFac [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -75,27 +69,21 @@ if6_else:
$s1 = Sub($s2 $s7 )
$s7 = $s1
$s5 = [$s5+0]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
$a1 = $s7
call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s1 = $v0
$s7 = $s1
$s1 = MulS($s3 $s7 )
@@ -112,7 +100,7 @@ if6_end:
$s6 = local[6]
$s7 = local[7]
ret
-func AllocArray [in 0, out 0, local 17]
+func AllocArray [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
diff --git a/output/LinearSearch.vaporm b/output/LinearSearch.vaporm
index 93a18d6..f1b48cf 100644
--- a/output/LinearSearch.vaporm
+++ b/output/LinearSearch.vaporm
@@ -3,7 +3,7 @@ const functable_LS
:LS_Print
:LS_Search
:LS_Init
-func Main [in 0, out 0, local 17]
+func Main [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -18,27 +18,21 @@ func Main [in 0, out 0, local 17]
$s7 = [$s6+0]
$s5 = [$s7+0]
$s7 = 10
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
$a1 = $s7
call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s4 = $v0
$s7 = $s4
PrintIntS($s7 )
@@ -51,7 +45,7 @@ func Main [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func LS_Start [in 0, out 0, local 17]
+func LS_Start [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -65,51 +59,39 @@ func LS_Start [in 0, out 0, local 17]
$s5 = [$s6+0]
$s4 = $s7
$s5 = [$s5+12]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
$a1 = $s4
call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s7 = $v0
$s4 = $s7
$s4 = [$s6+0]
$s4 = [$s4+4]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s7 = $v0
$s4 = $s7
$s4 = 9999
@@ -117,108 +99,84 @@ func LS_Start [in 0, out 0, local 17]
$s4 = [$s6+0]
$s7 = 8
$s4 = [$s4+8]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
$a1 = $s7
call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s5 = $v0
$s7 = $s5
PrintIntS($s7 )
$s7 = [$s6+0]
$s5 = 12
$s7 = [$s7+8]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
$a1 = $s5
call $s7
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s4 = $v0
$s5 = $s4
PrintIntS($s5 )
$s5 = [$s6+0]
$s4 = 17
$s5 = [$s5+8]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
$a1 = $s4
call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s7 = $v0
$s4 = $s7
PrintIntS($s4 )
$s4 = [$s6+0]
$s7 = 50
$s4 = [$s4+8]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
$a1 = $s7
call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s5 = $v0
$s7 = $s5
PrintIntS($s7 )
@@ -233,7 +191,7 @@ func LS_Start [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func LS_Print [in 0, out 0, local 17]
+func LS_Print [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -275,7 +233,7 @@ while29_end:
$s6 = local[6]
$s7 = local[7]
ret
-func LS_Search [in 0, out 0, local 17]
+func LS_Search [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -347,7 +305,7 @@ while42_end:
$s6 = local[6]
$s7 = local[7]
ret
-func LS_Init [in 0, out 0, local 17]
+func LS_Init [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -359,26 +317,20 @@ func LS_Init [in 0, out 0, local 17]
$s6 = $a0
$s7 = $a1
[$s6+20] = $s7
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s7
call :AllocArray
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s5 = $v0
[$s6+16] = $s5
$s5 = 1
@@ -430,7 +382,7 @@ while70_end:
$s6 = local[6]
$s7 = local[7]
ret
-func AllocArray [in 0, out 0, local 17]
+func AllocArray [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
diff --git a/output/LinkedList.vaporm b/output/LinkedList.vaporm
index 7b480ea..d43ccb4 100644
--- a/output/LinkedList.vaporm
+++ b/output/LinkedList.vaporm
@@ -18,7 +18,7 @@ const functable_List
:List_Print
const functable_LL
:LL_Start
-func Main [in 0, out 0, local 17]
+func Main [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -32,26 +32,20 @@ func Main [in 0, out 0, local 17]
$s6 = $s7
$s7 = [$s6+0]
$s5 = [$s7+0]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s7 = $v0
$s5 = $s7
PrintIntS($s5 )
@@ -64,7 +58,7 @@ func Main [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func Element_Init [in 0, out 0, local 17]
+func Element_Init [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -91,7 +85,7 @@ func Element_Init [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func Element_GetAge [in 0, out 0, local 17]
+func Element_GetAge [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -112,7 +106,7 @@ func Element_GetAge [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func Element_GetSalary [in 0, out 0, local 17]
+func Element_GetSalary [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -133,7 +127,7 @@ func Element_GetSalary [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func Element_GetMarried [in 0, out 0, local 17]
+func Element_GetMarried [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -154,7 +148,7 @@ func Element_GetMarried [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func Element_Equal [in 0, out 0, local 17]
+func Element_Equal [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -169,54 +163,42 @@ func Element_Equal [in 0, out 0, local 17]
$s6 = $s6
$s4 = [$s6+0]
$s3 = [$s4+4]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
call $s3
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s4 = $v0
$s3 = $s4
$s4 = [$s5+0]
$s2 = $s3
$s3 = [$s5+24]
$s4 = [$s4+20]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s5
$a1 = $s2
$a2 = $s3
call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s1 = $v0
$s3 = Eq($s1 0 )
$s1 = $s3
@@ -228,54 +210,42 @@ if12_else:
$s6 = $s6
$s1 = [$s6+0]
$s3 = [$s1+8]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
call $s3
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s1 = $v0
$s3 = $s1
$s1 = [$s5+0]
$s2 = $s3
$s3 = [$s5+28]
$s1 = [$s1+20]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s5
$a1 = $s2
$a2 = $s3
call $s1
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s4 = $v0
$s3 = Eq($s4 0 )
$s4 = $s3
@@ -290,26 +260,20 @@ if27_body:
$s6 = $s6
$s4 = [$s6+0]
$s5 = [$s4+12]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s4 = $v0
$s5 = Eq($s4 0 )
$s4 = $s5
@@ -325,26 +289,20 @@ if27_else:
$s6 = $s6
$s4 = [$s6+0]
$s5 = [$s4+12]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s4 = $v0
$s5 = $s4
if0 $s5 goto :if33_else
@@ -368,7 +326,7 @@ if12_end:
$s6 = local[6]
$s7 = local[7]
ret
-func Element_Compare [in 0, out 0, local 17]
+func Element_Compare [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -418,7 +376,7 @@ if41_end:
$s6 = local[6]
$s7 = local[7]
ret
-func List_Init [in 0, out 0, local 17]
+func List_Init [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -440,7 +398,7 @@ func List_Init [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func List_InitNew [in 0, out 0, local 17]
+func List_InitNew [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -467,7 +425,7 @@ func List_InitNew [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func List_Insert [in 0, out 0, local 17]
+func List_Insert [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -488,29 +446,23 @@ func List_Insert [in 0, out 0, local 17]
$s6 = $s7
$s7 = $s5
$s5 = 0
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s4
$a1 = $s6
$a2 = $s7
$a3 = $s5
call $s3
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s2 = $v0
$s5 = $s2
$s5 = $s4
@@ -524,7 +476,7 @@ func List_Insert [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func List_SetNext [in 0, out 0, local 17]
+func List_SetNext [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -547,7 +499,7 @@ func List_SetNext [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func List_Delete [in 0, out 0, local 38]
+func List_Delete [in 0, out 0, local 35]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -570,225 +522,281 @@ func List_Delete [in 0, out 0, local 38]
$t7 = [$s6+40]
while65_test:
$s6 = Eq($s0 0 )
- null = $s6
+ $t0 = local[17]
+ $t0 = $s6
+ local[17] = $t0
$s6 = Eq($s4 0 )
- null = $s6
- $s6 = Eq(1 null )
- null = Eq(1 null )
- null = Eq($s6 null )
- $s6 = null
+ $t0 = local[18]
+ $t0 = $s6
+ local[18] = $t0
+ $t0 = local[17]
+ $s6 = Eq(1 $t0 )
+ local[17] = $t0
+ $t0 = local[19]
+ $t1 = local[18]
+ $t0 = Eq(1 $t1 )
+ local[18] = $t1
+ $t1 = local[20]
+ $t2 = local[19]
+ $t1 = Eq($s6 $t2 )
+ local[19] = $t2
+ local[20] = $t1
+ $t1 = local[20]
+ $s6 = $t1
+ local[20] = $t1
if0 $s6 goto :while65_end
+ local[19] = $t0
while65_body:
$s7 = $s7
$s6 = [$s7+0]
- null = [$s6+16]
+ $t0 = local[21]
+ $t0 = [$s6+16]
+ local[21] = $t0
$s6 = $t7
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s7
$a1 = $s6
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t0 = local[21]
+ $t1 = local[21]
+ call $t1
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$t3 = $v0
+ local[21] = $t1
$s6 = $t3
+ local[21] = $t0
if0 $s6 goto :if74_else
if74_body:
$s4 = 1
$s6 = $s2
- null = 0
- null = LtS($s6 null )
- $s6 = null
+ $t0 = local[22]
+ $t0 = 0
+ local[22] = $t0
+ $t0 = local[23]
+ $t1 = local[22]
+ $t0 = LtS($s6 $t1 )
+ local[22] = $t1
+ $t1 = local[23]
+ $s6 = $t1
+ local[23] = $t1
if0 $s6 goto :if79_else
+ local[23] = $t0
if79_body:
$s1 = $s1
$s6 = [$s1+0]
- null = [$s6+32]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ $t0 = local[24]
+ $t0 = [$s6+32]
+ local[24] = $t0
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s1
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t0 = local[24]
+ $t1 = local[24]
+ call $t1
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$t5 = $v0
+ local[24] = $t1
$s5 = $t5
+ local[24] = $t0
goto :if79_end
if79_else:
$s6 = 0
- null = 555
- null = Sub($s6 null )
- $s6 = null
+ $t0 = local[25]
+ $t0 = 555
+ local[25] = $t0
+ $t0 = local[26]
+ $t1 = local[25]
+ $t0 = Sub($s6 $t1 )
+ local[25] = $t1
+ $t1 = local[26]
+ $s6 = $t1
+ local[26] = $t1
PrintIntS($s6 )
+ local[26] = $t0
$s3 = $s3
$s6 = [$s3+0]
- null = [$s6+12]
+ $t0 = local[27]
+ $t0 = [$s6+12]
+ local[27] = $t0
$s1 = $s1
$s6 = [$s1+0]
- null = [$s6+32]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ $t0 = local[28]
+ $t0 = [$s6+32]
+ local[28] = $t0
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s1
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t0 = local[28]
+ $t1 = local[28]
+ call $t1
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$t6 = $v0
+ local[28] = $t1
$s6 = $t6
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[28] = $t0
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s3
$a1 = $s6
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t0 = local[27]
+ $t1 = local[27]
+ call $t1
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$t4 = $v0
+ local[27] = $t1
$s6 = $t4
+ local[27] = $t0
$s6 = 0
- null = 555
- null = Sub($s6 null )
- $s6 = null
+ $t0 = local[29]
+ $t0 = 555
+ local[29] = $t0
+ $t0 = local[30]
+ $t1 = local[29]
+ $t0 = Sub($s6 $t1 )
+ local[29] = $t1
+ $t1 = local[30]
+ $s6 = $t1
+ local[30] = $t1
PrintIntS($s6 )
+ local[30] = $t0
if79_end:
goto :if74_end
if74_else:
$s6 = 0
if74_end:
$s6 = Eq($s4 0 )
- null = $s6
- if0 null goto :if101_else
+ $t0 = local[31]
+ $t0 = $s6
+ local[31] = $t0
+ $t0 = local[31]
+ if0 $t0 goto :if101_else
+ local[31] = $t0
if101_body:
$s3 = $s1
$s1 = $s1
$s6 = [$s1+0]
- null = [$s6+32]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ $t0 = local[32]
+ $t0 = [$s6+32]
+ local[32] = $t0
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s1
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- null = $v0
- $s1 = null
+ $t0 = local[32]
+ $t1 = local[32]
+ call $t1
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
+ $t2 = local[14]
+ $t2 = $v0
+ local[14] = $t2
+ local[32] = $t1
+ $t1 = local[14]
+ $s1 = $t1
+ local[14] = $t1
$s1 = $s1
+ local[32] = $t0
$s6 = [$s1+0]
- null = [$s6+24]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ $t0 = local[33]
+ $t0 = [$s6+24]
+ local[33] = $t0
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s1
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- null = $v0
- $s0 = null
+ $t0 = local[33]
+ $t1 = local[33]
+ call $t1
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
+ $t2 = local[16]
+ $t2 = $v0
+ local[16] = $t2
+ local[33] = $t1
+ $t1 = local[16]
+ $s0 = $t1
+ local[16] = $t1
$s1 = $s1
+ local[33] = $t0
$s6 = [$s1+0]
- null = [$s6+28]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ $t0 = local[34]
+ $t0 = [$s6+28]
+ local[34] = $t0
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s1
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- null = $v0
- $t7 = null
+ $t0 = local[34]
+ $t1 = local[34]
+ call $t1
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
+ $t2 = local[15]
+ $t2 = $v0
+ local[15] = $t2
+ local[34] = $t1
+ $t1 = local[15]
+ $t7 = $t1
+ local[15] = $t1
$s2 = 1
+ local[34] = $t0
goto :if101_end
if101_else:
$s6 = 0
@@ -806,7 +814,7 @@ while65_end:
$s6 = local[6]
$s7 = local[7]
ret
-func List_Search [in 0, out 0, local 17]
+func List_Search [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -830,27 +838,21 @@ while113_body:
$t5 = [$s7+0]
$s6 = [$t5+16]
$t5 = $s2
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s7
$a1 = $t5
call $s6
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$t6 = $v0
$t5 = $t6
if0 $t5 goto :if116_else
@@ -863,76 +865,58 @@ if116_end:
$s4 = $s4
$t5 = [$s4+0]
$s6 = [$t5+32]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s4
call $s6
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s1 = $v0
$s4 = $s1
$s4 = $s4
$s6 = [$s4+0]
$t5 = [$s6+24]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s4
call $t5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$t7 = $v0
$s3 = $t7
$s4 = $s4
$t5 = [$s4+0]
$s6 = [$t5+28]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s4
call $s6
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s0 = $v0
$s2 = $s0
goto :while113_test
@@ -948,7 +932,7 @@ while113_end:
$s6 = local[6]
$s7 = local[7]
ret
-func List_GetEnd [in 0, out 0, local 17]
+func List_GetEnd [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -969,7 +953,7 @@ func List_GetEnd [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func List_GetElem [in 0, out 0, local 17]
+func List_GetElem [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -990,7 +974,7 @@ func List_GetElem [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func List_GetNext [in 0, out 0, local 17]
+func List_GetNext [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -1011,7 +995,7 @@ func List_GetNext [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func List_Print [in 0, out 0, local 17]
+func List_Print [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -1032,102 +1016,78 @@ while134_body:
$s4 = $s4
$t7 = [$s4+0]
$s7 = [$t7+4]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s4
call $s7
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s0 = $v0
$s7 = $s0
PrintIntS($s7 )
$s6 = $s6
$s7 = [$s6+0]
$t7 = [$s7+32]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
call $t7
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s2 = $v0
$s6 = $s2
$s6 = $s6
$t7 = [$s6+0]
$s7 = [$t7+24]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
call $s7
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s3 = $v0
$s5 = $s3
$s6 = $s6
$s7 = [$s6+0]
$t7 = [$s7+28]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
call $t7
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s1 = $v0
$s4 = $s1
goto :while134_test
@@ -1143,7 +1103,7 @@ while134_end:
$s6 = local[6]
$s7 = local[7]
ret
-func LL_Start [in 0, out 0, local 17]
+func LL_Start [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -1159,77 +1119,59 @@ func LL_Start [in 0, out 0, local 17]
$s7 = $s7
$s6 = [$s7+0]
$s5 = [$s6+0]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s7
call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s6 = $v0
$s5 = $s6
$s5 = $s7
$s5 = $s5
$s7 = [$s5+0]
$s6 = [$s7+0]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s5
call $s6
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s7 = $v0
$s5 = $s7
$s5 = $s5
$s7 = [$s5+0]
$s6 = [$s7+36]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s5
call $s6
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s7 = $v0
$s5 = $s7
$s7 = HeapAllocZ(36 )
@@ -1241,81 +1183,63 @@ func LL_Start [in 0, out 0, local 17]
$s7 = 25
$s3 = 37000
$s2 = 0
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
$a1 = $s7
$a2 = $s3
$a3 = $s2
call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s1 = $v0
$s5 = $s1
$s5 = $s5
$s1 = [$s5+0]
$s2 = [$s1+8]
$s1 = $s6
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s5
$a1 = $s1
call $s2
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s3 = $v0
$s5 = $s3
$s5 = $s5
$s3 = [$s5+0]
$s1 = [$s3+36]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s5
call $s1
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s3 = $v0
$s5 = $s3
$s3 = 10000000
@@ -1329,29 +1253,23 @@ func LL_Start [in 0, out 0, local 17]
$s3 = 39
$s2 = 42000
$s7 = 1
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
$a1 = $s3
$a2 = $s2
$a3 = $s7
call $s1
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s4 = $v0
$s5 = $s4
$s4 = $s6
@@ -1359,52 +1277,40 @@ func LL_Start [in 0, out 0, local 17]
$s7 = [$s5+0]
$s2 = [$s7+8]
$s7 = $s6
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s5
$a1 = $s7
call $s2
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s3 = $v0
$s5 = $s3
$s5 = $s5
$s3 = [$s5+0]
$s7 = [$s3+36]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s5
call $s7
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s3 = $v0
$s5 = $s3
$s3 = 10000000
@@ -1418,81 +1324,63 @@ func LL_Start [in 0, out 0, local 17]
$s3 = 22
$s2 = 34000
$s1 = 0
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
$a1 = $s3
$a2 = $s2
$a3 = $s1
call $s7
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s0 = $v0
$s5 = $s0
$s5 = $s5
$s0 = [$s5+0]
$s1 = [$s0+8]
$s0 = $s6
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s5
$a1 = $s0
call $s1
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s2 = $v0
$s5 = $s2
$s5 = $s5
$s2 = [$s5+0]
$s0 = [$s2+36]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s5
call $s0
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s2 = $v0
$s5 = $s2
$s2 = HeapAllocZ(36 )
@@ -1504,56 +1392,44 @@ func LL_Start [in 0, out 0, local 17]
$s2 = 27
$s3 = 34000
$s7 = 0
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s0
$a1 = $s2
$a2 = $s3
$a3 = $s7
call $s1
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$t7 = $v0
$s5 = $t7
$s5 = $s5
$t7 = [$s5+0]
$s7 = [$t7+20]
$t7 = $s4
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s5
$a1 = $t7
call $s7
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s3 = $v0
$t7 = $s3
PrintIntS($t7 )
@@ -1561,27 +1437,21 @@ func LL_Start [in 0, out 0, local 17]
$t7 = [$s5+0]
$s3 = [$t7+20]
$t7 = $s0
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s5
$a1 = $t7
call $s3
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s0 = $v0
$t7 = $s0
PrintIntS($t7 )
@@ -1596,81 +1466,63 @@ func LL_Start [in 0, out 0, local 17]
$t7 = 28
$s3 = 35000
$s7 = 0
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
$a1 = $t7
$a2 = $s3
$a3 = $s7
call $s0
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s2 = $v0
$s5 = $s2
$s5 = $s5
$s2 = [$s5+0]
$s7 = [$s2+8]
$s2 = $s6
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s5
$a1 = $s2
call $s7
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s3 = $v0
$s5 = $s3
$s5 = $s5
$s3 = [$s5+0]
$s2 = [$s3+36]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s5
call $s2
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s3 = $v0
$s5 = $s3
$s3 = 2220000
@@ -1679,52 +1531,40 @@ func LL_Start [in 0, out 0, local 17]
$s3 = [$s5+0]
$s2 = [$s3+16]
$s3 = $s4
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s5
$a1 = $s3
call $s2
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s4 = $v0
$s5 = $s4
$s5 = $s5
$s4 = [$s5+0]
$s3 = [$s4+36]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s5
call $s3
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s4 = $v0
$s5 = $s4
$s4 = 33300000
@@ -1733,52 +1573,40 @@ func LL_Start [in 0, out 0, local 17]
$s4 = [$s5+0]
$s3 = [$s4+16]
$s4 = $s6
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s5
$a1 = $s4
call $s3
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s6 = $v0
$s5 = $s6
$s5 = $s5
$s6 = [$s5+0]
$s4 = [$s6+36]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s5
call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s6 = $v0
$s5 = $s6
$s6 = 44440000
@@ -1794,7 +1622,7 @@ func LL_Start [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func AllocArray [in 0, out 0, local 17]
+func AllocArray [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
diff --git a/output/QuickSort.vaporm b/output/QuickSort.vaporm
index e47797a..4fe47c6 100644
--- a/output/QuickSort.vaporm
+++ b/output/QuickSort.vaporm
@@ -3,7 +3,7 @@ const functable_QS
:QS_Sort
:QS_Print
:QS_Init
-func Main [in 0, out 0, local 17]
+func Main [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -18,27 +18,21 @@ func Main [in 0, out 0, local 17]
$s7 = [$s6+0]
$s5 = [$s7+0]
$s7 = 10
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
$a1 = $s7
call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s4 = $v0
$s7 = $s4
PrintIntS($s7 )
@@ -51,7 +45,7 @@ func Main [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func QS_Start [in 0, out 0, local 17]
+func QS_Start [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -65,51 +59,39 @@ func QS_Start [in 0, out 0, local 17]
$s5 = [$s6+0]
$s4 = $s7
$s5 = [$s5+12]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
$a1 = $s4
call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s7 = $v0
$s4 = $s7
$s7 = [$s6+0]
$s7 = [$s7+8]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
call $s7
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s5 = $v0
$s4 = $s5
$s5 = 9999
@@ -122,52 +104,40 @@ func QS_Start [in 0, out 0, local 17]
$s7 = 0
$s5 = $s4
$s3 = [$s3+4]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
$a1 = $s7
$a2 = $s5
call $s3
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s4 = $v0
$s4 = $s4
$s4 = [$s6+0]
$s4 = [$s4+8]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s5 = $v0
$s4 = $s5
$s5 = 0
@@ -181,7 +151,7 @@ func QS_Start [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func QS_Sort [in 0, out 0, local 17]
+func QS_Sort [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -343,28 +313,22 @@ while32_end:
$s4 = $s6
$s4 = $s0
$s1 = [$s1+4]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s5
$a1 = $s2
$a2 = $s4
call $s1
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s0 = $v0
$s4 = $s0
$s4 = [$s5+0]
@@ -374,28 +338,22 @@ while32_end:
$s3 = $s2
$s2 = $s7
$s4 = [$s4+4]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s5
$a1 = $s3
$a2 = $s2
call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s7 = $v0
$s4 = $s7
goto :if22_end
@@ -413,7 +371,7 @@ if22_end:
$s6 = local[6]
$s7 = local[7]
ret
-func QS_Print [in 0, out 0, local 17]
+func QS_Print [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -455,7 +413,7 @@ while104_end:
$s6 = local[6]
$s7 = local[7]
ret
-func QS_Init [in 0, out 0, local 17]
+func QS_Init [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -467,26 +425,20 @@ func QS_Init [in 0, out 0, local 17]
$s6 = $a0
$s7 = $a1
[$s6+20] = $s7
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s7
call :AllocArray
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s5 = $v0
[$s6+16] = $s5
$s5 = [$s6+16]
@@ -550,7 +502,7 @@ func QS_Init [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func AllocArray [in 0, out 0, local 17]
+func AllocArray [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
diff --git a/output/TreeVisitor.vaporm b/output/TreeVisitor.vaporm
index 4f1ea0f..e69de29 100644
--- a/output/TreeVisitor.vaporm
+++ b/output/TreeVisitor.vaporm
@@ -1,3242 +0,0 @@
-const functable_TV
- :TV_Start
-const functable_Tree
- :Tree_Init
- :Tree_SetRight
- :Tree_SetLeft
- :Tree_GetRight
- :Tree_GetLeft
- :Tree_GetKey
- :Tree_SetKey
- :Tree_GetHas_Right
- :Tree_GetHas_Left
- :Tree_SetHas_Left
- :Tree_SetHas_Right
- :Tree_Compare
- :Tree_Insert
- :Tree_Delete
- :Tree_Remove
- :Tree_RemoveRight
- :Tree_RemoveLeft
- :Tree_Search
- :Tree_Print
- :Tree_RecPrint
- :Tree_accept
-const functable_Visitor
- :Visitor_visit
-const functable_MyVisitor
- :MyVisitor_visit
- :Visitor_visit
-func Main [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s7 = HeapAllocZ(4 )
- [$s7+0] = :functable_TV
- $s6 = $s7
- $s7 = [$s6+0]
- $s5 = [$s7+0]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s6
- call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s7 = $v0
- $s5 = $s7
- PrintIntS($s5 )
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func TV_Start [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s7 = $a0
- $s6 = HeapAllocZ(108 )
- [$s6+0] = :functable_Tree
- $s7 = $s6
- $s7 = $s7
- $s6 = [$s7+0]
- $s5 = [$s6+0]
- $s6 = 16
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $s6
- call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s4 = $v0
- $s6 = $s4
- $s7 = $s7
- $s6 = [$s7+0]
- $s4 = [$s6+72]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s6 = $v0
- $s6 = $s6
- $s6 = 100000000
- PrintIntS($s6 )
- $s7 = $s7
- $s6 = [$s7+0]
- $s4 = [$s6+48]
- $s6 = 8
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $s6
- call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s5 = $v0
- $s6 = $s5
- $s7 = $s7
- $s5 = [$s7+0]
- $s6 = [$s5+48]
- $s5 = 24
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $s5
- call $s6
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s4 = $v0
- $s6 = $s4
- $s7 = $s7
- $s4 = [$s7+0]
- $s5 = [$s4+48]
- $s4 = 4
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $s4
- call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s6 = $v0
- $s6 = $s6
- $s7 = $s7
- $s6 = [$s7+0]
- $s4 = [$s6+48]
- $s6 = 12
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $s6
- call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s5 = $v0
- $s6 = $s5
- $s7 = $s7
- $s5 = [$s7+0]
- $s6 = [$s5+48]
- $s5 = 20
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $s5
- call $s6
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s4 = $v0
- $s6 = $s4
- $s7 = $s7
- $s4 = [$s7+0]
- $s5 = [$s4+48]
- $s4 = 28
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $s4
- call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s6 = $v0
- $s6 = $s6
- $s7 = $s7
- $s6 = [$s7+0]
- $s4 = [$s6+48]
- $s6 = 14
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $s6
- call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s5 = $v0
- $s6 = $s5
- $s7 = $s7
- $s5 = [$s7+0]
- $s6 = [$s5+72]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s6
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s5 = $v0
- $s6 = $s5
- $s5 = 100000000
- PrintIntS($s5 )
- $s5 = HeapAllocZ(16 )
- [$s5+0] = :functable_MyVisitor
- $s6 = $s5
- $s5 = 50000000
- PrintIntS($s5 )
- $s7 = $s7
- $s5 = [$s7+0]
- $s4 = [$s5+80]
- $s5 = $s6
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $s5
- call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s6 = $v0
- $s5 = $s6
- $s5 = 100000000
- PrintIntS($s5 )
- $s7 = $s7
- $s5 = [$s7+0]
- $s6 = [$s5+68]
- $s5 = 24
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $s5
- call $s6
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s4 = $v0
- $s5 = $s4
- PrintIntS($s5 )
- $s7 = $s7
- $s5 = [$s7+0]
- $s4 = [$s5+68]
- $s5 = 12
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $s5
- call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s6 = $v0
- $s5 = $s6
- PrintIntS($s5 )
- $s7 = $s7
- $s5 = [$s7+0]
- $s6 = [$s5+68]
- $s5 = 16
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $s5
- call $s6
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s4 = $v0
- $s5 = $s4
- PrintIntS($s5 )
- $s7 = $s7
- $s5 = [$s7+0]
- $s4 = [$s5+68]
- $s5 = 50
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $s5
- call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s6 = $v0
- $s5 = $s6
- PrintIntS($s5 )
- $s7 = $s7
- $s5 = [$s7+0]
- $s6 = [$s5+68]
- $s5 = 12
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $s5
- call $s6
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s4 = $v0
- $s5 = $s4
- PrintIntS($s5 )
- $s7 = $s7
- $s5 = [$s7+0]
- $s4 = [$s5+52]
- $s5 = 12
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $s5
- call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s6 = $v0
- $s6 = $s6
- $s7 = $s7
- $s6 = [$s7+0]
- $s5 = [$s6+72]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s6 = $v0
- $s6 = $s6
- $s7 = $s7
- $s6 = [$s7+0]
- $s5 = [$s6+68]
- $s6 = 12
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $s6
- call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s4 = $v0
- $s6 = $s4
- PrintIntS($s6 )
- $s6 = 0
- $v0 = $s6
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_Init [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s6 = $a0
- $s7 = $a1
- [$s6+92] = $s7
- [$s6+96] = 0
- [$s6+100] = 0
- $s6 = 1
- $v0 = $s6
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_SetRight [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s6 = $a0
- $s7 = $a1
- [$s6+88] = $s7
- $s6 = 1
- $v0 = $s6
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_SetLeft [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s6 = $a0
- $s7 = $a1
- [$s6+84] = $s7
- $s6 = 1
- $v0 = $s6
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_GetRight [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s6 = $a0
- $s7 = [$s6+88]
- $v0 = $s7
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_GetLeft [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s6 = $a0
- $s7 = [$s6+84]
- $v0 = $s7
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_GetKey [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s6 = $a0
- $s7 = [$s6+92]
- $v0 = $s7
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_SetKey [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s6 = $a0
- $s7 = $a1
- [$s6+92] = $s7
- $s6 = 1
- $v0 = $s6
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_GetHas_Right [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s6 = $a0
- $s7 = [$s6+100]
- $v0 = $s7
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_GetHas_Left [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s6 = $a0
- $s7 = [$s6+96]
- $v0 = $s7
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_SetHas_Left [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s6 = $a0
- $s7 = $a1
- [$s6+96] = $s7
- $s6 = 1
- $v0 = $s6
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_SetHas_Right [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s6 = $a0
- $s7 = $a1
- [$s6+100] = $s7
- $s6 = 1
- $v0 = $s6
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_Compare [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s5 = $a0
- $s6 = $a1
- $s7 = $a2
- $s4 = 0
- $s5 = $s7
- $s3 = 1
- $s2 = Add($s5 $s3 )
- $s3 = $s2
- $s2 = $s6
- $s5 = $s7
- $s7 = LtS($s2 $s5 )
- $s5 = $s7
- if0 $s5 goto :if105_else
-if105_body:
- $s4 = 0
- goto :if105_end
-if105_else:
- $s5 = $s6
- $s6 = $s3
- $s3 = LtS($s5 $s6 )
- $s6 = Eq($s3 0 )
- $s3 = $s6
- if0 $s3 goto :if109_else
-if109_body:
- $s4 = 0
- goto :if109_end
-if109_else:
- $s4 = 1
-if109_end:
-if105_end:
- $s3 = $s4
- $v0 = $s3
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_Insert [in 0, out 0, local 29]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s6 = $a0
- $s7 = $a1
- $s5 = HeapAllocZ(108 )
- [$s5+0] = :functable_Tree
- $s4 = $s5
- $s4 = $s4
- $s5 = [$s4+0]
- $s3 = [$s5+0]
- $s5 = $s7
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s4
- $a1 = $s5
- call $s3
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s2 = $v0
- $s5 = $s2
- $s5 = $s6
- $s6 = 1
-while120_test:
- $s2 = $s6
- if0 $s2 goto :while120_end
-while120_body:
- $s5 = $s5
- $s2 = [$s5+0]
- null = [$s2+20]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $t5 = $v0
- $s2 = $t5
- null = $s7
- null = $s2
- $s2 = LtS(null null )
- null = $s2
- if0 null goto :if125_else
-if125_body:
- $s5 = $s5
- $s2 = [$s5+0]
- null = [$s2+32]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $t7 = $v0
- $s2 = $t7
- if0 $s2 goto :if129_else
-if129_body:
- $s5 = $s5
- $s2 = [$s5+0]
- null = [$s2+16]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s3 = $v0
- $s5 = $s3
- goto :if129_end
-if129_else:
- $s6 = 0
- $s5 = $s5
- $s2 = [$s5+0]
- null = [$s2+36]
- $s2 = 1
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- $a1 = $s2
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s0 = $v0
- $s5 = $s0
- $s5 = $s5
- $s2 = [$s5+0]
- null = [$s2+8]
- $s2 = $s4
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- $a1 = $s2
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $t3 = $v0
- $s5 = $t3
-if129_end:
- goto :if125_end
-if125_else:
- $s5 = $s5
- $s2 = [$s5+0]
- null = [$s2+28]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $t4 = $v0
- $s2 = $t4
- if0 $s2 goto :if144_else
-if144_body:
- $s5 = $s5
- $s2 = [$s5+0]
- null = [$s2+12]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s2 = $v0
- $s5 = $s2
- goto :if144_end
-if144_else:
- $s6 = 0
- $s5 = $s5
- $s2 = [$s5+0]
- null = [$s2+40]
- $s2 = 1
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- $a1 = $s2
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $t6 = $v0
- $s5 = $t6
- $s5 = $s5
- $s2 = [$s5+0]
- null = [$s2+4]
- $s2 = $s4
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- $a1 = $s2
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s1 = $v0
- $s5 = $s1
-if144_end:
-if125_end:
- goto :while120_test
-while120_end:
- $t3 = 1
- $v0 = $t3
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_Delete [in 0, out 0, local 44]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s6 = $a0
- $s7 = $a1
- $s5 = $s6
- $s4 = $s6
- $s3 = 1
- $s2 = 0
- $s1 = 1
-while160_test:
- $s0 = $s3
- if0 $s0 goto :while160_end
-while160_body:
- $s5 = $s5
- $s0 = [$s5+0]
- null = [$s0+20]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $t5 = $v0
- $s0 = $t5
- null = $s7
- null = $s0
- null = LtS(null null )
- null = null
- if0 null goto :if165_else
-if165_body:
- $s5 = $s5
- null = [$s5+0]
- null = [null+32]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- null = $v0
- null = null
- if0 null goto :if169_else
-if169_body:
- $s4 = $s5
- $s5 = $s5
- null = [$s5+0]
- null = [null+16]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $t4 = $v0
- $s5 = $t4
- goto :if169_end
-if169_else:
- $s3 = 0
-if169_end:
- goto :if165_end
-if165_else:
- null = $s0
- $s0 = $s7
- null = LtS(null $s0 )
- $s0 = null
- if0 $s0 goto :if176_else
-if176_body:
- $s5 = $s5
- $s0 = [$s5+0]
- null = [$s0+28]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s0 = $v0
- null = $s0
- if0 null goto :if180_else
-if180_body:
- $s4 = $s5
- $s5 = $s5
- $s0 = [$s5+0]
- null = [$s0+12]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s0 = $v0
- $s5 = $s0
- goto :if180_end
-if180_else:
- $s3 = 0
-if180_end:
- goto :if176_end
-if176_else:
- $s0 = $s1
- if0 $s0 goto :if187_else
-if187_body:
- $s5 = $s5
- $s0 = [$s5+0]
- null = [$s0+28]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $t6 = $v0
- $s0 = Eq($t6 0 )
- null = $s0
- $s5 = $s5
- $s0 = [$s5+0]
- null = [$s0+32]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- call null
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $t7 = $v0
- $s0 = Eq($t7 0 )
- null = $s0
- $s0 = Eq(1 null )
- null = Eq(1 null )
- null = Eq($s0 null )
- $s0 = null
- if0 $s0 goto :if188_else
-if188_body:
- $s0 = 1
- goto :if188_end
-if188_else:
- $s0 = [$s6+0]
- null = $s4
- null = $s5
- $s0 = [$s0+56]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s6
- $a1 = null
- $a2 = null
- call $s0
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $t3 = $v0
- $s0 = $t3
-if188_end:
- goto :if187_end
-if187_else:
- $s0 = [$s6+0]
- null = $s4
- null = $s5
- $s0 = [$s0+56]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s6
- $a1 = null
- $a2 = null
- call $s0
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- null = $v0
- $s0 = null
-if187_end:
- $s2 = 1
- $s3 = 0
-if176_end:
-if165_end:
- $s1 = 0
- goto :while160_test
-while160_end:
- $t3 = $s2
- $v0 = $t3
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_Remove [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s5 = $a0
- $s6 = $a1
- $s7 = $a2
- $s7 = $s7
- $s4 = [$s7+0]
- $s3 = [$s4+32]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s3
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s4 = $v0
- $s3 = $s4
- if0 $s3 goto :if211_else
-if211_body:
- $s3 = [$s5+0]
- $s4 = $s6
- $s2 = $s7
- $s3 = [$s3+64]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- $a1 = $s4
- $a2 = $s2
- call $s3
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s1 = $v0
- $s2 = $s1
- goto :if211_end
-if211_else:
- $s7 = $s7
- $s2 = [$s7+0]
- $s1 = [$s2+28]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s1
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s2 = $v0
- $s1 = $s2
- if0 $s1 goto :if219_else
-if219_body:
- $s1 = [$s5+0]
- $s2 = $s6
- $s4 = $s7
- $s1 = [$s1+60]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- $a1 = $s2
- $a2 = $s4
- call $s1
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s3 = $v0
- $s2 = $s3
- goto :if219_end
-if219_else:
- $s7 = $s7
- $s3 = [$s7+0]
- $s4 = [$s3+20]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s3 = $v0
- $s4 = $s3
- $s6 = $s6
- $s3 = [$s6+0]
- $s7 = [$s3+16]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s6
- call $s7
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s3 = $v0
- $s7 = $s3
- $s3 = [$s7+0]
- $s2 = [$s3+20]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s2
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s3 = $v0
- $s2 = $s3
- $s3 = [$s5+0]
- $s7 = $s4
- $s4 = $s2
- $s3 = [$s3+44]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- $a1 = $s7
- $a2 = $s4
- call $s3
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s2 = $v0
- $s4 = $s2
- if0 $s4 goto :if237_else
-if237_body:
- $s6 = $s6
- $s4 = [$s6+0]
- $s2 = [$s4+8]
- $s4 = [$s5+104]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s6
- $a1 = $s4
- call $s2
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s7 = $v0
- $s2 = $s7
- $s6 = $s6
- $s7 = [$s6+0]
- $s4 = [$s7+36]
- $s7 = 0
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s6
- $a1 = $s7
- call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s2 = $v0
- $s2 = $s2
- goto :if237_end
-if237_else:
- $s6 = $s6
- $s2 = [$s6+0]
- $s7 = [$s2+4]
- $s2 = [$s5+104]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s6
- $a1 = $s2
- call $s7
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s5 = $v0
- $s2 = $s5
- $s6 = $s6
- $s5 = [$s6+0]
- $s2 = [$s5+40]
- $s5 = 0
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s6
- $a1 = $s5
- call $s2
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s7 = $v0
- $s2 = $s7
-if237_end:
-if219_end:
-if211_end:
- $s7 = 1
- $v0 = $s7
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_RemoveRight [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s5 = $a0
- $s6 = $a1
- $s7 = $a2
-while259_test:
- $s7 = $s7
- $t7 = [$s7+0]
- $t6 = [$t7+28]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $t6
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s1 = $v0
- $t6 = $s1
- if0 $t6 goto :while259_end
-while259_body:
- $s7 = $s7
- $t6 = [$s7+0]
- $t7 = [$t6+24]
- $s7 = $s7
- $t6 = [$s7+0]
- $t5 = [$t6+12]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $t5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s3 = $v0
- $t5 = $s3
- $t6 = [$t5+0]
- $t4 = [$t6+20]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $t5
- call $t4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s4 = $v0
- $t4 = $s4
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $t4
- call $t7
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s0 = $v0
- $t4 = $s0
- $s6 = $s7
- $s7 = $s7
- $t4 = [$s7+0]
- $t7 = [$t4+12]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $t7
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s2 = $v0
- $s7 = $s2
- goto :while259_test
-while259_end:
- $s6 = $s6
- $s0 = [$s6+0]
- $s1 = [$s0+4]
- $s0 = [$s5+104]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s6
- $a1 = $s0
- call $s1
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s5 = $v0
- $t4 = $s5
- $s6 = $s6
- $s5 = [$s6+0]
- $s0 = [$s5+40]
- $s5 = 0
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s6
- $a1 = $s5
- call $s0
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s1 = $v0
- $t4 = $s1
- $s1 = 1
- $v0 = $s1
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_RemoveLeft [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s5 = $a0
- $s6 = $a1
- $s7 = $a2
-while287_test:
- $s7 = $s7
- $t7 = [$s7+0]
- $t6 = [$t7+32]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $t6
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s1 = $v0
- $t6 = $s1
- if0 $t6 goto :while287_end
-while287_body:
- $s7 = $s7
- $t6 = [$s7+0]
- $t7 = [$t6+24]
- $s7 = $s7
- $t6 = [$s7+0]
- $t5 = [$t6+16]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $t5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s3 = $v0
- $t5 = $s3
- $t6 = [$t5+0]
- $t4 = [$t6+20]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $t5
- call $t4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s4 = $v0
- $t4 = $s4
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- $a1 = $t4
- call $t7
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s0 = $v0
- $t4 = $s0
- $s6 = $s7
- $s7 = $s7
- $t4 = [$s7+0]
- $t7 = [$t4+16]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $t7
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s2 = $v0
- $s7 = $s2
- goto :while287_test
-while287_end:
- $s6 = $s6
- $s0 = [$s6+0]
- $s1 = [$s0+8]
- $s0 = [$s5+104]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s6
- $a1 = $s0
- call $s1
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s5 = $v0
- $t4 = $s5
- $s6 = $s6
- $s5 = [$s6+0]
- $s0 = [$s5+36]
- $s5 = 0
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s6
- $a1 = $s5
- call $s0
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s1 = $v0
- $t4 = $s1
- $s1 = 1
- $v0 = $s1
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_Search [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s6 = $a0
- $s7 = $a1
- $s5 = $s6
- $s6 = 1
- $s4 = 0
-while315_test:
- $s3 = $s6
- if0 $s3 goto :while315_end
-while315_body:
- $s5 = $s5
- $s3 = [$s5+0]
- $t7 = [$s3+20]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- call $t7
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s0 = $v0
- $t7 = $s0
- $s3 = $s7
- $t6 = $t7
- $t5 = LtS($s3 $t6 )
- $t6 = $t5
- if0 $t6 goto :if320_else
-if320_body:
- $s5 = $s5
- $t6 = [$s5+0]
- $t5 = [$t6+32]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- call $t5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s1 = $v0
- $t5 = $s1
- if0 $t5 goto :if324_else
-if324_body:
- $s5 = $s5
- $t5 = [$s5+0]
- $t6 = [$t5+16]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- call $t6
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s2 = $v0
- $s5 = $s2
- goto :if324_end
-if324_else:
- $s6 = 0
-if324_end:
- goto :if320_end
-if320_else:
- $t6 = $t7
- $t7 = $s7
- $t5 = LtS($t6 $t7 )
- $t7 = $t5
- if0 $t7 goto :if331_else
-if331_body:
- $s5 = $s5
- $t7 = [$s5+0]
- $t5 = [$t7+28]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- call $t5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $t7 = $v0
- $t5 = $t7
- if0 $t5 goto :if335_else
-if335_body:
- $s5 = $s5
- $t5 = [$s5+0]
- $t7 = [$t5+12]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- call $t7
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $t5 = $v0
- $s5 = $t5
- goto :if335_end
-if335_else:
- $s6 = 0
-if335_end:
- goto :if331_end
-if331_else:
- $s4 = 1
- $s6 = 0
-if331_end:
-if320_end:
- goto :while315_test
-while315_end:
- $s0 = $s4
- $v0 = $s0
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_Print [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s6 = $a0
- $s7 = $s6
- $s5 = [$s6+0]
- $s4 = $s7
- $s5 = [$s5+76]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s6
- $a1 = $s4
- call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s7 = $v0
- $s4 = $s7
- $s4 = 1
- $v0 = $s4
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_RecPrint [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s6 = $a0
- $s7 = $a1
- $s7 = $s7
- $s5 = [$s7+0]
- $s4 = [$s5+32]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s5 = $v0
- $s4 = $s5
- if0 $s4 goto :if347_else
-if347_body:
- $s4 = [$s6+0]
- $s7 = $s7
- $s5 = [$s7+0]
- $s3 = [$s5+16]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s3
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s5 = $v0
- $s3 = $s5
- $s4 = [$s4+76]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s6
- $a1 = $s3
- call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s5 = $v0
- $s3 = $s5
- goto :if347_end
-if347_else:
- $s3 = 1
-if347_end:
- $s7 = $s7
- $s3 = [$s7+0]
- $s5 = [$s3+20]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s3 = $v0
- $s5 = $s3
- PrintIntS($s5 )
- $s7 = $s7
- $s5 = [$s7+0]
- $s3 = [$s5+28]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s3
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s5 = $v0
- $s3 = $s5
- if0 $s3 goto :if361_else
-if361_body:
- $s3 = [$s6+0]
- $s7 = $s7
- $s5 = [$s7+0]
- $s4 = [$s5+12]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s5 = $v0
- $s4 = $s5
- $s3 = [$s3+76]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s6
- $a1 = $s4
- call $s3
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s5 = $v0
- $s3 = $s5
- goto :if361_end
-if361_else:
- $s3 = 1
-if361_end:
- $s5 = 1
- $v0 = $s5
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Tree_accept [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s5 = $a0
- $s6 = $a1
- $s7 = 333
- PrintIntS($s7 )
- $s6 = $s6
- $s7 = [$s6+0]
- $s4 = [$s7+0]
- $s7 = $s5
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s6
- $a1 = $s7
- call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s5 = $v0
- $s7 = $s5
- $s7 = 0
- $v0 = $s7
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func Visitor_visit [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s6 = $a0
- $s7 = $a1
- $s7 = $s7
- $s5 = [$s7+0]
- $s4 = [$s5+28]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s5 = $v0
- $s4 = $s5
- if0 $s4 goto :if378_else
-if378_body:
- $s7 = $s7
- $s4 = [$s7+0]
- $s5 = [$s4+12]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s4 = $v0
- [$s6+8] = $s4
- $s4 = [$s6+8]
- $s5 = [$s4+0]
- $s3 = [$s5+80]
- $s5 = $s6
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s4
- $a1 = $s5
- call $s3
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s2 = $v0
- $s5 = $s2
- goto :if378_end
-if378_else:
- $s5 = 0
-if378_end:
- $s7 = $s7
- $s5 = [$s7+0]
- $s2 = [$s5+32]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s2
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s5 = $v0
- $s2 = $s5
- if0 $s2 goto :if389_else
-if389_body:
- $s7 = $s7
- $s2 = [$s7+0]
- $s5 = [$s2+16]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s2 = $v0
- [$s6+4] = $s2
- $s2 = [$s6+4]
- $s5 = [$s2+0]
- $s7 = [$s5+80]
- $s5 = $s6
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s2
- $a1 = $s5
- call $s7
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s6 = $v0
- $s5 = $s6
- goto :if389_end
-if389_else:
- $s5 = 0
-if389_end:
- $s6 = 0
- $v0 = $s6
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func MyVisitor_visit [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s6 = $a0
- $s7 = $a1
- $s7 = $s7
- $s5 = [$s7+0]
- $s4 = [$s5+28]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s5 = $v0
- $s4 = $s5
- if0 $s4 goto :if401_else
-if401_body:
- $s7 = $s7
- $s4 = [$s7+0]
- $s5 = [$s4+12]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s4 = $v0
- [$s6+12] = $s4
- $s4 = [$s6+12]
- $s5 = [$s4+0]
- $s3 = [$s5+80]
- $s5 = $s6
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s4
- $a1 = $s5
- call $s3
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s2 = $v0
- $s5 = $s2
- goto :if401_end
-if401_else:
- $s5 = 0
-if401_end:
- $s7 = $s7
- $s5 = [$s7+0]
- $s2 = [$s5+20]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s2
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s5 = $v0
- $s2 = $s5
- PrintIntS($s2 )
- $s7 = $s7
- $s2 = [$s7+0]
- $s5 = [$s2+32]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s2 = $v0
- $s5 = $s2
- if0 $s5 goto :if416_else
-if416_body:
- $s7 = $s7
- $s5 = [$s7+0]
- $s2 = [$s5+16]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s7
- call $s2
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s5 = $v0
- [$s6+8] = $s5
- $s5 = [$s6+8]
- $s2 = [$s5+0]
- $s7 = [$s2+80]
- $s2 = $s6
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
- $a0 = $s5
- $a1 = $s2
- call $s7
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
- $s6 = $v0
- $s5 = $s6
- goto :if416_end
-if416_else:
- $s5 = 0
-if416_end:
- $s6 = 0
- $v0 = $s6
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
-func AllocArray [in 0, out 0, local 17]
- local[0] = $s0
- local[1] = $s1
- local[2] = $s2
- local[3] = $s3
- local[4] = $s4
- local[5] = $s5
- local[6] = $s6
- local[7] = $s7
- $s7 = $a0
- $s6 = MulS($s7 4 )
- $s6 = Add($s6 4 )
- $s5 = HeapAllocZ($s6 )
- [$s5+0] = $s7
- $v0 = $s5
- $s0 = local[0]
- $s1 = local[1]
- $s2 = local[2]
- $s3 = local[3]
- $s4 = local[4]
- $s5 = local[5]
- $s6 = local[6]
- $s7 = local[7]
- ret
diff --git a/output/ex29.vaporm b/output/ex29.vaporm
index cc9e00c..02fab92 100644
--- a/output/ex29.vaporm
+++ b/output/ex29.vaporm
@@ -1,4 +1,4 @@
-func Main [in 0, out 0, local 17]
+func Main [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -16,7 +16,7 @@ func Main [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func AllocArray [in 0, out 0, local 17]
+func AllocArray [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
diff --git a/output/ex30.vaporm b/output/ex30.vaporm
index 92e1e94..c1a3623 100644
--- a/output/ex30.vaporm
+++ b/output/ex30.vaporm
@@ -1,6 +1,6 @@
const functable_A
:A_foo
-func Main [in 0, out 0, local 17]
+func Main [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -18,7 +18,7 @@ func Main [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func A_foo [in 0, out 0, local 17]
+func A_foo [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -39,7 +39,7 @@ func A_foo [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func AllocArray [in 0, out 0, local 17]
+func AllocArray [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
diff --git a/output/ex31.vaporm b/output/ex31.vaporm
index 43fee7b..1f89621 100644
--- a/output/ex31.vaporm
+++ b/output/ex31.vaporm
@@ -1,7 +1,7 @@
const functable_A
:A_foo
:A_bar
-func Main [in 0, out 0, local 17]
+func Main [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -22,7 +22,7 @@ func Main [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func A_foo [in 0, out 0, local 17]
+func A_foo [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -43,7 +43,7 @@ func A_foo [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func A_bar [in 0, out 0, local 17]
+func A_bar [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -64,7 +64,7 @@ func A_bar [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func AllocArray [in 0, out 0, local 17]
+func AllocArray [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
diff --git a/output/ex32.vaporm b/output/ex32.vaporm
index 095da49..4d17032 100644
--- a/output/ex32.vaporm
+++ b/output/ex32.vaporm
@@ -1,6 +1,6 @@
const functable_A
:A_foo
-func Main [in 0, out 0, local 17]
+func Main [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -18,29 +18,23 @@ func Main [in 0, out 0, local 17]
$s7 = 12
$s4 = 14
$s3 = 15
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
$a1 = $s7
$a2 = $s4
$a3 = $s3
call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s2 = $v0
$s3 = $s2
PrintIntS($s3 )
@@ -53,7 +47,7 @@ func Main [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func A_foo [in 0, out 0, local 17]
+func A_foo [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -77,7 +71,7 @@ func A_foo [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func AllocArray [in 0, out 0, local 17]
+func AllocArray [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
diff --git a/output/ex33.vaporm b/output/ex33.vaporm
index 2179cfd..a0164ce 100644
--- a/output/ex33.vaporm
+++ b/output/ex33.vaporm
@@ -1,7 +1,7 @@
const functable_A
:A_foo
:A_bar
-func Main [in 0, out 0, local 17]
+func Main [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -25,29 +25,23 @@ func Main [in 0, out 0, local 17]
$s1 = $s3
$s1 = 400
$s1 = $s2
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
$a1 = $s4
$a2 = $s7
$a3 = $s1
call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s2 = $v0
$s1 = $s2
PrintIntS($s1 )
@@ -59,28 +53,22 @@ func Main [in 0, out 0, local 17]
$s4 = Add($s1 $s7 )
$s7 = $s4
$s4 = 400
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
$a1 = $s7
$a2 = $s4
call $s2
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s1 = $v0
$s4 = $s1
PrintIntS($s4 )
@@ -93,7 +81,7 @@ func Main [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func A_foo [in 0, out 0, local 17]
+func A_foo [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -117,7 +105,7 @@ func A_foo [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func A_bar [in 0, out 0, local 17]
+func A_bar [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -141,7 +129,7 @@ func A_bar [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func AllocArray [in 0, out 0, local 17]
+func AllocArray [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
diff --git a/output/ex34.vaporm b/output/ex34.vaporm
index 9ba0da9..28464c6 100644
--- a/output/ex34.vaporm
+++ b/output/ex34.vaporm
@@ -1,6 +1,6 @@
const functable_A
:A_foo
-func Main [in 0, out 0, local 17]
+func Main [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -18,27 +18,21 @@ func Main [in 0, out 0, local 17]
$s7 = [$s6+0]
$s5 = [$s7+0]
$s7 = 2
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
$a1 = $s7
call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s4 = $v0
$s7 = $s4
PrintIntS($s7 )
@@ -51,7 +45,7 @@ func Main [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func A_foo [in 0, out 0, local 17]
+func A_foo [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -74,7 +68,7 @@ func A_foo [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func AllocArray [in 0, out 0, local 17]
+func AllocArray [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
diff --git a/output/ex35.vaporm b/output/ex35.vaporm
index ca18867..4bc2307 100644
--- a/output/ex35.vaporm
+++ b/output/ex35.vaporm
@@ -1,6 +1,6 @@
const functable_Fac
:Fac_ComputeFac
-func Main [in 0, out 0, local 17]
+func Main [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -15,27 +15,21 @@ func Main [in 0, out 0, local 17]
$s7 = [$s6+0]
$s5 = [$s7+0]
$s7 = 10
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
$a1 = $s7
call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s4 = $v0
$s7 = $s4
PrintIntS($s7 )
@@ -48,7 +42,7 @@ func Main [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func Fac_ComputeFac [in 0, out 0, local 17]
+func Fac_ComputeFac [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -70,7 +64,7 @@ func Fac_ComputeFac [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func AllocArray [in 0, out 0, local 17]
+func AllocArray [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
diff --git a/output/ex36.vaporm b/output/ex36.vaporm
index 2307cc1..7018dac 100644
--- a/output/ex36.vaporm
+++ b/output/ex36.vaporm
@@ -1,6 +1,6 @@
const functable_Fac
:Fac_ComputeFac
-func Main [in 0, out 0, local 17]
+func Main [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -16,27 +16,21 @@ func Main [in 0, out 0, local 17]
$s7 = [$s6+0]
$s5 = [$s7+0]
$s7 = 10
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
$a1 = $s7
call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s4 = $v0
$s7 = $s4
PrintIntS($s7 )
@@ -49,7 +43,7 @@ func Main [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func Fac_ComputeFac [in 0, out 0, local 17]
+func Fac_ComputeFac [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -72,7 +66,7 @@ func Fac_ComputeFac [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func AllocArray [in 0, out 0, local 17]
+func AllocArray [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
diff --git a/output/ex37.vaporm b/output/ex37.vaporm
index 91daad6..9f7c8df 100644
--- a/output/ex37.vaporm
+++ b/output/ex37.vaporm
@@ -1,6 +1,6 @@
const functable_A
:A_foo
-func Main [in 0, out 0, local 17]
+func Main [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -15,26 +15,20 @@ func Main [in 0, out 0, local 17]
$s6 = $s6
$s7 = [$s6+0]
$s5 = [$s7+0]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s7 = $v0
$s5 = $s7
PrintIntS($s5 )
@@ -47,7 +41,7 @@ func Main [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func A_foo [in 0, out 0, local 17]
+func A_foo [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -82,7 +76,7 @@ while5_end:
$s6 = local[6]
$s7 = local[7]
ret
-func AllocArray [in 0, out 0, local 17]
+func AllocArray [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
diff --git a/output/ex38.vaporm b/output/ex38.vaporm
index 91daad6..9f7c8df 100644
--- a/output/ex38.vaporm
+++ b/output/ex38.vaporm
@@ -1,6 +1,6 @@
const functable_A
:A_foo
-func Main [in 0, out 0, local 17]
+func Main [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -15,26 +15,20 @@ func Main [in 0, out 0, local 17]
$s6 = $s6
$s7 = [$s6+0]
$s5 = [$s7+0]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s7 = $v0
$s5 = $s7
PrintIntS($s5 )
@@ -47,7 +41,7 @@ func Main [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func A_foo [in 0, out 0, local 17]
+func A_foo [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -82,7 +76,7 @@ while5_end:
$s6 = local[6]
$s7 = local[7]
ret
-func AllocArray [in 0, out 0, local 17]
+func AllocArray [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
diff --git a/output/ex39.vaporm b/output/ex39.vaporm
index ab97f13..0fa4db7 100644
--- a/output/ex39.vaporm
+++ b/output/ex39.vaporm
@@ -1,4 +1,4 @@
-func Main [in 0, out 0, local 17]
+func Main [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -33,7 +33,7 @@ func Main [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func AllocArray [in 0, out 0, local 17]
+func AllocArray [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
diff --git a/output/ex40.vaporm b/output/ex40.vaporm
index 0bfcb01..5ee4e28 100644
--- a/output/ex40.vaporm
+++ b/output/ex40.vaporm
@@ -1,6 +1,6 @@
const functable_A
:A_add_two
-func Main [in 0, out 0, local 17]
+func Main [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -16,27 +16,21 @@ func Main [in 0, out 0, local 17]
$s7 = [$s6+0]
$s5 = [$s7+0]
$s7 = 12
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
$a1 = $s7
call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s4 = $v0
$s7 = $s4
PrintIntS($s7 )
@@ -49,7 +43,7 @@ func Main [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func A_add_two [in 0, out 0, local 17]
+func A_add_two [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -76,7 +70,7 @@ func A_add_two [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func AllocArray [in 0, out 0, local 17]
+func AllocArray [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
diff --git a/output/ex41.vaporm b/output/ex41.vaporm
index abd3cf4..35a90af 100644
--- a/output/ex41.vaporm
+++ b/output/ex41.vaporm
@@ -1,6 +1,6 @@
const functable_A
:A_foo
-func Main [in 0, out 0, local 17]
+func Main [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -15,26 +15,20 @@ func Main [in 0, out 0, local 17]
$s6 = $s6
$s7 = [$s6+0]
$s5 = [$s7+0]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s7 = $v0
$s5 = $s7
PrintIntS($s5 )
@@ -47,7 +41,7 @@ func Main [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func A_foo [in 0, out 0, local 17]
+func A_foo [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -96,7 +90,7 @@ while5_end:
$s6 = local[6]
$s7 = local[7]
ret
-func AllocArray [in 0, out 0, local 17]
+func AllocArray [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
diff --git a/output/ex43.vaporm b/output/ex43.vaporm
index 5669cd7..93d7ecb 100644
--- a/output/ex43.vaporm
+++ b/output/ex43.vaporm
@@ -1,6 +1,6 @@
const functable_A
:A_foo
-func Main [in 0, out 0, local 17]
+func Main [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -15,26 +15,20 @@ func Main [in 0, out 0, local 17]
$s6 = $s6
$s7 = [$s6+0]
$s5 = [$s7+0]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s7 = $v0
$s5 = $s7
PrintIntS($s5 )
@@ -47,7 +41,7 @@ func Main [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func A_foo [in 0, out 0, local 17]
+func A_foo [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -82,7 +76,7 @@ if5_end:
$s6 = local[6]
$s7 = local[7]
ret
-func AllocArray [in 0, out 0, local 17]
+func AllocArray [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
diff --git a/output/ex44.vaporm b/output/ex44.vaporm
index 1a26c32..b2537e8 100644
--- a/output/ex44.vaporm
+++ b/output/ex44.vaporm
@@ -1,6 +1,6 @@
const functable_Operator
:Operator_compute
-func Main [in 0, out 0, local 17]
+func Main [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -14,26 +14,20 @@ func Main [in 0, out 0, local 17]
$s6 = $s7
$s7 = [$s6+0]
$s5 = [$s7+0]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s7 = $v0
$s5 = $s7
PrintIntS($s5 )
@@ -46,7 +40,7 @@ func Main [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func Operator_compute [in 0, out 0, local 17]
+func Operator_compute [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -73,7 +67,7 @@ func Operator_compute [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func AllocArray [in 0, out 0, local 17]
+func AllocArray [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
diff --git a/output/ex45.vaporm b/output/ex45.vaporm
index 6fc5bb9..2e05671 100644
--- a/output/ex45.vaporm
+++ b/output/ex45.vaporm
@@ -1,6 +1,6 @@
const functable_A
:A_run
-func Main [in 0, out 0, local 17]
+func Main [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -15,26 +15,20 @@ func Main [in 0, out 0, local 17]
$s6 = $s6
$s7 = [$s6+0]
$s5 = [$s7+0]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s7 = $v0
$s5 = $s7
$s7 = $s5
@@ -48,7 +42,7 @@ func Main [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func A_run [in 0, out 0, local 17]
+func A_run [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -58,26 +52,20 @@ func A_run [in 0, out 0, local 17]
local[6] = $s6
local[7] = $s7
$s7 = $a0
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = 10
call :AllocArray
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s6 = $v0
[$s7+4] = $s6
$s6 = [$s7+4]
@@ -93,7 +81,7 @@ func A_run [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func AllocArray [in 0, out 0, local 17]
+func AllocArray [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
diff --git a/output/ex46.vaporm b/output/ex46.vaporm
index 414fd4a..db39b37 100644
--- a/output/ex46.vaporm
+++ b/output/ex46.vaporm
@@ -1,7 +1,7 @@
const functable_A
:A_foo
:A_bar
-func Main [in 0, out 0, local 17]
+func Main [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -16,52 +16,40 @@ func Main [in 0, out 0, local 17]
$s6 = $s6
$s7 = [$s6+0]
$s5 = [$s7+0]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s7 = $v0
$s5 = $s7
PrintIntS($s5 )
$s6 = $s6
$s5 = [$s6+0]
$s7 = [$s5+0]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
call $s7
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s5 = $v0
$s7 = $s5
PrintIntS($s7 )
@@ -70,28 +58,22 @@ func Main [in 0, out 0, local 17]
$s5 = [$s7+4]
$s7 = 10
$s4 = 20
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
$a1 = $s7
$a2 = $s4
call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s3 = $v0
$s4 = $s3
$s3 = $s4
@@ -105,7 +87,7 @@ func Main [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func A_foo [in 0, out 0, local 17]
+func A_foo [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -135,7 +117,7 @@ func A_foo [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func A_bar [in 0, out 0, local 17]
+func A_bar [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -164,7 +146,7 @@ func A_bar [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func AllocArray [in 0, out 0, local 17]
+func AllocArray [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
diff --git a/output/ex47.vaporm b/output/ex47.vaporm
index 5854a9a..7788591 100644
--- a/output/ex47.vaporm
+++ b/output/ex47.vaporm
@@ -1,7 +1,7 @@
const functable_A
:A_set
:A_get
-func Main [in 0, out 0, local 17]
+func Main [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -17,53 +17,41 @@ func Main [in 0, out 0, local 17]
$s7 = [$s6+0]
$s5 = [$s7+0]
$s7 = 42
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
$a1 = $s7
call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s4 = $v0
$s7 = $s4
PrintIntS($s7 )
$s6 = $s6
$s7 = [$s6+0]
$s4 = [$s7+4]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s7 = $v0
$s4 = $s7
PrintIntS($s4 )
@@ -76,7 +64,7 @@ func Main [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func A_set [in 0, out 0, local 17]
+func A_set [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -87,26 +75,20 @@ func A_set [in 0, out 0, local 17]
local[7] = $s7
$s6 = $a0
$s7 = $a1
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = 12
call :AllocArray
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s5 = $v0
[$s6+8] = $s5
$s5 = [$s6+8]
@@ -127,7 +109,7 @@ func A_set [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func A_get [in 0, out 0, local 17]
+func A_get [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -153,7 +135,7 @@ func A_get [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func AllocArray [in 0, out 0, local 17]
+func AllocArray [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
diff --git a/output/ex48.vaporm b/output/ex48.vaporm
index 02dbd34..06fe967 100644
--- a/output/ex48.vaporm
+++ b/output/ex48.vaporm
@@ -1,7 +1,7 @@
const functable_A
:A_set
:A_get
-func Main [in 0, out 0, local 17]
+func Main [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -17,53 +17,41 @@ func Main [in 0, out 0, local 17]
$s7 = [$s6+0]
$s5 = [$s7+0]
$s7 = 42
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
$a1 = $s7
call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s4 = $v0
$s7 = $s4
PrintIntS($s7 )
$s6 = $s6
$s7 = [$s6+0]
$s4 = [$s7+4]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s7 = $v0
$s4 = $s7
PrintIntS($s4 )
@@ -76,7 +64,7 @@ func Main [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func A_set [in 0, out 0, local 17]
+func A_set [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -99,7 +87,7 @@ func A_set [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func A_get [in 0, out 0, local 17]
+func A_get [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -120,7 +108,7 @@ func A_get [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func AllocArray [in 0, out 0, local 17]
+func AllocArray [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
diff --git a/output/ex49.vaporm b/output/ex49.vaporm
index 5a72e0c..2c6d982 100644
--- a/output/ex49.vaporm
+++ b/output/ex49.vaporm
@@ -3,7 +3,7 @@ const functable_A
const functable_B
:B_get
:A_set
-func Main [in 0, out 0, local 17]
+func Main [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -18,26 +18,20 @@ func Main [in 0, out 0, local 17]
$s6 = $s6
$s7 = [$s6+0]
$s5 = [$s7+0]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s7 = $v0
$s5 = $s7
PrintIntS($s5 )
@@ -50,7 +44,7 @@ func Main [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func A_set [in 0, out 0, local 17]
+func A_set [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -72,7 +66,7 @@ func A_set [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func B_get [in 0, out 0, local 17]
+func B_get [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -94,7 +88,7 @@ func B_get [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func AllocArray [in 0, out 0, local 17]
+func AllocArray [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
diff --git a/output/ex50.vaporm b/output/ex50.vaporm
index 5ad0397..1a73739 100644
--- a/output/ex50.vaporm
+++ b/output/ex50.vaporm
@@ -3,7 +3,7 @@ const functable_A
const functable_B
:B_get
:B_set
-func Main [in 0, out 0, local 17]
+func Main [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -18,26 +18,20 @@ func Main [in 0, out 0, local 17]
$s6 = $s6
$s7 = [$s6+0]
$s5 = [$s7+0]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s6
call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s7 = $v0
$s5 = $s7
PrintIntS($s5 )
@@ -50,7 +44,7 @@ func Main [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func A_set_get [in 0, out 0, local 17]
+func A_set_get [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -66,51 +60,39 @@ func A_set_get [in 0, out 0, local 17]
$s7 = [$s6+4]
$s5 = [$s7+0]
$s4 = [$s5+4]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s7
call $s4
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s5 = $v0
$s4 = $s5
$s7 = [$s6+4]
$s6 = [$s7+0]
$s5 = [$s6+0]
- local[8] = $t0
- local[9] = $t1
- local[10] = $t2
- local[11] = $t3
- local[12] = $t4
- local[13] = $t5
- local[14] = $t6
- local[15] = $t7
- local[16] = $t8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
$a0 = $s7
call $s5
- $t0 = local[8]
- $t1 = local[9]
- $t2 = local[10]
- $t3 = local[11]
- $t4 = local[12]
- $t5 = local[13]
- $t6 = local[14]
- $t7 = local[15]
- $t8 = local[16]
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
$s6 = $v0
$s4 = $s6
$s6 = $s4
@@ -124,7 +106,7 @@ func A_set_get [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func B_get [in 0, out 0, local 17]
+func B_get [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -145,7 +127,7 @@ func B_get [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func B_set [in 0, out 0, local 17]
+func B_set [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -167,7 +149,7 @@ func B_set [in 0, out 0, local 17]
$s6 = local[6]
$s7 = local[7]
ret
-func AllocArray [in 0, out 0, local 17]
+func AllocArray [in 0, out 0, local 14]
local[0] = $s0
local[1] = $s1
local[2] = $s2
diff --git a/vaporize/LIRDict.java b/vaporize/LIRDict.java
index 50c79b0..30bfed3 100644
--- a/vaporize/LIRDict.java
+++ b/vaporize/LIRDict.java
@@ -84,14 +84,4 @@ public class LIRDict {
return this.spilled_num;
}
- private int subOneLine(int i) {
- int ret = i - 1;
-
- CFGNode n = cfg.getNode(new Integer(ret));
- if (n != null && n.getInstruction() instanceof VCodeLabel)
- --ret;
-
- return ret;
- }
-
}
diff --git a/vaporize/RegisterAlloc.java b/vaporize/RegisterAlloc.java
index ae5826b..100d6c4 100644
--- a/vaporize/RegisterAlloc.java
+++ b/vaporize/RegisterAlloc.java
@@ -9,8 +9,10 @@ public class RegisterAlloc {
private String[] all_registers;
private Stack<String> free_registers;
private TreeSet<LIRVar> active;
+ private int spill_start;
public RegisterAlloc(LIRDict intervals, String[] all_registers) {
+ this.spill_start = 14;
this.intervals = intervals;
this.all_registers = all_registers;
this.free_registers = new Stack<String>();
@@ -68,13 +70,11 @@ public class RegisterAlloc {
}
private void spillAtInterval(LIRVar interval) {
- MinimalLogger.severe(String.format("Ran out of free registers, but a spill for %s was not performed!",
+ // You can make this spill optimally (the sarkar linearscan algorithm)
+ MinimalLogger.severe(String.format("Ran out of free registers, had to spill %s!",
interval.toString()));
this.intervals.addSpilledNum();
- // LIRVar spill = this.active.get(this.active.length()-1);
- // if (spill.getLastUse() > interval.getLastUse()) {
- // ;
- // }
+ interval.assignRegister(String.format("local[%d]", this.spill_start++));
}
}
diff --git a/vaporize/VaporizeVisitor.java b/vaporize/VaporizeVisitor.java
index 17e9981..ba319cb 100644
--- a/vaporize/VaporizeVisitor.java
+++ b/vaporize/VaporizeVisitor.java
@@ -8,20 +8,25 @@ import java.util.*;
public class VaporizeVisitor extends VInstr.VisitorP<LIRDict, RuntimeException> {
private ArrayList<String> vaporm;
+ private Stack<String> spill_stack;
+ private LIRDict curr;
String[] callee_save = new String[] { "$s0", "$s1", "$s2", "$s3", "$s4", "$s5", "$s6", "$s7" };
- String[] caller_save = new String[] { "$t0", "$t1", "$t2", "$t3", "$t4", "$t5", "$t6", "$t7", "$t8" };
+ String[] caller_save = new String[] { "$t3", "$t4", "$t5", "$t6", "$t7", "$t8" };
String[] arg_pass = new String[] { "$a0", "$a1", "$a2", "$a3" };
String[] ret_pass = new String[] { "$v0" };
+ String[] spillers = new String[] {"$t0", "$t1", "$t2" };
+
public VaporizeVisitor(VaporProgram vp, ArrayList<String> vaporm, ArrayList<LIRDict> interval_list) {
this.vaporm = vaporm;
+ this.spill_stack = new Stack<String>();
// is it possible for interval_list and the
// function in vp to be out of order?
for (int i = 0; i < vp.functions.length; ++i) {
this.addVaporm(String.format("func %s [in %d, out %d, local %d]",
- vp.functions[i].ident, 0, 0, interval_list.get(i).getSpilledNum() + 17));
+ vp.functions[i].ident, 0, 0, interval_list.get(i).getSpilledNum() + 14));
for (int j = 0; j < this.callee_save.length; ++j) {
this.addVaporm(String.format(" local[%s] = %s",
j,
@@ -40,8 +45,11 @@ public class VaporizeVisitor extends VInstr.VisitorP<LIRDict, RuntimeException>
f.toString()));
for (Node n : f) {
- if (n instanceof VInstr)
+ if (n instanceof VInstr) {
+ this.curr = interval_list.get(i);
((VInstr) n).accept(interval_list.get(i), this);
+ this.emptySpillStack();
+ }
else
this.addVaporm(((VCodeLabel) n).ident + ":");
}
@@ -62,6 +70,29 @@ public class VaporizeVisitor extends VInstr.VisitorP<LIRDict, RuntimeException>
return sort;
}
+ public String getRegister(String s) {
+ if (this.curr.getInterval(s) == null)
+ return null;
+ String r = this.curr.getInterval(s).getAssignedRegister();
+ if (r.contains("local")) {// SPILL
+ int i = this.spill_stack.size();
+ String reg = this.spillers[i];
+ this.addVaporm(String.format(" %s = %s",
+ reg,
+ r));
+ this.spill_stack.push(String.format(" %s = %s",
+ r,
+ reg));
+ r = reg;
+ }
+ return r;
+ }
+
+ public void emptySpillStack() {
+ for (int i = 0; i < this.spill_stack.size(); ++i)
+ this.addVaporm(this.spill_stack.pop());
+ }
+
public ArrayList<String> getVaporm() {
return this.vaporm;
}
@@ -77,9 +108,9 @@ public class VaporizeVisitor extends VInstr.VisitorP<LIRDict, RuntimeException>
n.getClass().getSimpleName(),
n.sourcePos.toString()));
///////////////////////////////////////////////////////////////
- String dest = d.getInterval(((VVarRef.Local) n.dest).ident).getAssignedRegister();
+ String dest = this.getRegister(((VVarRef.Local) n.dest).ident);
String source = (n.source instanceof VVarRef.Local) ?
- d.getInterval(n.source.toString()).getAssignedRegister()
+ this.getRegister(n.source.toString())
: n.source.toString();
this.addVaporm(String.format(" %s = %s",
dest, source));
@@ -104,7 +135,7 @@ public class VaporizeVisitor extends VInstr.VisitorP<LIRDict, RuntimeException>
// FIXME for arg num > 4!
for (int i = 0; i < n.args.length; ++i) {
String reg = (n.args[i] instanceof VVarRef.Local) ?
- d.getInterval(n.args[i].toString()).getAssignedRegister()
+ this.getRegister(n.args[i].toString())
: n.args[i].toString();
MinimalLogger.info(String.format("Adding argument for %s",
n.args[i].toString()));
@@ -116,16 +147,15 @@ public class VaporizeVisitor extends VInstr.VisitorP<LIRDict, RuntimeException>
MinimalLogger.severe(String.format("n addr: %s",
n.addr.toString()));
MinimalLogger.severe(String.format("Interval: %s",
- d.getInterval(n.addr.toString())));
- LIRVar interval = d.getInterval(n.addr.toString());
- if (interval == null)
+ this.getRegister(n.addr.toString())));
+ String r = this.getRegister(n.addr.toString());
+ if (r == null)
// a label
this.addVaporm(String.format(" call %s",
n.addr.toString()));
else
this.addVaporm(String.format(" call %s",
- interval
- .getAssignedRegister()));
+ r));
for (int i = 0; i < this.caller_save.length; ++i) {
this.addVaporm(String.format(" %s = local[%s]",
this.caller_save[i],
@@ -135,8 +165,8 @@ public class VaporizeVisitor extends VInstr.VisitorP<LIRDict, RuntimeException>
// get dest
if (n.dest != null) {
this.addVaporm(String.format(" %s = $v0",
- d.getInterval(((VVarRef.Local) n.dest).ident)
- .getAssignedRegister()));
+ this.getRegister(((VVarRef.Local) n.dest).ident)
+ ));
}
///////////////////////////////////////////////////////////////
MinimalLogger.info(String.format("<-%s (%s)",
@@ -152,8 +182,8 @@ public class VaporizeVisitor extends VInstr.VisitorP<LIRDict, RuntimeException>
String ret = "";
if (n.dest != null) {
ret += String.format("%s = ",
- d.getInterval(((VVarRef.Local) n.dest).ident)
- .getAssignedRegister());
+ this.getRegister(((VVarRef.Local) n.dest).ident)
+ );
}
ret += String.format("%s(",
((VBuiltIn.Op) n.op).name);
@@ -161,7 +191,7 @@ public class VaporizeVisitor extends VInstr.VisitorP<LIRDict, RuntimeException>
String par;
for (VOperand a : n.args) {
par = (a instanceof VVarRef.Local) ?
- d.getInterval(a.toString()).getAssignedRegister()
+ this.getRegister(a.toString())
: a.toString();
ret += String.format("%s ",
par);
@@ -182,10 +212,10 @@ public class VaporizeVisitor extends VInstr.VisitorP<LIRDict, RuntimeException>
n.getClass().getSimpleName(),
n.sourcePos.toString()));
///////////////////////////////////////////////////////////////
- String dest = d.getInterval(((VMemRef.Global) n.dest).base.toString())
- .getAssignedRegister();
+ String dest = this.getRegister(((VMemRef.Global) n.dest).base.toString())
+ ;
String source = (n.source instanceof VVarRef.Local) ?
- d.getInterval(n.source.toString()).getAssignedRegister() :
+ this.getRegister(n.source.toString()) :
n.source.toString();
int byteOffset = ((VMemRef.Global) n.dest).byteOffset;
this.addVaporm(String.format(" [%s+%d] = %s",
@@ -202,10 +232,10 @@ public class VaporizeVisitor extends VInstr.VisitorP<LIRDict, RuntimeException>
n.sourcePos.toString()));
///////////////////////////////////////////////////////////////
String dest = (n.dest instanceof VVarRef.Local) ?
- d.getInterval(n.dest.toString()).getAssignedRegister() :
+ this.getRegister(n.dest.toString()) :
n.dest.toString();
- String source = d.getInterval(((VMemRef.Global) n.source).base.toString())
- .getAssignedRegister();
+ String source = this.getRegister(((VMemRef.Global) n.source).base.toString())
+ ;
int byteOffset = ((VMemRef.Global) n.source).byteOffset;
this.addVaporm(String.format(" %s = [%s+%d]",
dest, source, byteOffset));
@@ -226,8 +256,8 @@ public class VaporizeVisitor extends VInstr.VisitorP<LIRDict, RuntimeException>
else
ret += "if0 ";
- ret += d.getInterval(n.value.toString())
- .getAssignedRegister() + " goto :";
+ ret += this.getRegister(n.value.toString())
+ + " goto :";
ret += n.target.ident;
@@ -260,7 +290,7 @@ public class VaporizeVisitor extends VInstr.VisitorP<LIRDict, RuntimeException>
// get ret
if (n.value != null) {
String reg = (n.value instanceof VVarRef.Local) ?
- d.getInterval(n.value.toString()).getAssignedRegister() :
+ this.getRegister(n.value.toString()) :
n.value.toString();
this.addVaporm(String.format(" $v0 = %s",
reg));