summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cfg/ControlFlowGraph.java1
-rw-r--r--output/BinaryTree.vaporm1538
-rw-r--r--output/BubbleSort.vaporm432
-rw-r--r--output/LinearSearch.vaporm298
-rw-r--r--output/LinkedList.vaporm934
-rw-r--r--output/QuickSort.vaporm554
-rw-r--r--output/TreeVisitor.vaporm1648
-rw-r--r--output/ex37.vaporm20
-rw-r--r--output/ex38.vaporm20
-rw-r--r--output/ex41.vaporm56
-rw-r--r--vaporize/RegisterAlloc.java10
11 files changed, 3673 insertions, 1838 deletions
diff --git a/cfg/ControlFlowGraph.java b/cfg/ControlFlowGraph.java
index 49cd2fc..85d9fe9 100644
--- a/cfg/ControlFlowGraph.java
+++ b/cfg/ControlFlowGraph.java
@@ -100,6 +100,7 @@ public class ControlFlowGraph {
public void addDefinition(CFGNode n, String s) {
n.defs.add(s);
n.reaching.add(s);
+ n.liveness.add(s);
}
public void addReference(CFGNode n, String s) {
diff --git a/output/BinaryTree.vaporm b/output/BinaryTree.vaporm
index d315ffb..135a5f5 100644
--- a/output/BinaryTree.vaporm
+++ b/output/BinaryTree.vaporm
@@ -96,8 +96,8 @@ func BT_Start [in 0, out 0, local 14]
$s4 = $v0
$s6 = $s4
$s7 = $s7
- $s6 = [$s7+0]
- $s4 = [$s6+72]
+ $s4 = [$s7+0]
+ $s5 = [$s4+72]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -105,21 +105,41 @@ func BT_Start [in 0, out 0, local 14]
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s4
+ call $s5
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s6 = $v0
- $s6 = $s6
- $s6 = 100000000
- PrintIntS($s6 )
+ $s4 = $v0
+ $s6 = $s4
+ $s4 = 100000000
+ PrintIntS($s4 )
$s7 = $s7
- $s6 = [$s7+0]
- $s4 = [$s6+48]
- $s6 = 8
+ $s4 = [$s7+0]
+ $s5 = [$s4+48]
+ $s4 = 8
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
+ $a0 = $s7
+ $a1 = $s4
+ call $s5
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
+ $s3 = $v0
+ $s6 = $s3
+ $s7 = $s7
+ $s3 = [$s7+0]
+ $s4 = [$s3+72]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -127,7 +147,6 @@ func BT_Start [in 0, out 0, local 14]
local[12] = $t7
local[13] = $t8
$a0 = $s7
- $a1 = $s6
call $s4
$t3 = local[8]
$t4 = local[9]
@@ -135,11 +154,12 @@ func BT_Start [in 0, out 0, local 14]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s5 = $v0
- $s6 = $s5
+ $s3 = $v0
+ $s6 = $s3
$s7 = $s7
- $s5 = [$s7+0]
- $s6 = [$s5+72]
+ $s3 = [$s7+0]
+ $s4 = [$s3+48]
+ $s3 = 24
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -147,7 +167,8 @@ func BT_Start [in 0, out 0, local 14]
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s6
+ $a1 = $s3
+ call $s4
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
@@ -158,8 +179,8 @@ func BT_Start [in 0, out 0, local 14]
$s6 = $s5
$s7 = $s7
$s5 = [$s7+0]
- $s6 = [$s5+48]
- $s5 = 24
+ $s3 = [$s5+48]
+ $s5 = 4
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -168,7 +189,7 @@ func BT_Start [in 0, out 0, local 14]
local[13] = $t8
$a0 = $s7
$a1 = $s5
- call $s6
+ call $s3
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
@@ -180,7 +201,7 @@ func BT_Start [in 0, out 0, local 14]
$s7 = $s7
$s4 = [$s7+0]
$s5 = [$s4+48]
- $s4 = 4
+ $s4 = 12
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -196,12 +217,12 @@ func BT_Start [in 0, out 0, local 14]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s6 = $v0
- $s6 = $s6
+ $s3 = $v0
+ $s6 = $s3
$s7 = $s7
- $s6 = [$s7+0]
- $s4 = [$s6+48]
- $s6 = 12
+ $s3 = [$s7+0]
+ $s4 = [$s3+48]
+ $s3 = 20
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -209,7 +230,7 @@ func BT_Start [in 0, out 0, local 14]
local[12] = $t7
local[13] = $t8
$a0 = $s7
- $a1 = $s6
+ $a1 = $s3
call $s4
$t3 = local[8]
$t4 = local[9]
@@ -221,8 +242,8 @@ func BT_Start [in 0, out 0, local 14]
$s6 = $s5
$s7 = $s7
$s5 = [$s7+0]
- $s6 = [$s5+48]
- $s5 = 20
+ $s3 = [$s5+48]
+ $s5 = 28
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -231,7 +252,7 @@ func BT_Start [in 0, out 0, local 14]
local[13] = $t8
$a0 = $s7
$a1 = $s5
- call $s6
+ call $s3
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
@@ -243,7 +264,7 @@ func BT_Start [in 0, out 0, local 14]
$s7 = $s7
$s4 = [$s7+0]
$s5 = [$s4+48]
- $s4 = 28
+ $s4 = 14
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -259,12 +280,11 @@ func BT_Start [in 0, out 0, local 14]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s6 = $v0
- $s6 = $s6
+ $s3 = $v0
+ $s6 = $s3
$s7 = $s7
- $s6 = [$s7+0]
- $s4 = [$s6+48]
- $s6 = 14
+ $s3 = [$s7+0]
+ $s4 = [$s3+72]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -272,7 +292,6 @@ func BT_Start [in 0, out 0, local 14]
local[12] = $t7
local[13] = $t8
$a0 = $s7
- $a1 = $s6
call $s4
$t3 = local[8]
$t4 = local[9]
@@ -280,11 +299,12 @@ func BT_Start [in 0, out 0, local 14]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s5 = $v0
- $s6 = $s5
+ $s3 = $v0
+ $s6 = $s3
$s7 = $s7
- $s5 = [$s7+0]
- $s6 = [$s5+72]
+ $s3 = [$s7+0]
+ $s4 = [$s3+68]
+ $s3 = 24
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -292,7 +312,8 @@ func BT_Start [in 0, out 0, local 14]
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s6
+ $a1 = $s3
+ call $s4
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
@@ -300,11 +321,12 @@ func BT_Start [in 0, out 0, local 14]
$t7 = local[12]
$t8 = local[13]
$s5 = $v0
- $s6 = $s5
+ $s3 = $s5
+ PrintIntS($s3 )
$s7 = $s7
- $s5 = [$s7+0]
- $s6 = [$s5+68]
- $s5 = 24
+ $s3 = [$s7+0]
+ $s5 = [$s3+68]
+ $s3 = 12
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -312,8 +334,8 @@ func BT_Start [in 0, out 0, local 14]
local[12] = $t7
local[13] = $t8
$a0 = $s7
- $a1 = $s5
- call $s6
+ $a1 = $s3
+ call $s5
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
@@ -321,12 +343,12 @@ func BT_Start [in 0, out 0, local 14]
$t7 = local[12]
$t8 = local[13]
$s4 = $v0
- $s5 = $s4
- PrintIntS($s5 )
+ $s3 = $s4
+ PrintIntS($s3 )
$s7 = $s7
- $s5 = [$s7+0]
- $s4 = [$s5+68]
- $s5 = 12
+ $s3 = [$s7+0]
+ $s4 = [$s3+68]
+ $s3 = 16
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -334,7 +356,7 @@ func BT_Start [in 0, out 0, local 14]
local[12] = $t7
local[13] = $t8
$a0 = $s7
- $a1 = $s5
+ $a1 = $s3
call $s4
$t3 = local[8]
$t4 = local[9]
@@ -342,13 +364,13 @@ func BT_Start [in 0, out 0, local 14]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s6 = $v0
- $s5 = $s6
- PrintIntS($s5 )
+ $s5 = $v0
+ $s3 = $s5
+ PrintIntS($s3 )
$s7 = $s7
- $s5 = [$s7+0]
- $s6 = [$s5+68]
- $s5 = 16
+ $s3 = [$s7+0]
+ $s5 = [$s3+68]
+ $s3 = 50
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -356,8 +378,8 @@ func BT_Start [in 0, out 0, local 14]
local[12] = $t7
local[13] = $t8
$a0 = $s7
- $a1 = $s5
- call $s6
+ $a1 = $s3
+ call $s5
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
@@ -365,12 +387,12 @@ func BT_Start [in 0, out 0, local 14]
$t7 = local[12]
$t8 = local[13]
$s4 = $v0
- $s5 = $s4
- PrintIntS($s5 )
+ $s3 = $s4
+ PrintIntS($s3 )
$s7 = $s7
- $s5 = [$s7+0]
- $s4 = [$s5+68]
- $s5 = 50
+ $s3 = [$s7+0]
+ $s4 = [$s3+68]
+ $s3 = 12
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -378,7 +400,7 @@ func BT_Start [in 0, out 0, local 14]
local[12] = $t7
local[13] = $t8
$a0 = $s7
- $a1 = $s5
+ $a1 = $s3
call $s4
$t3 = local[8]
$t4 = local[9]
@@ -386,13 +408,13 @@ func BT_Start [in 0, out 0, local 14]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s6 = $v0
- $s5 = $s6
- PrintIntS($s5 )
+ $s5 = $v0
+ $s3 = $s5
+ PrintIntS($s3 )
$s7 = $s7
- $s5 = [$s7+0]
- $s6 = [$s5+68]
- $s5 = 12
+ $s3 = [$s7+0]
+ $s5 = [$s3+52]
+ $s3 = 12
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -400,8 +422,8 @@ func BT_Start [in 0, out 0, local 14]
local[12] = $t7
local[13] = $t8
$a0 = $s7
- $a1 = $s5
- call $s6
+ $a1 = $s3
+ call $s5
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
@@ -409,32 +431,10 @@ func BT_Start [in 0, out 0, local 14]
$t7 = local[12]
$t8 = local[13]
$s4 = $v0
- $s5 = $s4
- PrintIntS($s5 )
- $s7 = $s7
- $s5 = [$s7+0]
- $s4 = [$s5+52]
- $s5 = 12
- local[8] = $t3
- local[9] = $t4
- local[10] = $t5
- local[11] = $t6
- local[12] = $t7
- local[13] = $t8
- $a0 = $s7
- $a1 = $s5
- call $s4
- $t3 = local[8]
- $t4 = local[9]
- $t5 = local[10]
- $t6 = local[11]
- $t7 = local[12]
- $t8 = local[13]
- $s6 = $v0
- $s6 = $s6
+ $s6 = $s4
$s7 = $s7
- $s6 = [$s7+0]
- $s5 = [$s6+72]
+ $s4 = [$s7+0]
+ $s3 = [$s4+72]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -442,19 +442,19 @@ func BT_Start [in 0, out 0, local 14]
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s5
+ call $s3
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s6 = $v0
- $s6 = $s6
+ $s4 = $v0
+ $s6 = $s4
$s7 = $s7
- $s6 = [$s7+0]
- $s5 = [$s6+68]
- $s6 = 12
+ $s4 = [$s7+0]
+ $s6 = [$s4+68]
+ $s4 = 12
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -462,19 +462,19 @@ func BT_Start [in 0, out 0, local 14]
local[12] = $t7
local[13] = $t8
$a0 = $s7
- $a1 = $s6
- call $s5
+ $a1 = $s4
+ call $s6
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s4 = $v0
- $s6 = $s4
- PrintIntS($s6 )
- $s6 = 0
- $v0 = $s6
+ $s3 = $v0
+ $s4 = $s3
+ PrintIntS($s4 )
+ $s4 = 0
+ $v0 = $s4
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -779,7 +779,7 @@ if100_end:
$s6 = local[6]
$s7 = local[7]
ret
-func Tree_Insert [in 0, out 0, local 14]
+func Tree_Insert [in 0, out 0, local 44]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -814,216 +814,352 @@ func Tree_Insert [in 0, out 0, local 14]
$t8 = local[13]
$s2 = $v0
$s5 = $s2
- $s5 = $s6
+ $s2 = $s6
$s6 = 1
while115_test:
- $s2 = $s6
- if0 $s2 goto :while115_end
+ $s3 = $s6
+ if0 $s3 goto :while115_end
while115_body:
- $s5 = $s5
- $s2 = [$s5+0]
- $s3 = [$s2+20]
+ $s2 = $s2
+ $t0 = local[27]
+ $t0 = [$s2+0]
+ local[27] = $t0
+ $t0 = local[33]
+ $t1 = local[27]
+ $t0 = [$t1+20]
+ local[27] = $t1
+ local[33] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
- call $s3
- $t3 = local[8]
- $t4 = local[9]
- $t5 = local[10]
- $t6 = local[11]
- $t7 = local[12]
- $t8 = local[13]
- $s2 = $v0
- $s3 = $s2
- $s2 = $s7
- $s1 = $s3
- $s3 = LtS($s2 $s1 )
- $s1 = $s3
- if0 $s1 goto :if120_else
+ $a0 = $s2
+ $t0 = local[33]
+ $t1 = local[33]
+ call $t1
+ local[33] = $t1
+ local[33] = $t0
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
+ $t0 = local[29]
+ $t0 = $v0
+ local[29] = $t0
+ $t0 = local[37]
+ $t1 = local[29]
+ $t0 = $t1
+ local[29] = $t1
+ local[37] = $t0
+ $t0 = local[24]
+ $t0 = $s7
+ local[24] = $t0
+ $t0 = local[23]
+ $t1 = local[37]
+ $t0 = $t1
+ local[37] = $t1
+ local[23] = $t0
+ $t0 = local[31]
+ $t1 = local[24]
+ $t2 = local[23]
+ $t0 = LtS($t1 $t2 )
+ local[23] = $t2
+ local[24] = $t1
+ local[31] = $t0
+ $t0 = local[25]
+ $t1 = local[31]
+ $t0 = $t1
+ local[31] = $t1
+ local[25] = $t0
+ $t0 = local[25]
+ if0 $t0 goto :if120_else
+ local[25] = $t0
if120_body:
- $s5 = $s5
- $s1 = [$s5+0]
- $s3 = [$s1+32]
+ $s2 = $s2
+ $t0 = local[15]
+ $t0 = [$s2+0]
+ local[15] = $t0
+ $t0 = local[21]
+ $t1 = local[15]
+ $t0 = [$t1+32]
+ local[15] = $t1
+ local[21] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
- call $s3
+ $a0 = $s2
+ $t0 = local[21]
+ $t1 = local[21]
+ call $t1
+ local[21] = $t1
+ local[21] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s1 = $v0
- $s3 = $s1
- if0 $s3 goto :if124_else
+ $t0 = local[17]
+ $t0 = $v0
+ local[17] = $t0
+ $t0 = local[19]
+ $t1 = local[17]
+ $t0 = $t1
+ local[17] = $t1
+ local[19] = $t0
+ $t0 = local[19]
+ if0 $t0 goto :if124_else
+ local[19] = $t0
if124_body:
- $s5 = $s5
- $s3 = [$s5+0]
- $s1 = [$s3+16]
+ $s2 = $s2
+ $s1 = [$s2+0]
+ $t0 = local[42]
+ $t0 = [$s1+16]
+ local[42] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
- call $s1
+ $a0 = $s2
+ $t0 = local[42]
+ $t1 = local[42]
+ call $t1
+ local[42] = $t1
+ local[42] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s3 = $v0
- $s5 = $s3
+ $t7 = $v0
+ $s2 = $t7
goto :if124_end
if124_else:
$s6 = 0
- $s5 = $s5
- $s3 = [$s5+0]
- $s1 = [$s3+36]
- $s3 = 1
+ $s2 = $s2
+ $t0 = local[41]
+ $t0 = [$s2+0]
+ local[41] = $t0
+ $t0 = local[40]
+ $t1 = local[41]
+ $t0 = [$t1+36]
+ local[41] = $t1
+ local[40] = $t0
+ $t0 = local[26]
+ $t0 = 1
+ local[26] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
- $a1 = $s3
- call $s1
+ $a0 = $s2
+ $t0 = local[26]
+ $a1 = $t0
+ local[26] = $t0
+ $t0 = local[40]
+ $t1 = local[40]
+ call $t1
+ local[40] = $t1
+ local[40] = $t0
$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]
- $s3 = [$s2+8]
- $s2 = $s4
+ $t5 = $v0
+ $s5 = $t5
+ $s2 = $s2
+ $t0 = local[35]
+ $t0 = [$s2+0]
+ local[35] = $t0
+ $t0 = local[39]
+ $t1 = local[35]
+ $t0 = [$t1+8]
+ local[35] = $t1
+ local[39] = $t0
+ $t0 = local[38]
+ $t0 = $s4
+ local[38] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
- $a1 = $s2
- call $s3
+ $a0 = $s2
+ $t0 = local[38]
+ $a1 = $t0
+ local[38] = $t0
+ $t0 = local[39]
+ $t1 = local[39]
+ call $t1
+ local[39] = $t1
+ local[39] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s1 = $v0
- $s5 = $s1
+ $t0 = local[36]
+ $t0 = $v0
+ local[36] = $t0
+ $t0 = local[36]
+ $s5 = $t0
+ local[36] = $t0
if124_end:
goto :if120_end
if120_else:
- $s5 = $s5
- $s1 = [$s5+0]
- $s2 = [$s1+28]
+ $s2 = $s2
+ $t0 = local[28]
+ $t0 = [$s2+0]
+ local[28] = $t0
+ $t0 = local[34]
+ $t1 = local[28]
+ $t0 = [$t1+28]
+ local[28] = $t1
+ local[34] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
- call $s2
+ $a0 = $s2
+ $t0 = local[34]
+ $t1 = local[34]
+ call $t1
+ local[34] = $t1
+ local[34] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s1 = $v0
- $s2 = $s1
- if0 $s2 goto :if139_else
+ $t0 = local[30]
+ $t0 = $v0
+ local[30] = $t0
+ $t0 = local[32]
+ $t1 = local[30]
+ $t0 = $t1
+ local[30] = $t1
+ local[32] = $t0
+ $t0 = local[32]
+ if0 $t0 goto :if139_else
+ local[32] = $t0
if139_body:
- $s5 = $s5
- $s2 = [$s5+0]
- $s1 = [$s2+12]
+ $s2 = $s2
+ $t3 = [$s2+0]
+ $t4 = [$t3+12]
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
- call $s1
+ $a0 = $s2
+ call $t4
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s2 = $v0
- $s5 = $s2
+ $t3 = $v0
+ $s2 = $t3
goto :if139_end
if139_else:
$s6 = 0
- $s5 = $s5
- $s2 = [$s5+0]
- $s1 = [$s2+40]
- $s2 = 1
+ $s2 = $s2
+ $t0 = local[16]
+ $t0 = [$s2+0]
+ local[16] = $t0
+ $t0 = local[22]
+ $t1 = local[16]
+ $t0 = [$t1+40]
+ local[16] = $t1
+ local[22] = $t0
+ $t0 = local[20]
+ $t0 = 1
+ local[20] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
- $a1 = $s2
- call $s1
+ $a0 = $s2
+ $t0 = local[20]
+ $a1 = $t0
+ local[20] = $t0
+ $t0 = local[22]
+ $t1 = local[22]
+ call $t1
+ local[22] = $t1
+ local[22] = $t0
$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+4]
- $s3 = $s4
+ $t0 = local[18]
+ $t0 = $v0
+ local[18] = $t0
+ $t0 = local[18]
+ $s5 = $t0
+ local[18] = $t0
+ $s2 = $s2
+ $s0 = [$s2+0]
+ $t0 = local[14]
+ $t0 = [$s0+4]
+ local[14] = $t0
+ $t0 = local[43]
+ $t0 = $s4
+ local[43] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
- $a1 = $s3
- call $s2
+ $a0 = $s2
+ $t0 = local[43]
+ $a1 = $t0
+ local[43] = $t0
+ $t0 = local[14]
+ $t1 = local[14]
+ call $t1
+ local[14] = $t1
+ local[14] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s1 = $v0
- $s5 = $s1
+ $t6 = $v0
+ $s5 = $t6
if139_end:
if120_end:
goto :while115_test
while115_end:
- $s6 = 1
- $v0 = $s6
+ $t5 = 1
+ $v0 = $t5
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -1033,7 +1169,7 @@ while115_end:
$s6 = local[6]
$s7 = local[7]
ret
-func Tree_Delete [in 0, out 0, local 14]
+func Tree_Delete [in 0, out 0, local 54]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -1047,15 +1183,23 @@ func Tree_Delete [in 0, out 0, local 14]
$s5 = $s6
$s4 = $s6
$s3 = 1
- $s2 = 0
+ $t0 = local[14]
+ $t0 = 0
+ local[14] = $t0
$s1 = 1
while155_test:
$s0 = $s3
if0 $s0 goto :while155_end
while155_body:
$s5 = $s5
- $s0 = [$s5+0]
- $t7 = [$s0+20]
+ $t0 = local[45]
+ $t0 = [$s5+0]
+ local[45] = $t0
+ $t0 = local[50]
+ $t1 = local[45]
+ $t0 = [$t1+20]
+ local[45] = $t1
+ local[50] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1063,24 +1207,58 @@ while155_body:
local[12] = $t7
local[13] = $t8
$a0 = $s5
- call $t7
- $t3 = local[8]
- $t4 = local[9]
- $t5 = local[10]
- $t6 = local[11]
- $t7 = local[12]
- $t8 = local[13]
- $s0 = $v0
- $t7 = $s0
- $s0 = $s7
- $t6 = $t7
- $t5 = LtS($s0 $t6 )
- $t6 = $t5
- if0 $t6 goto :if160_else
+ $t0 = local[50]
+ $t1 = local[50]
+ call $t1
+ local[50] = $t1
+ local[50] = $t0
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
+ $t0 = local[25]
+ $t0 = $v0
+ local[25] = $t0
+ $t0 = local[26]
+ $t1 = local[25]
+ $t0 = $t1
+ local[25] = $t1
+ local[26] = $t0
+ $t0 = local[41]
+ $t0 = $s7
+ local[41] = $t0
+ $t0 = local[40]
+ $t1 = local[26]
+ $t0 = $t1
+ local[26] = $t1
+ local[40] = $t0
+ $t0 = local[48]
+ $t1 = local[41]
+ $t2 = local[40]
+ $t0 = LtS($t1 $t2 )
+ local[40] = $t2
+ local[41] = $t1
+ local[48] = $t0
+ $t0 = local[44]
+ $t1 = local[48]
+ $t0 = $t1
+ local[48] = $t1
+ local[44] = $t0
+ $t0 = local[44]
+ if0 $t0 goto :if160_else
+ local[44] = $t0
if160_body:
$s5 = $s5
- $t6 = [$s5+0]
- $t5 = [$t6+32]
+ $t0 = local[35]
+ $t0 = [$s5+0]
+ local[35] = $t0
+ $t0 = local[34]
+ $t1 = local[35]
+ $t0 = [$t1+32]
+ local[35] = $t1
+ local[34] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1088,21 +1266,39 @@ if160_body:
local[12] = $t7
local[13] = $t8
$a0 = $s5
- call $t5
+ $t0 = local[34]
+ $t1 = local[34]
+ call $t1
+ local[34] = $t1
+ local[34] = $t0
$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 :if164_else
+ $t0 = local[43]
+ $t0 = $v0
+ local[43] = $t0
+ $t0 = local[36]
+ $t1 = local[43]
+ $t0 = $t1
+ local[43] = $t1
+ local[36] = $t0
+ $t0 = local[36]
+ if0 $t0 goto :if164_else
+ local[36] = $t0
if164_body:
$s4 = $s5
$s5 = $s5
- $t5 = [$s5+0]
- $t6 = [$t5+16]
+ $t0 = local[30]
+ $t0 = [$s5+0]
+ local[30] = $t0
+ $t0 = local[33]
+ $t1 = local[30]
+ $t0 = [$t1+16]
+ local[30] = $t1
+ local[33] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1110,30 +1306,56 @@ if164_body:
local[12] = $t7
local[13] = $t8
$a0 = $s5
- call $t6
+ $t0 = local[33]
+ $t1 = local[33]
+ call $t1
+ local[33] = $t1
+ local[33] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $t5 = $v0
- $s5 = $t5
+ $t0 = local[31]
+ $t0 = $v0
+ local[31] = $t0
+ $t0 = local[31]
+ $s5 = $t0
+ local[31] = $t0
goto :if164_end
if164_else:
$s3 = 0
if164_end:
goto :if160_end
if160_else:
- $t5 = $t7
- $t7 = $s7
- $t6 = LtS($t5 $t7 )
- $t7 = $t6
- if0 $t7 goto :if171_else
+ $t0 = local[28]
+ $t1 = local[26]
+ $t0 = $t1
+ local[26] = $t1
+ local[28] = $t0
+ $t0 = local[27]
+ $t0 = $s7
+ local[27] = $t0
+ $t0 = local[32]
+ $t1 = local[28]
+ $t2 = local[27]
+ $t0 = LtS($t1 $t2 )
+ local[27] = $t2
+ local[28] = $t1
+ local[32] = $t0
+ $t0 = local[29]
+ $t1 = local[32]
+ $t0 = $t1
+ local[32] = $t1
+ local[29] = $t0
+ $t0 = local[29]
+ if0 $t0 goto :if171_else
+ local[29] = $t0
if171_body:
$s5 = $s5
- $t7 = [$s5+0]
- $t6 = [$t7+28]
+ $s2 = [$s5+0]
+ $t3 = [$s2+28]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1141,21 +1363,21 @@ if171_body:
local[12] = $t7
local[13] = $t8
$a0 = $s5
- call $t6
+ call $t3
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $t7 = $v0
- $t6 = $t7
- if0 $t6 goto :if175_else
+ $s2 = $v0
+ $t3 = $s2
+ if0 $t3 goto :if175_else
if175_body:
$s4 = $s5
$s5 = $s5
- $t6 = [$s5+0]
- $t7 = [$t6+12]
+ $t3 = [$s5+0]
+ $s2 = [$t3+12]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1163,27 +1385,37 @@ if175_body:
local[12] = $t7
local[13] = $t8
$a0 = $s5
- call $t7
+ call $s2
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $t6 = $v0
- $s5 = $t6
+ $t3 = $v0
+ $s5 = $t3
goto :if175_end
if175_else:
$s3 = 0
if175_end:
goto :if171_end
if171_else:
- $t6 = $s1
- if0 $t6 goto :if182_else
+ $t0 = local[24]
+ $t0 = $s1
+ local[24] = $t0
+ $t0 = local[24]
+ if0 $t0 goto :if182_else
+ local[24] = $t0
if182_body:
$s5 = $s5
- $t6 = [$s5+0]
- $t7 = [$t6+28]
+ $t0 = local[22]
+ $t0 = [$s5+0]
+ local[22] = $t0
+ $t0 = local[19]
+ $t1 = local[22]
+ $t0 = [$t1+28]
+ local[22] = $t1
+ local[19] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1191,19 +1423,37 @@ if182_body:
local[12] = $t7
local[13] = $t8
$a0 = $s5
- call $t7
+ $t0 = local[19]
+ $t1 = local[19]
+ call $t1
+ local[19] = $t1
+ local[19] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $t6 = $v0
- $t7 = Eq($t6 0 )
- $t6 = $t7
+ $t0 = local[23]
+ $t0 = $v0
+ local[23] = $t0
+ $t0 = local[20]
+ $t1 = local[23]
+ $t0 = Eq($t1 0 )
+ local[23] = $t1
+ local[20] = $t0
+ $t0 = local[20]
+ $t6 = $t0
+ local[20] = $t0
$s5 = $s5
- $t7 = [$s5+0]
- $t5 = [$t7+32]
+ $t0 = local[15]
+ $t0 = [$s5+0]
+ local[15] = $t0
+ $t0 = local[18]
+ $t1 = local[15]
+ $t0 = [$t1+32]
+ local[15] = $t1
+ local[18] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1211,29 +1461,61 @@ if182_body:
local[12] = $t7
local[13] = $t8
$a0 = $s5
- call $t5
- $t3 = local[8]
- $t4 = local[9]
- $t5 = local[10]
- $t6 = local[11]
- $t7 = local[12]
- $t8 = local[13]
- $t7 = $v0
- $t5 = Eq($t7 0 )
- $t7 = $t5
- $t5 = Eq(1 $t6 )
- $t6 = Eq(1 $t7 )
- $t7 = Eq($t5 $t6 )
- $t6 = $t7
- if0 $t6 goto :if183_else
+ $t0 = local[18]
+ $t1 = local[18]
+ call $t1
+ local[18] = $t1
+ local[18] = $t0
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
+ $t0 = local[16]
+ $t0 = $v0
+ local[16] = $t0
+ $t0 = local[16]
+ $t7 = Eq($t0 0 )
+ local[16] = $t0
+ $t0 = local[17]
+ $t0 = $t7
+ local[17] = $t0
+ $t4 = Eq(1 $t6 )
+ $t0 = local[17]
+ $t5 = Eq(1 $t0 )
+ local[17] = $t0
+ $t0 = local[21]
+ $t0 = Eq($t4 $t5 )
+ local[21] = $t0
+ $t0 = local[52]
+ $t1 = local[21]
+ $t0 = $t1
+ local[21] = $t1
+ local[52] = $t0
+ $t0 = local[52]
+ if0 $t0 goto :if183_else
+ local[52] = $t0
if183_body:
- $t6 = 1
+ $t0 = local[53]
+ $t0 = 1
+ local[53] = $t0
goto :if183_end
if183_else:
- $t6 = [$s6+0]
- $t7 = $s4
- $t5 = $s5
- $t6 = [$t6+56]
+ $t0 = local[39]
+ $t0 = [$s6+0]
+ local[39] = $t0
+ $t0 = local[38]
+ $t0 = $s4
+ local[38] = $t0
+ $t0 = local[47]
+ $t0 = $s5
+ local[47] = $t0
+ $t0 = local[39]
+ $t1 = local[39]
+ $t0 = [$t1+56]
+ local[39] = $t1
+ local[39] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1241,24 +1523,48 @@ if183_else:
local[12] = $t7
local[13] = $t8
$a0 = $s6
- $a1 = $t7
- $a2 = $t5
- call $t6
+ $t0 = local[38]
+ $a1 = $t0
+ local[38] = $t0
+ $t0 = local[47]
+ $a2 = $t0
+ local[47] = $t0
+ $t0 = local[39]
+ $t1 = local[39]
+ call $t1
+ local[39] = $t1
+ local[39] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s0 = $v0
- $t6 = $s0
+ $t0 = local[37]
+ $t0 = $v0
+ local[37] = $t0
+ $t0 = local[53]
+ $t1 = local[37]
+ $t0 = $t1
+ local[37] = $t1
+ local[53] = $t0
if183_end:
goto :if182_end
if182_else:
- $s0 = [$s6+0]
- $t5 = $s4
- $t7 = $s5
- $s0 = [$s0+56]
+ $t0 = local[51]
+ $t0 = [$s6+0]
+ local[51] = $t0
+ $t0 = local[49]
+ $t0 = $s4
+ local[49] = $t0
+ $t0 = local[42]
+ $t0 = $s5
+ local[42] = $t0
+ $t0 = local[51]
+ $t1 = local[51]
+ $t0 = [$t1+56]
+ local[51] = $t1
+ local[51] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1266,27 +1572,45 @@ if182_else:
local[12] = $t7
local[13] = $t8
$a0 = $s6
- $a1 = $t5
- $a2 = $t7
- call $s0
+ $t0 = local[49]
+ $a1 = $t0
+ local[49] = $t0
+ $t0 = local[42]
+ $a2 = $t0
+ local[42] = $t0
+ $t0 = local[51]
+ $t1 = local[51]
+ call $t1
+ local[51] = $t1
+ local[51] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $t6 = $v0
- $t6 = $t6
+ $t0 = local[46]
+ $t0 = $v0
+ local[46] = $t0
+ $t0 = local[53]
+ $t1 = local[46]
+ $t0 = $t1
+ local[46] = $t1
+ local[53] = $t0
if182_end:
- $s2 = 1
+ $t0 = local[14]
+ $t0 = 1
+ local[14] = $t0
$s3 = 0
if171_end:
if160_end:
$s1 = 0
goto :while155_test
while155_end:
- $s1 = $s2
- $v0 = $s1
+ $t0 = local[14]
+ $t4 = $t0
+ local[14] = $t0
+ $v0 = $t4
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -1354,8 +1678,8 @@ if206_body:
goto :if206_end
if206_else:
$s7 = $s7
- $s2 = [$s7+0]
- $s1 = [$s2+28]
+ $s1 = [$s7+0]
+ $s4 = [$s1+28]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1363,21 +1687,21 @@ if206_else:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s1
+ call $s4
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s2 = $v0
- $s1 = $s2
- if0 $s1 goto :if214_else
+ $s1 = $v0
+ $s4 = $s1
+ if0 $s4 goto :if214_else
if214_body:
- $s1 = [$s5+0]
- $s2 = $s6
- $s4 = $s7
- $s1 = [$s1+60]
+ $s4 = [$s5+0]
+ $s1 = $s6
+ $s3 = $s7
+ $s4 = [$s4+60]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1385,22 +1709,22 @@ if214_body:
local[12] = $t7
local[13] = $t8
$a0 = $s5
- $a1 = $s2
- $a2 = $s4
- call $s1
+ $a1 = $s1
+ $a2 = $s3
+ call $s4
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s3 = $v0
- $s2 = $s3
+ $s0 = $v0
+ $s2 = $s0
goto :if214_end
if214_else:
$s7 = $s7
- $s3 = [$s7+0]
- $s4 = [$s3+20]
+ $s0 = [$s7+0]
+ $s3 = [$s0+20]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1408,18 +1732,18 @@ if214_else:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s4
+ call $s3
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s3 = $v0
- $s4 = $s3
+ $s0 = $v0
+ $s3 = $s0
$s6 = $s6
- $s3 = [$s6+0]
- $s7 = [$s3+16]
+ $s0 = [$s6+0]
+ $s7 = [$s0+16]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1434,10 +1758,10 @@ if214_else:
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s3 = $v0
- $s7 = $s3
- $s3 = [$s7+0]
- $s2 = [$s3+20]
+ $s0 = $v0
+ $s7 = $s0
+ $s0 = [$s7+0]
+ $s1 = [$s0+20]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1445,19 +1769,19 @@ if214_else:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s2
+ call $s1
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s3 = $v0
- $s2 = $s3
- $s3 = [$s5+0]
- $s7 = $s4
- $s4 = $s2
- $s3 = [$s3+44]
+ $s0 = $v0
+ $s1 = $s0
+ $s0 = [$s5+0]
+ $s7 = $s3
+ $s3 = $s1
+ $s0 = [$s0+44]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1466,22 +1790,22 @@ if214_else:
local[13] = $t8
$a0 = $s5
$a1 = $s7
- $a2 = $s4
- call $s3
+ $a2 = $s3
+ call $s0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s2 = $v0
- $s4 = $s2
- if0 $s4 goto :if232_else
+ $s1 = $v0
+ $s3 = $s1
+ if0 $s3 goto :if232_else
if232_body:
$s6 = $s6
- $s4 = [$s6+0]
- $s2 = [$s4+8]
- $s4 = [$s5+100]
+ $s3 = [$s6+0]
+ $s1 = [$s3+8]
+ $s3 = [$s5+100]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1489,8 +1813,8 @@ if232_body:
local[12] = $t7
local[13] = $t8
$a0 = $s6
- $a1 = $s4
- call $s2
+ $a1 = $s3
+ call $s1
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
@@ -1501,7 +1825,7 @@ if232_body:
$s2 = $s7
$s6 = $s6
$s7 = [$s6+0]
- $s4 = [$s7+36]
+ $s3 = [$s7+36]
$s7 = 0
local[8] = $t3
local[9] = $t4
@@ -1511,21 +1835,21 @@ if232_body:
local[13] = $t8
$a0 = $s6
$a1 = $s7
- call $s4
+ call $s3
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s2 = $v0
- $s2 = $s2
+ $s1 = $v0
+ $s2 = $s1
goto :if232_end
if232_else:
$s6 = $s6
- $s2 = [$s6+0]
- $s7 = [$s2+4]
- $s2 = [$s5+100]
+ $s1 = [$s6+0]
+ $s7 = [$s1+4]
+ $s1 = [$s5+100]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1533,7 +1857,7 @@ if232_else:
local[12] = $t7
local[13] = $t8
$a0 = $s6
- $a1 = $s2
+ $a1 = $s1
call $s7
$t3 = local[8]
$t4 = local[9]
@@ -1545,7 +1869,7 @@ if232_else:
$s2 = $s5
$s6 = $s6
$s5 = [$s6+0]
- $s2 = [$s5+40]
+ $s1 = [$s5+40]
$s5 = 0
local[8] = $t3
local[9] = $t4
@@ -1555,7 +1879,7 @@ if232_else:
local[13] = $t8
$a0 = $s6
$a1 = $s5
- call $s2
+ call $s1
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
@@ -1578,7 +1902,7 @@ if206_end:
$s6 = local[6]
$s7 = local[7]
ret
-func Tree_RemoveRight [in 0, out 0, local 14]
+func Tree_RemoveRight [in 0, out 0, local 23]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -1587,13 +1911,15 @@ func Tree_RemoveRight [in 0, out 0, local 14]
local[5] = $s5
local[6] = $s6
local[7] = $s7
- $s5 = $a0
- $s6 = $a1
+ local[15] = $a0
+ local[14] = $a1
$s7 = $a2
while254_test:
$s7 = $s7
- $s4 = [$s7+0]
- $s3 = [$s4+28]
+ $s5 = [$s7+0]
+ $t0 = local[18]
+ $t0 = [$s5+28]
+ local[18] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1601,23 +1927,41 @@ while254_test:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s3
+ $t0 = local[18]
+ $t1 = local[18]
+ call $t1
+ local[18] = $t1
+ local[18] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s4 = $v0
- $s3 = $s4
- if0 $s3 goto :while254_end
+ $t0 = local[16]
+ $t0 = $v0
+ local[16] = $t0
+ $t0 = local[17]
+ $t1 = local[16]
+ $t0 = $t1
+ local[16] = $t1
+ local[17] = $t0
+ $t0 = local[17]
+ if0 $t0 goto :while254_end
+ local[17] = $t0
while254_body:
$s7 = $s7
- $s3 = [$s7+0]
- $s4 = [$s3+24]
+ $t0 = local[22]
+ $t0 = [$s7+0]
+ local[22] = $t0
+ $t0 = local[21]
+ $t1 = local[22]
+ $t0 = [$t1+24]
+ local[22] = $t1
+ local[21] = $t0
$s7 = $s7
- $s3 = [$s7+0]
- $s2 = [$s3+12]
+ $t6 = [$s7+0]
+ $s3 = [$t6+12]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1625,33 +1969,33 @@ while254_body:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s2
+ call $s3
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s3 = $v0
- $s2 = $s3
- $s3 = [$s2+0]
- $s1 = [$s3+20]
+ $t5 = $v0
+ $s4 = $t5
+ $s1 = [$s4+0]
+ $s2 = [$s1+20]
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s2
- call $s1
+ $a0 = $s4
+ call $s2
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s3 = $v0
- $s1 = $s3
+ $s0 = $v0
+ $t3 = $s0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1659,20 +2003,32 @@ while254_body:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- $a1 = $s1
- call $s4
+ $a1 = $t3
+ $t0 = local[21]
+ $t1 = local[21]
+ call $t1
+ local[21] = $t1
+ local[21] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s3 = $v0
- $s1 = $s3
- $s6 = $s7
+ $t0 = local[19]
+ $t0 = $v0
+ local[19] = $t0
+ $t0 = local[20]
+ $t1 = local[19]
+ $t0 = $t1
+ local[19] = $t1
+ local[20] = $t0
+ $t0 = local[14]
+ $t0 = $s7
+ local[14] = $t0
$s7 = $s7
- $s1 = [$s7+0]
- $s3 = [$s1+12]
+ $s6 = [$s7+0]
+ $t7 = [$s6+12]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1680,61 +2036,83 @@ while254_body:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s3
+ call $t7
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s1 = $v0
- $s7 = $s1
+ $t4 = $v0
+ $s7 = $t4
goto :while254_test
while254_end:
- $s6 = $s6
- $s7 = [$s6+0]
- $s1 = [$s7+4]
- $s7 = [$s5+100]
+ $t0 = local[14]
+ $t1 = local[14]
+ $t0 = $t1
+ local[14] = $t1
+ local[14] = $t0
+ $t0 = local[14]
+ $s5 = [$t0+0]
+ local[14] = $t0
+ $s6 = [$s5+4]
+ $t0 = local[15]
+ $s5 = [$t0+100]
+ local[15] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s6
- $a1 = $s7
- call $s1
+ $t0 = local[14]
+ $a0 = $t0
+ local[14] = $t0
+ $a1 = $s5
+ call $s6
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s5 = $v0
- $s1 = $s5
- $s6 = $s6
- $s5 = [$s6+0]
- $s7 = [$s5+40]
- $s5 = 0
+ $t3 = $v0
+ $t0 = local[20]
+ $t0 = $t3
+ local[20] = $t0
+ $t0 = local[14]
+ $t1 = local[14]
+ $t0 = $t1
+ local[14] = $t1
+ local[14] = $t0
+ $t0 = local[14]
+ $t3 = [$t0+0]
+ local[14] = $t0
+ $s5 = [$t3+40]
+ $t3 = 0
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[14]
+ $a0 = $t0
+ local[14] = $t0
+ $a1 = $t3
+ call $s5
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s1 = $v0
- $s1 = $s1
- $s1 = 1
- $v0 = $s1
+ $s6 = $v0
+ $t0 = local[20]
+ $t0 = $s6
+ local[20] = $t0
+ $s6 = 1
+ $v0 = $s6
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -1744,7 +2122,7 @@ while254_end:
$s6 = local[6]
$s7 = local[7]
ret
-func Tree_RemoveLeft [in 0, out 0, local 14]
+func Tree_RemoveLeft [in 0, out 0, local 23]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -1753,13 +2131,15 @@ func Tree_RemoveLeft [in 0, out 0, local 14]
local[5] = $s5
local[6] = $s6
local[7] = $s7
- $s5 = $a0
- $s6 = $a1
+ local[15] = $a0
+ local[14] = $a1
$s7 = $a2
while282_test:
$s7 = $s7
- $s4 = [$s7+0]
- $s3 = [$s4+32]
+ $s5 = [$s7+0]
+ $t0 = local[18]
+ $t0 = [$s5+32]
+ local[18] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1767,23 +2147,41 @@ while282_test:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s3
+ $t0 = local[18]
+ $t1 = local[18]
+ call $t1
+ local[18] = $t1
+ local[18] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s4 = $v0
- $s3 = $s4
- if0 $s3 goto :while282_end
+ $t0 = local[16]
+ $t0 = $v0
+ local[16] = $t0
+ $t0 = local[17]
+ $t1 = local[16]
+ $t0 = $t1
+ local[16] = $t1
+ local[17] = $t0
+ $t0 = local[17]
+ if0 $t0 goto :while282_end
+ local[17] = $t0
while282_body:
$s7 = $s7
- $s3 = [$s7+0]
- $s4 = [$s3+24]
+ $t0 = local[22]
+ $t0 = [$s7+0]
+ local[22] = $t0
+ $t0 = local[21]
+ $t1 = local[22]
+ $t0 = [$t1+24]
+ local[22] = $t1
+ local[21] = $t0
$s7 = $s7
- $s3 = [$s7+0]
- $s2 = [$s3+16]
+ $t6 = [$s7+0]
+ $s3 = [$t6+16]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1791,33 +2189,33 @@ while282_body:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s2
+ call $s3
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s3 = $v0
- $s2 = $s3
- $s3 = [$s2+0]
- $s1 = [$s3+20]
+ $t5 = $v0
+ $s4 = $t5
+ $s1 = [$s4+0]
+ $s2 = [$s1+20]
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s2
- call $s1
+ $a0 = $s4
+ call $s2
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s3 = $v0
- $s1 = $s3
+ $s0 = $v0
+ $t3 = $s0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1825,20 +2223,32 @@ while282_body:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- $a1 = $s1
- call $s4
+ $a1 = $t3
+ $t0 = local[21]
+ $t1 = local[21]
+ call $t1
+ local[21] = $t1
+ local[21] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s3 = $v0
- $s1 = $s3
- $s6 = $s7
+ $t0 = local[19]
+ $t0 = $v0
+ local[19] = $t0
+ $t0 = local[20]
+ $t1 = local[19]
+ $t0 = $t1
+ local[19] = $t1
+ local[20] = $t0
+ $t0 = local[14]
+ $t0 = $s7
+ local[14] = $t0
$s7 = $s7
- $s1 = [$s7+0]
- $s3 = [$s1+16]
+ $s6 = [$s7+0]
+ $t7 = [$s6+16]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1846,61 +2256,83 @@ while282_body:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s3
+ call $t7
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s1 = $v0
- $s7 = $s1
+ $t4 = $v0
+ $s7 = $t4
goto :while282_test
while282_end:
- $s6 = $s6
- $s7 = [$s6+0]
- $s1 = [$s7+8]
- $s7 = [$s5+100]
+ $t0 = local[14]
+ $t1 = local[14]
+ $t0 = $t1
+ local[14] = $t1
+ local[14] = $t0
+ $t0 = local[14]
+ $s5 = [$t0+0]
+ local[14] = $t0
+ $s6 = [$s5+8]
+ $t0 = local[15]
+ $s5 = [$t0+100]
+ local[15] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s6
- $a1 = $s7
- call $s1
+ $t0 = local[14]
+ $a0 = $t0
+ local[14] = $t0
+ $a1 = $s5
+ call $s6
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s5 = $v0
- $s1 = $s5
- $s6 = $s6
- $s5 = [$s6+0]
- $s7 = [$s5+36]
- $s5 = 0
+ $t3 = $v0
+ $t0 = local[20]
+ $t0 = $t3
+ local[20] = $t0
+ $t0 = local[14]
+ $t1 = local[14]
+ $t0 = $t1
+ local[14] = $t1
+ local[14] = $t0
+ $t0 = local[14]
+ $t3 = [$t0+0]
+ local[14] = $t0
+ $s5 = [$t3+36]
+ $t3 = 0
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[14]
+ $a0 = $t0
+ local[14] = $t0
+ $a1 = $t3
+ call $s5
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s1 = $v0
- $s1 = $s1
- $s1 = 1
- $v0 = $s1
+ $s6 = $v0
+ $t0 = local[20]
+ $t0 = $s6
+ local[20] = $t0
+ $s6 = 1
+ $v0 = $s6
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -1910,7 +2342,7 @@ while282_end:
$s6 = local[6]
$s7 = local[7]
ret
-func Tree_Search [in 0, out 0, local 14]
+func Tree_Search [in 0, out 0, local 27]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -1923,14 +2355,22 @@ func Tree_Search [in 0, out 0, local 14]
$s7 = $a1
$s5 = $s6
$s6 = 1
- $s4 = 0
+ $t0 = local[14]
+ $t0 = 0
+ local[14] = $t0
while310_test:
$s3 = $s6
if0 $s3 goto :while310_end
while310_body:
$s5 = $s5
- $s3 = [$s5+0]
- $s2 = [$s3+20]
+ $t0 = local[24]
+ $t0 = [$s5+0]
+ local[24] = $t0
+ $t0 = local[23]
+ $t1 = local[24]
+ $t0 = [$t1+20]
+ local[24] = $t1
+ local[23] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1938,24 +2378,58 @@ while310_body:
local[12] = $t7
local[13] = $t8
$a0 = $s5
- call $s2
- $t3 = local[8]
- $t4 = local[9]
- $t5 = local[10]
- $t6 = local[11]
- $t7 = local[12]
- $t8 = local[13]
- $s3 = $v0
- $s2 = $s3
- $s3 = $s7
- $s1 = $s2
- $s0 = LtS($s3 $s1 )
- $s1 = $s0
- if0 $s1 goto :if315_else
+ $t0 = local[23]
+ $t1 = local[23]
+ call $t1
+ local[23] = $t1
+ local[23] = $t0
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
+ $t0 = local[21]
+ $t0 = $v0
+ local[21] = $t0
+ $t0 = local[22]
+ $t1 = local[21]
+ $t0 = $t1
+ local[21] = $t1
+ local[22] = $t0
+ $t0 = local[20]
+ $t0 = $s7
+ local[20] = $t0
+ $t0 = local[19]
+ $t1 = local[22]
+ $t0 = $t1
+ local[22] = $t1
+ local[19] = $t0
+ $t0 = local[18]
+ $t1 = local[20]
+ $t2 = local[19]
+ $t0 = LtS($t1 $t2 )
+ local[19] = $t2
+ local[20] = $t1
+ local[18] = $t0
+ $t0 = local[15]
+ $t1 = local[18]
+ $t0 = $t1
+ local[18] = $t1
+ local[15] = $t0
+ $t0 = local[15]
+ if0 $t0 goto :if315_else
+ local[15] = $t0
if315_body:
$s5 = $s5
- $s1 = [$s5+0]
- $s0 = [$s1+32]
+ $t0 = local[17]
+ $t0 = [$s5+0]
+ local[17] = $t0
+ $t0 = local[16]
+ $t1 = local[17]
+ $t0 = [$t1+32]
+ local[17] = $t1
+ local[16] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1963,20 +2437,32 @@ if315_body:
local[12] = $t7
local[13] = $t8
$a0 = $s5
- call $s0
+ $t0 = local[16]
+ $t1 = local[16]
+ call $t1
+ local[16] = $t1
+ local[16] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s1 = $v0
- $s0 = $s1
- if0 $s0 goto :if319_else
+ $t0 = local[25]
+ $t0 = $v0
+ local[25] = $t0
+ $t0 = local[25]
+ $t4 = $t0
+ local[25] = $t0
+ if0 $t4 goto :if319_else
if319_body:
$s5 = $s5
- $s0 = [$s5+0]
- $s1 = [$s0+16]
+ $t0 = local[26]
+ $t0 = [$s5+0]
+ local[26] = $t0
+ $t0 = local[26]
+ $s0 = [$t0+16]
+ local[26] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1984,30 +2470,32 @@ if319_body:
local[12] = $t7
local[13] = $t8
$a0 = $s5
- call $s1
+ call $s0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s0 = $v0
- $s5 = $s0
+ $t5 = $v0
+ $s5 = $t5
goto :if319_end
if319_else:
$s6 = 0
if319_end:
goto :if315_end
if315_else:
- $s0 = $s2
- $s2 = $s7
- $s1 = LtS($s0 $s2 )
+ $t0 = local[22]
+ $t6 = $t0
+ local[22] = $t0
+ $t7 = $s7
+ $s1 = LtS($t6 $t7 )
$s2 = $s1
if0 $s2 goto :if326_else
if326_body:
$s5 = $s5
- $s2 = [$s5+0]
- $s1 = [$s2+28]
+ $s4 = [$s5+0]
+ $t3 = [$s4+28]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -2015,20 +2503,20 @@ if326_body:
local[12] = $t7
local[13] = $t8
$a0 = $s5
- call $s1
+ call $t3
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s2 = $v0
- $s1 = $s2
- if0 $s1 goto :if330_else
+ $s4 = $v0
+ $t3 = $s4
+ if0 $t3 goto :if330_else
if330_body:
$s5 = $s5
- $s1 = [$s5+0]
- $s2 = [$s1+12]
+ $t3 = [$s5+0]
+ $s4 = [$t3+12]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -2036,29 +2524,33 @@ if330_body:
local[12] = $t7
local[13] = $t8
$a0 = $s5
- call $s2
+ call $s4
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s1 = $v0
- $s5 = $s1
+ $t3 = $v0
+ $s5 = $t3
goto :if330_end
if330_else:
$s6 = 0
if330_end:
goto :if326_end
if326_else:
- $s4 = 1
+ $t0 = local[14]
+ $t0 = 1
+ local[14] = $t0
$s6 = 0
if326_end:
if315_end:
goto :while310_test
while310_end:
- $s6 = $s4
- $v0 = $s6
+ $t0 = local[14]
+ $t4 = $t0
+ local[14] = $t0
+ $v0 = $t4
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -2185,8 +2677,8 @@ if342_else:
$s3 = 1
if342_end:
$s7 = $s7
- $s3 = [$s7+0]
- $s5 = [$s3+20]
+ $s5 = [$s7+0]
+ $s4 = [$s5+20]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -2194,19 +2686,19 @@ if342_end:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s5
+ call $s4
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s3 = $v0
- $s5 = $s3
- PrintIntS($s5 )
+ $s5 = $v0
+ $s4 = $s5
+ PrintIntS($s4 )
$s7 = $s7
- $s5 = [$s7+0]
- $s3 = [$s5+28]
+ $s4 = [$s7+0]
+ $s5 = [$s4+28]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -2214,21 +2706,21 @@ if342_end:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s3
+ call $s5
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s5 = $v0
- $s3 = $s5
- if0 $s3 goto :if356_else
+ $s4 = $v0
+ $s5 = $s4
+ if0 $s5 goto :if356_else
if356_body:
- $s3 = [$s6+0]
+ $s5 = [$s6+0]
$s7 = $s7
- $s5 = [$s7+0]
- $s4 = [$s5+12]
+ $s4 = [$s7+0]
+ $s2 = [$s4+12]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -2236,16 +2728,16 @@ if356_body:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s4
+ call $s2
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s5 = $v0
- $s4 = $s5
- $s3 = [$s3+76]
+ $s4 = $v0
+ $s2 = $s4
+ $s5 = [$s5+76]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -2253,22 +2745,22 @@ if356_body:
local[12] = $t7
local[13] = $t8
$a0 = $s6
- $a1 = $s4
- call $s3
+ $a1 = $s2
+ call $s5
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s5 = $v0
- $s3 = $s5
+ $s4 = $v0
+ $s3 = $s4
goto :if356_end
if356_else:
$s3 = 1
if356_end:
- $s5 = 1
- $v0 = $s5
+ $s3 = 1
+ $v0 = $s3
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
diff --git a/output/BubbleSort.vaporm b/output/BubbleSort.vaporm
index 0e223d0..4163f39 100644
--- a/output/BubbleSort.vaporm
+++ b/output/BubbleSort.vaporm
@@ -76,8 +76,8 @@ func BBS_Start [in 0, out 0, local 14]
$t8 = local[13]
$s7 = $v0
$s4 = $s7
- $s4 = [$s6+0]
- $s4 = [$s4+8]
+ $s7 = [$s6+0]
+ $s7 = [$s7+8]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -85,19 +85,19 @@ func BBS_Start [in 0, out 0, local 14]
local[12] = $t7
local[13] = $t8
$a0 = $s6
- call $s4
+ call $s7
$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]
+ $s5 = $v0
+ $s4 = $s5
+ $s5 = 99999
+ PrintIntS($s5 )
+ $s5 = [$s6+0]
+ $s5 = [$s5+4]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -105,17 +105,17 @@ func BBS_Start [in 0, out 0, local 14]
local[12] = $t7
local[13] = $t8
$a0 = $s6
- call $s7
+ call $s5
$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]
+ $s7 = $v0
+ $s4 = $s7
+ $s7 = [$s6+0]
+ $s7 = [$s7+8]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -123,17 +123,17 @@ func BBS_Start [in 0, out 0, local 14]
local[12] = $t7
local[13] = $t8
$a0 = $s6
- call $s4
+ call $s7
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s7 = $v0
- $s4 = $s7
- $s7 = 0
- $v0 = $s7
+ $s5 = $v0
+ $s4 = $s5
+ $s5 = 0
+ $v0 = $s5
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -143,7 +143,7 @@ func BBS_Start [in 0, out 0, local 14]
$s6 = local[6]
$s7 = local[7]
ret
-func BBS_Sort [in 0, out 0, local 14]
+func BBS_Sort [in 0, out 0, local 54]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -152,98 +152,310 @@ func BBS_Sort [in 0, out 0, local 14]
local[5] = $s5
local[6] = $s6
local[7] = $s7
- $s7 = $a0
- $s6 = [$s7+20]
+ local[31] = $a0
+ $t0 = local[31]
+ $s6 = [$t0+20]
+ local[31] = $t0
$s5 = 1
$s4 = Sub($s6 $s5 )
- $s5 = $s4
+ $t0 = local[30]
+ $t0 = $s4
+ local[30] = $t0
$s4 = 0
$s6 = 1
$s3 = Sub($s4 $s6 )
- $s6 = $s3
+ $t0 = local[29]
+ $t0 = $s3
+ local[29] = $t0
while23_test:
- $s3 = $s6
- $s4 = $s5
- $s2 = LtS($s3 $s4 )
- $s4 = $s2
- if0 $s4 goto :while23_end
+ $t0 = local[28]
+ $t1 = local[29]
+ $t0 = $t1
+ local[29] = $t1
+ local[28] = $t0
+ $t0 = local[22]
+ $t1 = local[30]
+ $t0 = $t1
+ local[30] = $t1
+ local[22] = $t0
+ $t0 = local[18]
+ $t1 = local[28]
+ $t2 = local[22]
+ $t0 = LtS($t1 $t2 )
+ local[22] = $t2
+ local[28] = $t1
+ local[18] = $t0
+ $t0 = local[14]
+ $t1 = local[18]
+ $t0 = $t1
+ local[18] = $t1
+ local[14] = $t0
+ $t0 = local[14]
+ if0 $t0 goto :while23_end
+ local[14] = $t0
while23_body:
- $s4 = 1
+ $t0 = local[20]
+ $t0 = 1
+ local[20] = $t0
while28_test:
- $s2 = $s4
- $s3 = $s5
- $s1 = 1
- $s0 = Add($s3 $s1 )
- $s1 = $s0
- $s0 = LtS($s2 $s1 )
- $s1 = $s0
- if0 $s1 goto :while28_end
+ $t0 = local[27]
+ $t1 = local[20]
+ $t0 = $t1
+ local[20] = $t1
+ local[27] = $t0
+ $t0 = local[24]
+ $t1 = local[30]
+ $t0 = $t1
+ local[30] = $t1
+ local[24] = $t0
+ $t0 = local[16]
+ $t0 = 1
+ local[16] = $t0
+ $t0 = local[23]
+ $t1 = local[24]
+ $t2 = local[16]
+ $t0 = Add($t1 $t2 )
+ local[16] = $t2
+ local[24] = $t1
+ local[23] = $t0
+ $t0 = local[15]
+ $t1 = local[23]
+ $t0 = $t1
+ local[23] = $t1
+ local[15] = $t0
+ $t0 = local[25]
+ $t1 = local[27]
+ $t2 = local[15]
+ $t0 = LtS($t1 $t2 )
+ local[15] = $t2
+ local[27] = $t1
+ local[25] = $t0
+ $t0 = local[17]
+ $t1 = local[25]
+ $t0 = $t1
+ local[25] = $t1
+ local[17] = $t0
+ $t0 = local[17]
+ if0 $t0 goto :while28_end
+ local[17] = $t0
while28_body:
- $s1 = $s4
- $s0 = 1
- $s2 = Sub($s1 $s0 )
- $s0 = $s2
- $s2 = [$s7+16]
- $s1 = MulS($s0 4 )
- $s1 = Add($s1 4 )
- $s1 = Add($s2 $s1 )
- $s2 = [$s1+0]
- $s1 = $s2
- $s2 = [$s7+16]
- $s0 = MulS($s4 4 )
- $s0 = Add($s0 4 )
- $s0 = Add($s2 $s0 )
- $s2 = [$s0+0]
- $s0 = $s2
- $s2 = $s0
- $s0 = $s1
- $s1 = LtS($s2 $s0 )
- $s0 = $s1
- if0 $s0 goto :if45_else
+ $t0 = local[48]
+ $t1 = local[20]
+ $t0 = $t1
+ local[20] = $t1
+ local[48] = $t0
+ $t0 = local[47]
+ $t0 = 1
+ local[47] = $t0
+ $t0 = local[45]
+ $t1 = local[48]
+ $t2 = local[47]
+ $t0 = Sub($t1 $t2 )
+ local[47] = $t2
+ local[48] = $t1
+ local[45] = $t0
+ $t0 = local[46]
+ $t1 = local[45]
+ $t0 = $t1
+ local[45] = $t1
+ local[46] = $t0
+ $t0 = local[44]
+ $t1 = local[31]
+ $t0 = [$t1+16]
+ local[31] = $t1
+ local[44] = $t0
+ $t0 = local[43]
+ $t1 = local[46]
+ $t0 = MulS($t1 4 )
+ local[46] = $t1
+ local[43] = $t0
+ $t0 = local[43]
+ $t1 = local[43]
+ $t0 = Add($t1 4 )
+ local[43] = $t1
+ local[43] = $t0
+ $t0 = local[43]
+ $t1 = local[44]
+ $t2 = local[43]
+ $t0 = Add($t1 $t2 )
+ local[43] = $t2
+ local[44] = $t1
+ local[43] = $t0
+ $t0 = local[41]
+ $t1 = local[43]
+ $t0 = [$t1+0]
+ local[43] = $t1
+ local[41] = $t0
+ $t0 = local[42]
+ $t1 = local[41]
+ $t0 = $t1
+ local[41] = $t1
+ local[42] = $t0
+ $t0 = local[31]
+ $s5 = [$t0+16]
+ local[31] = $t0
+ $t0 = local[36]
+ $t1 = local[20]
+ $t0 = MulS($t1 4 )
+ local[20] = $t1
+ local[36] = $t0
+ $t0 = local[36]
+ $t1 = local[36]
+ $t0 = Add($t1 4 )
+ local[36] = $t1
+ local[36] = $t0
+ $t0 = local[36]
+ $t1 = local[36]
+ $t0 = Add($s5 $t1 )
+ local[36] = $t1
+ local[36] = $t0
+ $t0 = local[39]
+ $t1 = local[36]
+ $t0 = [$t1+0]
+ local[36] = $t1
+ local[39] = $t0
+ $t0 = local[40]
+ $t1 = local[39]
+ $t0 = $t1
+ local[39] = $t1
+ local[40] = $t0
+ $t0 = local[38]
+ $t1 = local[40]
+ $t0 = $t1
+ local[40] = $t1
+ local[38] = $t0
+ $t0 = local[37]
+ $t1 = local[42]
+ $t0 = $t1
+ local[42] = $t1
+ local[37] = $t0
+ $t0 = local[35]
+ $t1 = local[38]
+ $t2 = local[37]
+ $t0 = LtS($t1 $t2 )
+ local[37] = $t2
+ local[38] = $t1
+ local[35] = $t0
+ $t0 = local[32]
+ $t1 = local[35]
+ $t0 = $t1
+ local[35] = $t1
+ local[32] = $t0
+ $t0 = local[32]
+ if0 $t0 goto :if45_else
+ local[32] = $t0
if45_body:
- $s0 = $s4
- $s1 = 1
- $s2 = Sub($s0 $s1 )
- $s1 = $s2
- $s2 = [$s7+16]
- $s0 = MulS($s1 4 )
- $s0 = Add($s0 4 )
- $s0 = Add($s2 $s0 )
- $s2 = [$s0+0]
- $s0 = $s2
- $s2 = [$s7+16]
- $s3 = MulS($s1 4 )
- $s3 = Add($s3 4 )
- $s3 = Add($s2 $s3 )
- $s2 = [$s7+16]
- $s1 = MulS($s4 4 )
+ $t0 = local[33]
+ $t1 = local[20]
+ $t0 = $t1
+ local[20] = $t1
+ local[33] = $t0
+ $s6 = 1
+ $t0 = local[34]
+ $t1 = local[33]
+ $t0 = Sub($t1 $s6 )
+ local[33] = $t1
+ local[34] = $t0
+ $t0 = local[34]
+ $s7 = $t0
+ local[34] = $t0
+ $t0 = local[31]
+ $s2 = [$t0+16]
+ local[31] = $t0
+ $s1 = MulS($s7 4 )
$s1 = Add($s1 4 )
$s1 = Add($s2 $s1 )
- $s2 = [$s1+0]
- [$s3+0] = $s2
- $s2 = [$s7+16]
- $s3 = MulS($s4 4 )
- $s3 = Add($s3 4 )
- $s3 = Add($s2 $s3 )
- [$s3+0] = $s0
+ $t3 = [$s1+0]
+ $t4 = $t3
+ $t0 = local[31]
+ $s3 = [$t0+16]
+ local[31] = $t0
+ $s4 = MulS($s7 4 )
+ $s4 = Add($s4 4 )
+ $s4 = Add($s3 $s4 )
+ $t0 = local[31]
+ $t5 = [$t0+16]
+ local[31] = $t0
+ $t0 = local[20]
+ $s0 = MulS($t0 4 )
+ local[20] = $t0
+ $s0 = Add($s0 4 )
+ $s0 = Add($t5 $s0 )
+ $t6 = [$s0+0]
+ [$s4+0] = $t6
+ $t0 = local[31]
+ $t7 = [$t0+16]
+ local[31] = $t0
+ $t0 = local[49]
+ $t1 = local[20]
+ $t0 = MulS($t1 4 )
+ local[20] = $t1
+ local[49] = $t0
+ $t0 = local[49]
+ $t1 = local[49]
+ $t0 = Add($t1 4 )
+ local[49] = $t1
+ local[49] = $t0
+ $t0 = local[49]
+ $t1 = local[49]
+ $t0 = Add($t7 $t1 )
+ local[49] = $t1
+ local[49] = $t0
+ $t0 = local[49]
+ [$t0+0] = $t4
+ local[49] = $t0
goto :if45_end
if45_else:
- $s3 = 0
+ $t0 = local[51]
+ $t0 = 0
+ local[51] = $t0
if45_end:
- $s3 = $s4
- $s0 = 1
- $s2 = Add($s3 $s0 )
- $s4 = $s2
+ $t0 = local[53]
+ $t1 = local[20]
+ $t0 = $t1
+ local[20] = $t1
+ local[53] = $t0
+ $t0 = local[52]
+ $t0 = 1
+ local[52] = $t0
+ $t0 = local[50]
+ $t1 = local[53]
+ $t2 = local[52]
+ $t0 = Add($t1 $t2 )
+ local[52] = $t2
+ local[53] = $t1
+ local[50] = $t0
+ $t0 = local[20]
+ $t1 = local[50]
+ $t0 = $t1
+ local[50] = $t1
+ local[20] = $t0
goto :while28_test
while28_end:
- $s4 = $s5
- $s2 = 1
- $s0 = Sub($s4 $s2 )
- $s5 = $s0
+ $t0 = local[21]
+ $t1 = local[30]
+ $t0 = $t1
+ local[30] = $t1
+ local[21] = $t0
+ $t0 = local[26]
+ $t0 = 1
+ local[26] = $t0
+ $t0 = local[19]
+ $t1 = local[21]
+ $t2 = local[26]
+ $t0 = Sub($t1 $t2 )
+ local[26] = $t2
+ local[21] = $t1
+ local[19] = $t0
+ $t0 = local[30]
+ $t1 = local[19]
+ $t0 = $t1
+ local[19] = $t1
+ local[30] = $t0
goto :while23_test
while23_end:
- $s6 = 0
- $v0 = $s6
+ $s7 = 0
+ $v0 = $s7
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -266,26 +478,26 @@ func BBS_Print [in 0, out 0, local 14]
$s7 = 0
while69_test:
$s5 = $s7
- $s4 = [$s6+20]
- $s3 = LtS($s5 $s4 )
- $s4 = $s3
- if0 $s4 goto :while69_end
+ $s1 = [$s6+20]
+ $s2 = LtS($s5 $s1 )
+ $t7 = $s2
+ if0 $t7 goto :while69_end
while69_body:
- $s4 = [$s6+16]
- $s3 = MulS($s7 4 )
- $s3 = Add($s3 4 )
- $s3 = Add($s4 $s3 )
- $s4 = [$s3+0]
- $s3 = $s4
- PrintIntS($s3 )
- $s3 = $s7
- $s4 = 1
- $s5 = Add($s3 $s4 )
- $s7 = $s5
+ $t5 = [$s6+16]
+ $t6 = MulS($s7 4 )
+ $t6 = Add($t6 4 )
+ $t6 = Add($t5 $t6 )
+ $s0 = [$t6+0]
+ $t3 = $s0
+ PrintIntS($t3 )
+ $s4 = $s7
+ $s3 = 1
+ $t4 = Add($s4 $s3 )
+ $s7 = $t4
goto :while69_test
while69_end:
- $s6 = 0
- $v0 = $s6
+ $t3 = 0
+ $v0 = $t3
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
diff --git a/output/LinearSearch.vaporm b/output/LinearSearch.vaporm
index f1b48cf..244e073 100644
--- a/output/LinearSearch.vaporm
+++ b/output/LinearSearch.vaporm
@@ -204,26 +204,26 @@ func LS_Print [in 0, out 0, local 14]
$s7 = 1
while29_test:
$s5 = $s7
- $s4 = [$s6+20]
- $s3 = LtS($s5 $s4 )
- $s4 = $s3
- if0 $s4 goto :while29_end
+ $s1 = [$s6+20]
+ $s2 = LtS($s5 $s1 )
+ $t7 = $s2
+ if0 $t7 goto :while29_end
while29_body:
- $s4 = [$s6+16]
- $s3 = MulS($s7 4 )
- $s3 = Add($s3 4 )
- $s3 = Add($s4 $s3 )
- $s4 = [$s3+0]
- $s3 = $s4
- PrintIntS($s3 )
- $s3 = $s7
- $s4 = 1
- $s5 = Add($s3 $s4 )
- $s7 = $s5
+ $t5 = [$s6+16]
+ $t6 = MulS($s7 4 )
+ $t6 = Add($t6 4 )
+ $t6 = Add($t5 $t6 )
+ $s0 = [$t6+0]
+ $t3 = $s0
+ PrintIntS($t3 )
+ $s4 = $s7
+ $s3 = 1
+ $t4 = Add($s4 $s3 )
+ $s7 = $t4
goto :while29_test
while29_end:
- $s6 = 0
- $v0 = $s6
+ $t3 = 0
+ $v0 = $t3
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -233,7 +233,7 @@ while29_end:
$s6 = local[6]
$s7 = local[7]
ret
-func LS_Search [in 0, out 0, local 14]
+func LS_Search [in 0, out 0, local 31]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -246,56 +246,136 @@ func LS_Search [in 0, out 0, local 14]
$s6 = $a1
$s7 = 1
$s4 = 0
- $s4 = 0
+ $t0 = local[14]
+ $t0 = 0
+ local[14] = $t0
while42_test:
- $s3 = $s7
- $s2 = [$s5+20]
- $s1 = LtS($s3 $s2 )
- $s2 = $s1
- if0 $s2 goto :while42_end
+ $s2 = $s7
+ $t0 = local[28]
+ $t0 = [$s5+20]
+ local[28] = $t0
+ $t0 = local[26]
+ $t1 = local[28]
+ $t0 = LtS($s2 $t1 )
+ local[28] = $t1
+ local[26] = $t0
+ $t0 = local[27]
+ $t1 = local[26]
+ $t0 = $t1
+ local[26] = $t1
+ local[27] = $t0
+ $t0 = local[27]
+ if0 $t0 goto :while42_end
+ local[27] = $t0
while42_body:
- $s2 = [$s5+16]
- $s1 = MulS($s7 4 )
- $s1 = Add($s1 4 )
- $s1 = Add($s2 $s1 )
- $s2 = [$s1+0]
- $s1 = $s2
- $s2 = $s6
- $s3 = 1
- $s0 = Add($s2 $s3 )
- $s3 = $s0
- $s0 = $s1
- $s2 = $s6
- $t7 = LtS($s0 $s2 )
- $s2 = $t7
- if0 $s2 goto :if53_else
+ $t0 = local[22]
+ $t0 = [$s5+16]
+ local[22] = $t0
+ $t0 = local[24]
+ $t0 = MulS($s7 4 )
+ local[24] = $t0
+ $t0 = local[24]
+ $t1 = local[24]
+ $t0 = Add($t1 4 )
+ local[24] = $t1
+ local[24] = $t0
+ $t0 = local[24]
+ $t1 = local[22]
+ $t2 = local[24]
+ $t0 = Add($t1 $t2 )
+ local[24] = $t2
+ local[22] = $t1
+ local[24] = $t0
+ $t0 = local[29]
+ $t1 = local[24]
+ $t0 = [$t1+0]
+ local[24] = $t1
+ local[29] = $t0
+ $t0 = local[30]
+ $t1 = local[29]
+ $t0 = $t1
+ local[29] = $t1
+ local[30] = $t0
+ $t0 = local[18]
+ $t0 = $s6
+ local[18] = $t0
+ $t0 = local[21]
+ $t0 = 1
+ local[21] = $t0
+ $t0 = local[19]
+ $t1 = local[18]
+ $t2 = local[21]
+ $t0 = Add($t1 $t2 )
+ local[21] = $t2
+ local[18] = $t1
+ local[19] = $t0
+ $t0 = local[23]
+ $t1 = local[19]
+ $t0 = $t1
+ local[19] = $t1
+ local[23] = $t0
+ $t0 = local[16]
+ $t1 = local[30]
+ $t0 = $t1
+ local[30] = $t1
+ local[16] = $t0
+ $t0 = local[15]
+ $t0 = $s6
+ local[15] = $t0
+ $t0 = local[20]
+ $t1 = local[16]
+ $t2 = local[15]
+ $t0 = LtS($t1 $t2 )
+ local[15] = $t2
+ local[16] = $t1
+ local[20] = $t0
+ $t0 = local[17]
+ $t1 = local[20]
+ $t0 = $t1
+ local[20] = $t1
+ local[17] = $t0
+ $t0 = local[17]
+ if0 $t0 goto :if53_else
+ local[17] = $t0
if53_body:
- $s2 = 0
+ $t4 = 0
goto :if53_end
if53_else:
- $s2 = $s1
- $s1 = $s3
- $s3 = LtS($s2 $s1 )
- $s1 = Eq($s3 0 )
- $s3 = $s1
- if0 $s3 goto :if57_else
+ $t0 = local[30]
+ $t3 = $t0
+ local[30] = $t0
+ $t0 = local[23]
+ $s0 = $t0
+ local[23] = $t0
+ $s3 = LtS($t3 $s0 )
+ $t5 = Eq($s3 0 )
+ $s1 = $t5
+ if0 $s1 goto :if57_else
if57_body:
- $s2 = 0
+ $t4 = 0
goto :if57_end
if57_else:
$s4 = 1
- $s4 = 1
+ $t0 = local[14]
+ $t0 = 1
+ local[14] = $t0
$s7 = [$s5+20]
if57_end:
if53_end:
- $s3 = $s7
- $s1 = 1
- $s2 = Add($s3 $s1 )
- $s7 = $s2
+ $t7 = $s7
+ $t0 = local[25]
+ $t0 = 1
+ local[25] = $t0
+ $t0 = local[25]
+ $t6 = Add($t7 $t0 )
+ local[25] = $t0
+ $s7 = $t6
goto :while42_test
while42_end:
- $s5 = $s4
- $v0 = $s5
+ $t0 = local[14]
+ $s3 = $t0
+ local[14] = $t0
+ $v0 = $s3
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -305,7 +385,7 @@ while42_end:
$s6 = local[6]
$s7 = local[7]
ret
-func LS_Init [in 0, out 0, local 14]
+func LS_Init [in 0, out 0, local 27]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -340,39 +420,91 @@ func LS_Init [in 0, out 0, local 14]
$s4 = $s3
while70_test:
$s3 = $s5
- $s7 = [$s6+20]
- $s2 = LtS($s3 $s7 )
- $s7 = $s2
- if0 $s7 goto :while70_end
+ $t0 = local[26]
+ $t0 = [$s6+20]
+ local[26] = $t0
+ $t0 = local[25]
+ $t1 = local[26]
+ $t0 = LtS($s3 $t1 )
+ local[26] = $t1
+ local[25] = $t0
+ $t0 = local[20]
+ $t1 = local[25]
+ $t0 = $t1
+ local[25] = $t1
+ local[20] = $t0
+ $t0 = local[20]
+ if0 $t0 goto :while70_end
+ local[20] = $t0
while70_body:
- $s7 = 2
- $s2 = $s5
- $s3 = MulS($s7 $s2 )
- $s2 = $s3
- $s3 = $s4
- $s7 = 3
- $s1 = Sub($s3 $s7 )
- $s7 = $s1
- $s1 = [$s6+16]
- $s3 = MulS($s5 4 )
- $s3 = Add($s3 4 )
- $s3 = Add($s1 $s3 )
- $s1 = $s2
- $s2 = $s7
- $s7 = Add($s1 $s2 )
- [$s3+0] = $s7
+ $t0 = local[17]
+ $t0 = 2
+ local[17] = $t0
+ $t0 = local[16]
+ $t0 = $s5
+ local[16] = $t0
+ $t0 = local[21]
+ $t1 = local[17]
+ $t2 = local[16]
+ $t0 = MulS($t1 $t2 )
+ local[16] = $t2
+ local[17] = $t1
+ local[21] = $t0
+ $t0 = local[22]
+ $t1 = local[21]
+ $t0 = $t1
+ local[21] = $t1
+ local[22] = $t0
+ $t0 = local[14]
+ $t0 = $s4
+ local[14] = $t0
+ $t3 = 3
+ $t0 = local[18]
+ $t1 = local[14]
+ $t0 = Sub($t1 $t3 )
+ local[14] = $t1
+ local[18] = $t0
+ $t0 = local[19]
+ $t1 = local[18]
+ $t0 = $t1
+ local[18] = $t1
+ local[19] = $t0
+ $t0 = local[15]
+ $t0 = [$s6+16]
+ local[15] = $t0
+ $t6 = MulS($s5 4 )
+ $t6 = Add($t6 4 )
+ $t0 = local[15]
+ $t6 = Add($t0 $t6 )
+ local[15] = $t0
+ $t0 = local[22]
+ $t4 = $t0
+ local[22] = $t0
+ $t0 = local[19]
+ $t5 = $t0
+ local[19] = $t0
+ $t7 = Add($t4 $t5 )
+ [$t6+0] = $t7
$s7 = $s5
- $s3 = 1
- $s2 = Add($s7 $s3 )
+ $s0 = 1
+ $s2 = Add($s7 $s0 )
$s5 = $s2
- $s2 = $s4
- $s3 = 1
- $s7 = Sub($s2 $s3 )
- $s4 = $s7
+ $t0 = local[24]
+ $t0 = $s4
+ local[24] = $t0
+ $t0 = local[23]
+ $t0 = 1
+ local[23] = $t0
+ $t0 = local[24]
+ $t1 = local[23]
+ $s1 = Sub($t0 $t1 )
+ local[23] = $t1
+ local[24] = $t0
+ $s4 = $s1
goto :while70_test
while70_end:
- $s4 = 0
- $v0 = $s4
+ $t3 = 0
+ $v0 = $t3
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
diff --git a/output/LinkedList.vaporm b/output/LinkedList.vaporm
index 742fe43..7a65181 100644
--- a/output/LinkedList.vaporm
+++ b/output/LinkedList.vaporm
@@ -287,8 +287,8 @@ if28_end:
goto :if27_end
if27_else:
$s6 = $s6
- $s4 = [$s6+0]
- $s5 = [$s4+12]
+ $s5 = [$s6+0]
+ $s3 = [$s5+12]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -296,16 +296,16 @@ if27_else:
local[12] = $t7
local[13] = $t8
$a0 = $s6
- call $s5
+ call $s3
$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
+ $s5 = $v0
+ $s3 = $s5
+ if0 $s3 goto :if33_else
if33_body:
$s7 = 0
goto :if33_end
@@ -315,8 +315,8 @@ if33_end:
if27_end:
if21_end:
if12_end:
- $s5 = $s7
- $v0 = $s5
+ $s4 = $s7
+ $v0 = $s4
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -499,7 +499,7 @@ func List_SetNext [in 0, out 0, local 14]
$s6 = local[6]
$s7 = local[7]
ret
-func List_Delete [in 0, out 0, local 14]
+func List_Delete [in 0, out 0, local 57]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -510,7 +510,9 @@ func List_Delete [in 0, out 0, local 14]
local[7] = $s7
$s6 = $a0
$s7 = $a1
- $s5 = $s6
+ $t0 = local[14]
+ $t0 = $s6
+ local[14] = $t0
$s4 = 0
$s3 = 0
$s2 = 1
@@ -522,19 +524,55 @@ func List_Delete [in 0, out 0, local 14]
$t7 = [$s6+40]
while65_test:
$s6 = Eq($s0 0 )
- $t6 = $s6
- $s6 = Eq($s4 0 )
- $t5 = $s6
- $s6 = Eq(1 $t6 )
- $t6 = Eq(1 $t5 )
- $t5 = Eq($s6 $t6 )
- $t6 = $t5
- if0 $t6 goto :while65_end
+ $t0 = local[52]
+ $t0 = $s6
+ local[52] = $t0
+ $t0 = local[50]
+ $t0 = Eq($s4 0 )
+ local[50] = $t0
+ $t0 = local[42]
+ $t1 = local[50]
+ $t0 = $t1
+ local[50] = $t1
+ local[42] = $t0
+ $t0 = local[41]
+ $t1 = local[52]
+ $t0 = Eq(1 $t1 )
+ local[52] = $t1
+ local[41] = $t0
+ $t0 = local[43]
+ $t1 = local[42]
+ $t0 = Eq(1 $t1 )
+ local[42] = $t1
+ local[43] = $t0
+ $t0 = local[49]
+ $t1 = local[41]
+ $t2 = local[43]
+ $t0 = Eq($t1 $t2 )
+ local[43] = $t2
+ local[41] = $t1
+ local[49] = $t0
+ $t0 = local[38]
+ $t1 = local[49]
+ $t0 = $t1
+ local[49] = $t1
+ local[38] = $t0
+ $t0 = local[38]
+ if0 $t0 goto :while65_end
+ local[38] = $t0
while65_body:
$s7 = $s7
- $t6 = [$s7+0]
- $t5 = [$t6+16]
- $t6 = $t7
+ $t0 = local[40]
+ $t0 = [$s7+0]
+ local[40] = $t0
+ $t0 = local[39]
+ $t1 = local[40]
+ $t0 = [$t1+16]
+ local[40] = $t1
+ local[39] = $t0
+ $t0 = local[34]
+ $t0 = $t7
+ local[34] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -542,28 +580,64 @@ while65_body:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- $a1 = $t6
- call $t5
+ $t0 = local[34]
+ $a1 = $t0
+ local[34] = $t0
+ $t0 = local[39]
+ $t1 = local[39]
+ call $t1
+ local[39] = $t1
+ local[39] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s6 = $v0
- $t6 = $s6
- if0 $t6 goto :if74_else
+ $t0 = local[37]
+ $t0 = $v0
+ local[37] = $t0
+ $t0 = local[33]
+ $t1 = local[37]
+ $t0 = $t1
+ local[37] = $t1
+ local[33] = $t0
+ $t0 = local[33]
+ if0 $t0 goto :if74_else
+ local[33] = $t0
if74_body:
$s4 = 1
- $t6 = $s2
- $s6 = 0
- $t5 = LtS($t6 $s6 )
- $s6 = $t5
- if0 $s6 goto :if79_else
+ $t0 = local[35]
+ $t0 = $s2
+ local[35] = $t0
+ $t0 = local[31]
+ $t0 = 0
+ local[31] = $t0
+ $t0 = local[36]
+ $t1 = local[35]
+ $t2 = local[31]
+ $t0 = LtS($t1 $t2 )
+ local[31] = $t2
+ local[35] = $t1
+ local[36] = $t0
+ $t0 = local[30]
+ $t1 = local[36]
+ $t0 = $t1
+ local[36] = $t1
+ local[30] = $t0
+ $t0 = local[30]
+ if0 $t0 goto :if79_else
+ local[30] = $t0
if79_body:
$s1 = $s1
- $s6 = [$s1+0]
- $t5 = [$s6+32]
+ $t0 = local[27]
+ $t0 = [$s1+0]
+ local[27] = $t0
+ $t0 = local[26]
+ $t1 = local[27]
+ $t0 = [$t1+32]
+ local[27] = $t1
+ local[26] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -571,28 +645,64 @@ if79_body:
local[12] = $t7
local[13] = $t8
$a0 = $s1
- call $t5
+ $t0 = local[26]
+ $t1 = local[26]
+ call $t1
+ local[26] = $t1
+ local[26] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s6 = $v0
- $s5 = $s6
+ $t0 = local[21]
+ $t0 = $v0
+ local[21] = $t0
+ $t0 = local[14]
+ $t1 = local[21]
+ $t0 = $t1
+ local[21] = $t1
+ local[14] = $t0
goto :if79_end
if79_else:
- $s6 = 0
- $t5 = 555
- $t6 = Sub($s6 $t5 )
- $t5 = $t6
- PrintIntS($t5 )
+ $t0 = local[28]
+ $t0 = 0
+ local[28] = $t0
+ $t0 = local[23]
+ $t0 = 555
+ local[23] = $t0
+ $t0 = local[29]
+ $t1 = local[28]
+ $t2 = local[23]
+ $t0 = Sub($t1 $t2 )
+ local[23] = $t2
+ local[28] = $t1
+ local[29] = $t0
+ $t0 = local[22]
+ $t1 = local[29]
+ $t0 = $t1
+ local[29] = $t1
+ local[22] = $t0
+ $t0 = local[22]
+ PrintIntS($t0 )
+ local[22] = $t0
$s3 = $s3
- $t5 = [$s3+0]
- $t6 = [$t5+12]
+ $t0 = local[20]
+ $t0 = [$s3+0]
+ local[20] = $t0
+ $t0 = local[20]
+ $t5 = [$t0+12]
+ local[20] = $t0
$s1 = $s1
- $t5 = [$s1+0]
- $s6 = [$t5+32]
+ $t0 = local[17]
+ $t0 = [$s1+0]
+ local[17] = $t0
+ $t0 = local[16]
+ $t1 = local[17]
+ $t0 = [$t1+32]
+ local[17] = $t1
+ local[16] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -600,15 +710,21 @@ if79_else:
local[12] = $t7
local[13] = $t8
$a0 = $s1
- call $s6
+ $t0 = local[16]
+ $t1 = local[16]
+ call $t1
+ local[16] = $t1
+ local[16] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $t5 = $v0
- $s6 = $t5
+ $t6 = $v0
+ $t0 = local[19]
+ $t0 = $t6
+ local[19] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -616,34 +732,64 @@ if79_else:
local[12] = $t7
local[13] = $t8
$a0 = $s3
- $a1 = $s6
- call $t6
+ $t0 = local[19]
+ $a1 = $t0
+ local[19] = $t0
+ call $t5
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $t5 = $v0
- $s6 = $t5
- $s6 = 0
- $t5 = 555
- $t6 = Sub($s6 $t5 )
- $t5 = $t6
- PrintIntS($t5 )
+ $t0 = local[24]
+ $t0 = $v0
+ local[24] = $t0
+ $t0 = local[25]
+ $t1 = local[24]
+ $t0 = $t1
+ local[24] = $t1
+ local[25] = $t0
+ $t3 = 0
+ $t4 = 555
+ $t0 = local[18]
+ $t0 = Sub($t3 $t4 )
+ local[18] = $t0
+ $t0 = local[15]
+ $t1 = local[18]
+ $t0 = $t1
+ local[18] = $t1
+ local[15] = $t0
+ $t0 = local[15]
+ PrintIntS($t0 )
+ local[15] = $t0
if79_end:
goto :if74_end
if74_else:
- $t5 = 0
+ $s5 = 0
if74_end:
- $t5 = Eq($s4 0 )
- $t6 = $t5
- if0 $t6 goto :if101_else
+ $t0 = local[44]
+ $t0 = Eq($s4 0 )
+ local[44] = $t0
+ $t0 = local[46]
+ $t1 = local[44]
+ $t0 = $t1
+ local[44] = $t1
+ local[46] = $t0
+ $t0 = local[46]
+ if0 $t0 goto :if101_else
+ local[46] = $t0
if101_body:
$s3 = $s1
$s1 = $s1
- $t6 = [$s1+0]
- $t5 = [$t6+32]
+ $t0 = local[54]
+ $t0 = [$s1+0]
+ local[54] = $t0
+ $t0 = local[53]
+ $t1 = local[54]
+ $t0 = [$t1+32]
+ local[54] = $t1
+ local[53] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -651,18 +797,32 @@ if101_body:
local[12] = $t7
local[13] = $t8
$a0 = $s1
- call $t5
+ $t0 = local[53]
+ $t1 = local[53]
+ call $t1
+ local[53] = $t1
+ local[53] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $t6 = $v0
- $s1 = $t6
+ $t0 = local[45]
+ $t0 = $v0
+ local[45] = $t0
+ $t0 = local[45]
+ $s1 = $t0
+ local[45] = $t0
$s1 = $s1
- $t6 = [$s1+0]
- $t5 = [$t6+24]
+ $t0 = local[55]
+ $t0 = [$s1+0]
+ local[55] = $t0
+ $t0 = local[48]
+ $t1 = local[55]
+ $t0 = [$t1+24]
+ local[55] = $t1
+ local[48] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -670,18 +830,32 @@ if101_body:
local[12] = $t7
local[13] = $t8
$a0 = $s1
- call $t5
+ $t0 = local[48]
+ $t1 = local[48]
+ call $t1
+ local[48] = $t1
+ local[48] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $t6 = $v0
- $s0 = $t6
+ $t0 = local[56]
+ $t0 = $v0
+ local[56] = $t0
+ $t0 = local[56]
+ $s0 = $t0
+ local[56] = $t0
$s1 = $s1
- $t6 = [$s1+0]
- $t5 = [$t6+28]
+ $t0 = local[51]
+ $t0 = [$s1+0]
+ local[51] = $t0
+ $t0 = local[32]
+ $t1 = local[51]
+ $t0 = [$t1+28]
+ local[51] = $t1
+ local[32] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -689,24 +863,34 @@ if101_body:
local[12] = $t7
local[13] = $t8
$a0 = $s1
- call $t5
+ $t0 = local[32]
+ $t1 = local[32]
+ call $t1
+ local[32] = $t1
+ local[32] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $t6 = $v0
- $t7 = $t6
+ $t0 = local[47]
+ $t0 = $v0
+ local[47] = $t0
+ $t0 = local[47]
+ $t7 = $t0
+ local[47] = $t0
$s2 = 1
goto :if101_end
if101_else:
- $t5 = 0
+ $s5 = 0
if101_end:
goto :while65_test
while65_end:
- $t7 = $s5
- $v0 = $t7
+ $t0 = local[14]
+ $s5 = $t0
+ local[14] = $t0
+ $v0 = $s5
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -716,7 +900,7 @@ while65_end:
$s6 = local[6]
$s7 = local[7]
ret
-func List_Search [in 0, out 0, local 14]
+func List_Search [in 0, out 0, local 23]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -727,19 +911,29 @@ func List_Search [in 0, out 0, local 14]
local[7] = $s7
$s6 = $a0
$s7 = $a1
- $s5 = 0
+ $t0 = local[14]
+ $t0 = 0
+ local[14] = $t0
$s4 = $s6
$s3 = [$s6+48]
$s2 = [$s6+40]
while113_test:
$s6 = Eq($s3 0 )
- $s1 = $s6
- if0 $s1 goto :while113_end
+ $t0 = local[22]
+ $t0 = $s6
+ local[22] = $t0
+ $t0 = local[22]
+ if0 $t0 goto :while113_end
+ local[22] = $t0
while113_body:
$s7 = $s7
- $s1 = [$s7+0]
- $s6 = [$s1+16]
- $s1 = $s2
+ $t4 = [$s7+0]
+ $t0 = local[17]
+ $t0 = [$t4+16]
+ local[17] = $t0
+ $t0 = local[15]
+ $t0 = $s2
+ local[15] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -747,26 +941,40 @@ while113_body:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- $a1 = $s1
- call $s6
+ $t0 = local[15]
+ $a1 = $t0
+ local[15] = $t0
+ $t0 = local[17]
+ $t1 = local[17]
+ call $t1
+ local[17] = $t1
+ local[17] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s0 = $v0
- $s1 = $s0
- if0 $s1 goto :if116_else
+ $t0 = local[21]
+ $t0 = $v0
+ local[21] = $t0
+ $t0 = local[21]
+ $s0 = $t0
+ local[21] = $t0
+ if0 $s0 goto :if116_else
if116_body:
- $s5 = 1
+ $t0 = local[14]
+ $t0 = 1
+ local[14] = $t0
goto :if116_end
if116_else:
$s1 = 0
if116_end:
$s4 = $s4
- $s1 = [$s4+0]
- $s0 = [$s1+32]
+ $t7 = [$s4+0]
+ $t0 = local[19]
+ $t0 = [$t7+32]
+ local[19] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -774,18 +982,26 @@ if116_end:
local[12] = $t7
local[13] = $t8
$a0 = $s4
- call $s0
+ $t0 = local[19]
+ $t1 = local[19]
+ call $t1
+ local[19] = $t1
+ local[19] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s1 = $v0
- $s4 = $s1
+ $t6 = $v0
+ $s4 = $t6
$s4 = $s4
- $s1 = [$s4+0]
- $s0 = [$s1+24]
+ $t0 = local[20]
+ $t0 = [$s4+0]
+ local[20] = $t0
+ $t0 = local[20]
+ $t3 = [$t0+24]
+ local[20] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -793,18 +1009,26 @@ if116_end:
local[12] = $t7
local[13] = $t8
$a0 = $s4
- call $s0
+ call $t3
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s1 = $v0
- $s3 = $s1
+ $t0 = local[18]
+ $t0 = $v0
+ local[18] = $t0
+ $t0 = local[18]
+ $s3 = $t0
+ local[18] = $t0
$s4 = $s4
- $s1 = [$s4+0]
- $s0 = [$s1+28]
+ $t0 = local[16]
+ $t0 = [$s4+0]
+ local[16] = $t0
+ $t0 = local[16]
+ $s5 = [$t0+28]
+ local[16] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -812,19 +1036,21 @@ if116_end:
local[12] = $t7
local[13] = $t8
$a0 = $s4
- call $s0
+ call $s5
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s1 = $v0
- $s2 = $s1
+ $t5 = $v0
+ $s2 = $t5
goto :while113_test
while113_end:
- $s2 = $s5
- $v0 = $s2
+ $t0 = local[14]
+ $s5 = $t0
+ local[14] = $t0
+ $v0 = $s5
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -897,7 +1123,7 @@ func List_GetNext [in 0, out 0, local 14]
$s6 = local[6]
$s7 = local[7]
ret
-func List_Print [in 0, out 0, local 14]
+func List_Print [in 0, out 0, local 19]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -912,12 +1138,22 @@ func List_Print [in 0, out 0, local 14]
$s4 = [$s7+40]
while134_test:
$s7 = Eq($s5 0 )
- $s3 = $s7
- if0 $s3 goto :while134_end
+ $t0 = local[16]
+ $t0 = $s7
+ local[16] = $t0
+ $t0 = local[16]
+ if0 $t0 goto :while134_end
+ local[16] = $t0
while134_body:
$s4 = $s4
- $s3 = [$s4+0]
- $s7 = [$s3+4]
+ $t0 = local[18]
+ $t0 = [$s4+0]
+ local[18] = $t0
+ $t0 = local[17]
+ $t1 = local[18]
+ $t0 = [$t1+4]
+ local[18] = $t1
+ local[17] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -925,19 +1161,27 @@ while134_body:
local[12] = $t7
local[13] = $t8
$a0 = $s4
- call $s7
+ $t0 = local[17]
+ $t1 = local[17]
+ call $t1
+ local[17] = $t1
+ local[17] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s3 = $v0
- $s7 = $s3
- PrintIntS($s7 )
+ $t0 = local[15]
+ $t0 = $v0
+ local[15] = $t0
+ $t0 = local[15]
+ $t7 = $t0
+ local[15] = $t0
+ PrintIntS($t7 )
$s6 = $s6
- $s7 = [$s6+0]
- $s3 = [$s7+32]
+ $t6 = [$s6+0]
+ $s2 = [$t6+32]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -945,18 +1189,18 @@ while134_body:
local[12] = $t7
local[13] = $t8
$a0 = $s6
- call $s3
+ call $s2
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s7 = $v0
- $s6 = $s7
+ $t5 = $v0
+ $s6 = $t5
$s6 = $s6
- $s7 = [$s6+0]
- $s3 = [$s7+24]
+ $s0 = [$s6+0]
+ $s1 = [$s0+24]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -964,18 +1208,20 @@ while134_body:
local[12] = $t7
local[13] = $t8
$a0 = $s6
- call $s3
+ call $s1
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s7 = $v0
- $s5 = $s7
+ $s3 = $v0
+ $s5 = $s3
$s6 = $s6
- $s7 = [$s6+0]
- $s3 = [$s7+28]
+ $t4 = [$s6+0]
+ $t0 = local[14]
+ $t0 = [$t4+28]
+ local[14] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -983,19 +1229,23 @@ while134_body:
local[12] = $t7
local[13] = $t8
$a0 = $s6
- call $s3
+ $t0 = local[14]
+ $t1 = local[14]
+ call $t1
+ local[14] = $t1
+ local[14] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s7 = $v0
- $s4 = $s7
+ $t3 = $v0
+ $s4 = $t3
goto :while134_test
while134_end:
- $s4 = 1
- $v0 = $s4
+ $t3 = 1
+ $v0 = $t3
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -1037,18 +1287,18 @@ func LL_Start [in 0, out 0, local 14]
$t8 = local[13]
$s6 = $v0
$s5 = $s6
- $s5 = $s7
- $s5 = $s5
- $s7 = [$s5+0]
- $s6 = [$s7+0]
+ $s6 = $s7
+ $s6 = $s6
+ $s7 = [$s6+0]
+ $s4 = [$s7+0]
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
- call $s6
+ $a0 = $s6
+ call $s4
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
@@ -1057,17 +1307,17 @@ func LL_Start [in 0, out 0, local 14]
$t8 = local[13]
$s7 = $v0
$s5 = $s7
- $s5 = $s5
- $s7 = [$s5+0]
- $s6 = [$s7+36]
+ $s6 = $s6
+ $s7 = [$s6+0]
+ $s4 = [$s7+36]
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
- call $s6
+ $a0 = $s6
+ call $s4
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
@@ -1078,82 +1328,82 @@ func LL_Start [in 0, out 0, local 14]
$s5 = $s7
$s7 = HeapAllocZ(36 )
[$s7+0] = :functable_Element
- $s6 = $s7
- $s6 = $s6
- $s7 = [$s6+0]
- $s4 = [$s7+0]
+ $s4 = $s7
+ $s4 = $s4
+ $s7 = [$s4+0]
+ $s3 = [$s7+0]
$s7 = 25
- $s3 = 37000
- $s2 = 0
+ $s2 = 37000
+ $s1 = 0
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s6
+ $a0 = $s4
$a1 = $s7
- $a2 = $s3
- $a3 = $s2
- call $s4
+ $a2 = $s2
+ $a3 = $s1
+ call $s3
$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
+ $s0 = $v0
+ $s5 = $s0
+ $s6 = $s6
+ $s0 = [$s6+0]
+ $s1 = [$s0+8]
+ $s0 = $s4
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
- $a1 = $s1
- call $s2
+ $a0 = $s6
+ $a1 = $s0
+ call $s1
$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]
+ $s2 = $v0
+ $s6 = $s2
+ $s6 = $s6
+ $s2 = [$s6+0]
+ $s0 = [$s2+36]
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
- call $s1
+ $a0 = $s6
+ call $s0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s3 = $v0
- $s5 = $s3
- $s3 = 10000000
- PrintIntS($s3 )
- $s3 = HeapAllocZ(36 )
- [$s3+0] = :functable_Element
- $s6 = $s3
- $s6 = $s6
- $s3 = [$s6+0]
- $s1 = [$s3+0]
- $s3 = 39
- $s2 = 42000
+ $s2 = $v0
+ $s5 = $s2
+ $s2 = 10000000
+ PrintIntS($s2 )
+ $s2 = HeapAllocZ(36 )
+ [$s2+0] = :functable_Element
+ $s4 = $s2
+ $s4 = $s4
+ $s2 = [$s4+0]
+ $s0 = [$s2+0]
+ $s2 = 39
+ $s1 = 42000
$s7 = 1
local[8] = $t3
local[9] = $t4
@@ -1161,51 +1411,51 @@ func LL_Start [in 0, out 0, local 14]
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s6
- $a1 = $s3
- $a2 = $s2
+ $a0 = $s4
+ $a1 = $s2
+ $a2 = $s1
$a3 = $s7
- call $s1
+ call $s0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s4 = $v0
- $s5 = $s4
- $s4 = $s6
- $s5 = $s5
- $s7 = [$s5+0]
- $s2 = [$s7+8]
- $s7 = $s6
+ $s3 = $v0
+ $s5 = $s3
+ $s3 = $s4
+ $s6 = $s6
+ $s7 = [$s6+0]
+ $s1 = [$s7+8]
+ $s7 = $s4
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
+ $a0 = $s6
$a1 = $s7
- call $s2
+ call $s1
$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]
+ $s2 = $v0
+ $s6 = $s2
+ $s6 = $s6
+ $s2 = [$s6+0]
+ $s7 = [$s2+36]
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
+ $a0 = $s6
call $s7
$t3 = local[8]
$t4 = local[9]
@@ -1213,29 +1463,29 @@ func LL_Start [in 0, out 0, local 14]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s3 = $v0
- $s5 = $s3
- $s3 = 10000000
- PrintIntS($s3 )
- $s3 = HeapAllocZ(36 )
- [$s3+0] = :functable_Element
- $s6 = $s3
- $s6 = $s6
- $s3 = [$s6+0]
- $s7 = [$s3+0]
- $s3 = 22
- $s2 = 34000
- $s1 = 0
+ $s2 = $v0
+ $s5 = $s2
+ $s2 = 10000000
+ PrintIntS($s2 )
+ $s2 = HeapAllocZ(36 )
+ [$s2+0] = :functable_Element
+ $s4 = $s2
+ $s4 = $s4
+ $s2 = [$s4+0]
+ $s7 = [$s2+0]
+ $s2 = 22
+ $s1 = 34000
+ $s0 = 0
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
+ $a0 = $s4
+ $a1 = $s2
+ $a2 = $s1
+ $a3 = $s0
call $s7
$t3 = local[8]
$t4 = local[9]
@@ -1243,56 +1493,56 @@ func LL_Start [in 0, out 0, local 14]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s0 = $v0
- $s5 = $s0
- $s5 = $s5
- $s0 = [$s5+0]
- $s1 = [$s0+8]
- $s0 = $s6
+ $t7 = $v0
+ $s5 = $t7
+ $s6 = $s6
+ $t7 = [$s6+0]
+ $s0 = [$t7+8]
+ $t7 = $s4
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
- $a1 = $s0
- call $s1
+ $a0 = $s6
+ $a1 = $t7
+ call $s0
$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]
+ $s1 = $v0
+ $s6 = $s1
+ $s6 = $s6
+ $s1 = [$s6+0]
+ $t7 = [$s1+36]
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
- call $s0
+ $a0 = $s6
+ call $t7
$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 )
- [$s2+0] = :functable_Element
- $s0 = $s2
- $s0 = $s0
- $s2 = [$s0+0]
- $s1 = [$s2+0]
- $s2 = 27
- $s3 = 34000
+ $s1 = $v0
+ $s5 = $s1
+ $s1 = HeapAllocZ(36 )
+ [$s1+0] = :functable_Element
+ $t7 = $s1
+ $t7 = $t7
+ $s1 = [$t7+0]
+ $s0 = [$s1+0]
+ $s1 = 27
+ $s2 = 34000
$s7 = 0
local[8] = $t3
local[9] = $t4
@@ -1300,31 +1550,31 @@ func LL_Start [in 0, out 0, local 14]
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s0
- $a1 = $s2
- $a2 = $s3
+ $a0 = $t7
+ $a1 = $s1
+ $a2 = $s2
$a3 = $s7
- call $s1
+ call $s0
$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
+ $t6 = $v0
+ $s5 = $t6
+ $s6 = $s6
+ $t6 = [$s6+0]
+ $s7 = [$t6+20]
+ $t6 = $s3
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
- $a1 = $t7
+ $a0 = $s6
+ $a1 = $t6
call $s7
$t3 = local[8]
$t4 = local[9]
@@ -1332,41 +1582,41 @@ func LL_Start [in 0, out 0, local 14]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s3 = $v0
- $t7 = $s3
- PrintIntS($t7 )
- $s5 = $s5
- $t7 = [$s5+0]
- $s3 = [$t7+20]
- $t7 = $s0
+ $s2 = $v0
+ $t6 = $s2
+ PrintIntS($t6 )
+ $s6 = $s6
+ $t6 = [$s6+0]
+ $s2 = [$t6+20]
+ $t6 = $t7
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
- $a1 = $t7
- call $s3
+ $a0 = $s6
+ $a1 = $t6
+ call $s2
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s0 = $v0
- $t7 = $s0
- PrintIntS($t7 )
- $t7 = 10000000
- PrintIntS($t7 )
- $t7 = HeapAllocZ(36 )
- [$t7+0] = :functable_Element
- $s6 = $t7
- $s6 = $s6
- $t7 = [$s6+0]
- $s0 = [$t7+0]
- $t7 = 28
- $s3 = 35000
+ $t7 = $v0
+ $t6 = $t7
+ PrintIntS($t6 )
+ $t6 = 10000000
+ PrintIntS($t6 )
+ $t6 = HeapAllocZ(36 )
+ [$t6+0] = :functable_Element
+ $s4 = $t6
+ $s4 = $s4
+ $t6 = [$s4+0]
+ $t7 = [$t6+0]
+ $t6 = 28
+ $s2 = 35000
$s7 = 0
local[8] = $t3
local[9] = $t4
@@ -1374,31 +1624,31 @@ func LL_Start [in 0, out 0, local 14]
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s6
- $a1 = $t7
- $a2 = $s3
+ $a0 = $s4
+ $a1 = $t6
+ $a2 = $s2
$a3 = $s7
- call $s0
+ call $t7
$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
+ $s1 = $v0
+ $s5 = $s1
+ $s6 = $s6
+ $s1 = [$s6+0]
+ $s7 = [$s1+8]
+ $s1 = $s4
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
- $a1 = $s2
+ $a0 = $s6
+ $a1 = $s1
call $s7
$t3 = local[8]
$t4 = local[9]
@@ -1406,115 +1656,115 @@ func LL_Start [in 0, out 0, local 14]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s3 = $v0
- $s5 = $s3
- $s5 = $s5
- $s3 = [$s5+0]
- $s2 = [$s3+36]
+ $s2 = $v0
+ $s6 = $s2
+ $s6 = $s6
+ $s2 = [$s6+0]
+ $s1 = [$s2+36]
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
- call $s2
+ $a0 = $s6
+ call $s1
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s3 = $v0
- $s5 = $s3
- $s3 = 2220000
- PrintIntS($s3 )
- $s5 = $s5
- $s3 = [$s5+0]
- $s2 = [$s3+16]
- $s3 = $s4
+ $s2 = $v0
+ $s5 = $s2
+ $s2 = 2220000
+ PrintIntS($s2 )
+ $s6 = $s6
+ $s2 = [$s6+0]
+ $s1 = [$s2+16]
+ $s2 = $s3
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
- $a1 = $s3
- call $s2
+ $a0 = $s6
+ $a1 = $s2
+ call $s1
$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]
+ $s3 = $v0
+ $s6 = $s3
+ $s6 = $s6
+ $s3 = [$s6+0]
+ $s2 = [$s3+36]
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
- call $s3
+ $a0 = $s6
+ call $s2
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s4 = $v0
- $s5 = $s4
- $s4 = 33300000
- PrintIntS($s4 )
- $s5 = $s5
- $s4 = [$s5+0]
- $s3 = [$s4+16]
- $s4 = $s6
+ $s3 = $v0
+ $s5 = $s3
+ $s3 = 33300000
+ PrintIntS($s3 )
+ $s6 = $s6
+ $s3 = [$s6+0]
+ $s2 = [$s3+16]
+ $s3 = $s4
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
- $a1 = $s4
- call $s3
+ $a0 = $s6
+ $a1 = $s3
+ call $s2
$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]
+ $s4 = $v0
+ $s6 = $s4
+ $s6 = $s6
+ $s4 = [$s6+0]
+ $s3 = [$s4+36]
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
- call $s4
+ $a0 = $s6
+ call $s3
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s6 = $v0
- $s5 = $s6
- $s6 = 44440000
- PrintIntS($s6 )
- $s6 = 0
- $v0 = $s6
+ $s4 = $v0
+ $s5 = $s4
+ $s4 = 44440000
+ PrintIntS($s4 )
+ $s4 = 0
+ $v0 = $s4
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
diff --git a/output/QuickSort.vaporm b/output/QuickSort.vaporm
index 4fe47c6..5c53340 100644
--- a/output/QuickSort.vaporm
+++ b/output/QuickSort.vaporm
@@ -120,10 +120,10 @@ func QS_Start [in 0, out 0, local 14]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s4 = $v0
- $s4 = $s4
- $s4 = [$s6+0]
- $s4 = [$s4+8]
+ $s2 = $v0
+ $s4 = $s2
+ $s2 = [$s6+0]
+ $s2 = [$s2+8]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -131,7 +131,7 @@ func QS_Start [in 0, out 0, local 14]
local[12] = $t7
local[13] = $t8
$a0 = $s6
- call $s4
+ call $s2
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
@@ -151,7 +151,7 @@ func QS_Start [in 0, out 0, local 14]
$s6 = local[6]
$s7 = local[7]
ret
-func QS_Sort [in 0, out 0, local 14]
+func QS_Sort [in 0, out 0, local 42]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -160,208 +160,440 @@ func QS_Sort [in 0, out 0, local 14]
local[5] = $s5
local[6] = $s6
local[7] = $s7
- $s5 = $a0
- $s6 = $a1
- $s7 = $a2
- $s4 = 0
- $s3 = $s6
- $s2 = $s7
+ local[14] = $a0
+ local[17] = $a1
+ local[15] = $a2
+ $t0 = local[18]
+ $t0 = 0
+ local[18] = $t0
+ $t0 = local[17]
+ $s3 = $t0
+ local[17] = $t0
+ $t0 = local[15]
+ $s2 = $t0
+ local[15] = $t0
$s1 = LtS($s3 $s2 )
$s2 = $s1
if0 $s2 goto :if22_else
if22_body:
- $s2 = [$s5+16]
- $s1 = MulS($s7 4 )
+ $t0 = local[14]
+ $s2 = [$t0+16]
+ local[14] = $t0
+ $t0 = local[15]
+ $s1 = MulS($t0 4 )
+ local[15] = $t0
$s1 = Add($s1 4 )
$s1 = Add($s2 $s1 )
$s2 = [$s1+0]
$s1 = $s2
- $s2 = $s6
+ $t0 = local[17]
+ $s2 = $t0
+ local[17] = $t0
$s3 = 1
$s0 = Sub($s2 $s3 )
- $s3 = $s0
- $s0 = $s7
- $s2 = 1
+ $t0 = local[16]
+ $t0 = $s0
+ local[16] = $t0
+ $t0 = local[19]
+ $t1 = local[15]
+ $t0 = $t1
+ local[15] = $t1
+ local[19] = $t0
+ $t0 = local[41]
+ $t0 = 1
+ local[41] = $t0
while32_test:
- $t7 = $s2
- if0 $t7 goto :while32_end
+ $t0 = local[40]
+ $t1 = local[41]
+ $t0 = $t1
+ local[41] = $t1
+ local[40] = $t0
+ $t0 = local[40]
+ if0 $t0 goto :while32_end
+ local[40] = $t0
while32_body:
- $t7 = 1
+ $t0 = local[32]
+ $t0 = 1
+ local[32] = $t0
while34_test:
- $t6 = $t7
- if0 $t6 goto :while34_end
+ $t0 = local[31]
+ $t1 = local[32]
+ $t0 = $t1
+ local[32] = $t1
+ local[31] = $t0
+ $t0 = local[31]
+ if0 $t0 goto :while34_end
+ local[31] = $t0
while34_body:
- $t6 = $s3
- $t5 = 1
- $t4 = Add($t6 $t5 )
- $s3 = $t4
- $t4 = [$s5+16]
- $t5 = MulS($s3 4 )
- $t5 = Add($t5 4 )
- $t5 = Add($t4 $t5 )
- $t4 = [$t5+0]
- $t5 = $t4
- $t4 = $t5
- $t6 = $s1
- $t3 = LtS($t4 $t6 )
- $t6 = Eq($t3 0 )
- $t3 = $t6
- if0 $t3 goto :if42_else
+ $t0 = local[16]
+ $s7 = $t0
+ local[16] = $t0
+ $t4 = 1
+ $s5 = Add($s7 $t4 )
+ $t0 = local[16]
+ $t0 = $s5
+ local[16] = $t0
+ $t0 = local[14]
+ $s0 = [$t0+16]
+ local[14] = $t0
+ $t0 = local[16]
+ $s3 = MulS($t0 4 )
+ local[16] = $t0
+ $s3 = Add($s3 4 )
+ $s3 = Add($s0 $s3 )
+ $s4 = [$s3+0]
+ $t3 = $s4
+ $t7 = $t3
+ $t5 = $s1
+ $s2 = LtS($t7 $t5 )
+ $s6 = Eq($s2 0 )
+ $t6 = $s6
+ if0 $t6 goto :if42_else
if42_body:
- $t7 = 0
+ $t0 = local[32]
+ $t0 = 0
+ local[32] = $t0
goto :if42_end
if42_else:
- $t7 = 1
+ $t0 = local[32]
+ $t0 = 1
+ local[32] = $t0
if42_end:
goto :while34_test
while34_end:
- $t7 = 1
+ $t0 = local[32]
+ $t0 = 1
+ local[32] = $t0
while47_test:
- $t3 = $t7
- if0 $t3 goto :while47_end
+ $t0 = local[26]
+ $t1 = local[32]
+ $t0 = $t1
+ local[32] = $t1
+ local[26] = $t0
+ $t0 = local[26]
+ if0 $t0 goto :while47_end
+ local[26] = $t0
while47_body:
- $t3 = $s0
- $t6 = 1
- $t4 = Sub($t3 $t6 )
- $s0 = $t4
- $t4 = [$s5+16]
- $t6 = MulS($s0 4 )
- $t6 = Add($t6 4 )
- $t6 = Add($t4 $t6 )
- $t4 = [$t6+0]
- $t5 = $t4
- $t4 = $s1
- $t6 = $t5
- $t5 = LtS($t4 $t6 )
- $t6 = Eq($t5 0 )
- $t5 = $t6
- if0 $t5 goto :if55_else
+ $t0 = local[19]
+ $s4 = $t0
+ local[19] = $t0
+ $s7 = 1
+ $s0 = Sub($s4 $s7 )
+ $t0 = local[19]
+ $t0 = $s0
+ local[19] = $t0
+ $t0 = local[14]
+ $s6 = [$t0+16]
+ local[14] = $t0
+ $t0 = local[19]
+ $s3 = MulS($t0 4 )
+ local[19] = $t0
+ $s3 = Add($s3 4 )
+ $s3 = Add($s6 $s3 )
+ $s5 = [$s3+0]
+ $t3 = $s5
+ $s2 = $s1
+ $t5 = $t3
+ $t7 = LtS($s2 $t5 )
+ $t4 = Eq($t7 0 )
+ $t6 = $t4
+ if0 $t6 goto :if55_else
if55_body:
- $t7 = 0
+ $t0 = local[32]
+ $t0 = 0
+ local[32] = $t0
goto :if55_end
if55_else:
- $t7 = 1
+ $t0 = local[32]
+ $t0 = 1
+ local[32] = $t0
if55_end:
goto :while47_test
while47_end:
- $t7 = [$s5+16]
- $t5 = MulS($s3 4 )
- $t5 = Add($t5 4 )
- $t5 = Add($t7 $t5 )
- $t7 = [$t5+0]
- $s4 = $t7
- $t7 = [$s5+16]
- $t5 = MulS($s3 4 )
- $t5 = Add($t5 4 )
- $t5 = Add($t7 $t5 )
- $t7 = [$s5+16]
- $t6 = MulS($s0 4 )
- $t6 = Add($t6 4 )
- $t6 = Add($t7 $t6 )
- $t7 = [$t6+0]
- [$t5+0] = $t7
- $t7 = [$s5+16]
- $t5 = MulS($s0 4 )
- $t5 = Add($t5 4 )
- $t5 = Add($t7 $t5 )
- [$t5+0] = $s4
- $t5 = $s0
- $t7 = $s3
- $t6 = 1
- $t4 = Add($t7 $t6 )
- $t6 = $t4
- $t4 = LtS($t5 $t6 )
- $t6 = $t4
- if0 $t6 goto :if70_else
+ $t0 = local[34]
+ $t1 = local[14]
+ $t0 = [$t1+16]
+ local[14] = $t1
+ local[34] = $t0
+ $t0 = local[37]
+ $t1 = local[16]
+ $t0 = MulS($t1 4 )
+ local[16] = $t1
+ local[37] = $t0
+ $t0 = local[37]
+ $t1 = local[37]
+ $t0 = Add($t1 4 )
+ local[37] = $t1
+ local[37] = $t0
+ $t0 = local[37]
+ $t1 = local[34]
+ $t2 = local[37]
+ $t0 = Add($t1 $t2 )
+ local[37] = $t2
+ local[34] = $t1
+ local[37] = $t0
+ $t0 = local[33]
+ $t1 = local[37]
+ $t0 = [$t1+0]
+ local[37] = $t1
+ local[33] = $t0
+ $t0 = local[18]
+ $t1 = local[33]
+ $t0 = $t1
+ local[33] = $t1
+ local[18] = $t0
+ $t0 = local[38]
+ $t1 = local[14]
+ $t0 = [$t1+16]
+ local[14] = $t1
+ local[38] = $t0
+ $t0 = local[35]
+ $t1 = local[16]
+ $t0 = MulS($t1 4 )
+ local[16] = $t1
+ local[35] = $t0
+ $t0 = local[35]
+ $t1 = local[35]
+ $t0 = Add($t1 4 )
+ local[35] = $t1
+ local[35] = $t0
+ $t0 = local[35]
+ $t1 = local[38]
+ $t2 = local[35]
+ $t0 = Add($t1 $t2 )
+ local[35] = $t2
+ local[38] = $t1
+ local[35] = $t0
+ $t0 = local[30]
+ $t1 = local[14]
+ $t0 = [$t1+16]
+ local[14] = $t1
+ local[30] = $t0
+ $t0 = local[21]
+ $t1 = local[19]
+ $t0 = MulS($t1 4 )
+ local[19] = $t1
+ local[21] = $t0
+ $t0 = local[21]
+ $t1 = local[21]
+ $t0 = Add($t1 4 )
+ local[21] = $t1
+ local[21] = $t0
+ $t0 = local[21]
+ $t1 = local[30]
+ $t2 = local[21]
+ $t0 = Add($t1 $t2 )
+ local[21] = $t2
+ local[30] = $t1
+ local[21] = $t0
+ $t0 = local[36]
+ $t1 = local[21]
+ $t0 = [$t1+0]
+ local[21] = $t1
+ local[36] = $t0
+ $t0 = local[35]
+ $t1 = local[36]
+ [$t0+0] = $t1
+ local[36] = $t1
+ local[35] = $t0
+ $t0 = local[20]
+ $t1 = local[14]
+ $t0 = [$t1+16]
+ local[14] = $t1
+ local[20] = $t0
+ $t0 = local[27]
+ $t1 = local[19]
+ $t0 = MulS($t1 4 )
+ local[19] = $t1
+ local[27] = $t0
+ $t0 = local[27]
+ $t1 = local[27]
+ $t0 = Add($t1 4 )
+ local[27] = $t1
+ local[27] = $t0
+ $t0 = local[27]
+ $t1 = local[20]
+ $t2 = local[27]
+ $t0 = Add($t1 $t2 )
+ local[27] = $t2
+ local[20] = $t1
+ local[27] = $t0
+ $t0 = local[27]
+ $t1 = local[18]
+ [$t0+0] = $t1
+ local[18] = $t1
+ local[27] = $t0
+ $t0 = local[29]
+ $t1 = local[19]
+ $t0 = $t1
+ local[19] = $t1
+ local[29] = $t0
+ $t0 = local[23]
+ $t1 = local[16]
+ $t0 = $t1
+ local[16] = $t1
+ local[23] = $t0
+ $t0 = local[22]
+ $t0 = 1
+ local[22] = $t0
+ $t0 = local[28]
+ $t1 = local[23]
+ $t2 = local[22]
+ $t0 = Add($t1 $t2 )
+ local[22] = $t2
+ local[23] = $t1
+ local[28] = $t0
+ $t0 = local[24]
+ $t1 = local[28]
+ $t0 = $t1
+ local[28] = $t1
+ local[24] = $t0
+ $t0 = local[25]
+ $t1 = local[29]
+ $t2 = local[24]
+ $t0 = LtS($t1 $t2 )
+ local[24] = $t2
+ local[29] = $t1
+ local[25] = $t0
+ $t0 = local[39]
+ $t1 = local[25]
+ $t0 = $t1
+ local[25] = $t1
+ local[39] = $t0
+ $t0 = local[39]
+ if0 $t0 goto :if70_else
+ local[39] = $t0
if70_body:
- $s2 = 0
+ $t0 = local[41]
+ $t0 = 0
+ local[41] = $t0
goto :if70_end
if70_else:
- $s2 = 1
+ $t0 = local[41]
+ $t0 = 1
+ local[41] = $t0
if70_end:
goto :while32_test
while32_end:
- $s2 = [$s5+16]
- $s1 = MulS($s0 4 )
- $s1 = Add($s1 4 )
- $s1 = Add($s2 $s1 )
- $s2 = [$s5+16]
- $s0 = MulS($s3 4 )
+ $t0 = local[14]
+ $s1 = [$t0+16]
+ local[14] = $t0
+ $t0 = local[19]
+ $s0 = MulS($t0 4 )
+ local[19] = $t0
$s0 = Add($s0 4 )
- $s0 = Add($s2 $s0 )
- $s2 = [$s0+0]
- [$s1+0] = $s2
- $s2 = [$s5+16]
- $s1 = MulS($s3 4 )
- $s1 = Add($s1 4 )
- $s1 = Add($s2 $s1 )
- $s2 = [$s5+16]
- $s0 = MulS($s7 4 )
+ $s0 = Add($s1 $s0 )
+ $t0 = local[14]
+ $s1 = [$t0+16]
+ local[14] = $t0
+ $t0 = local[16]
+ $s4 = MulS($t0 4 )
+ local[16] = $t0
+ $s4 = Add($s4 4 )
+ $s4 = Add($s1 $s4 )
+ $s1 = [$s4+0]
+ [$s0+0] = $s1
+ $t0 = local[14]
+ $s1 = [$t0+16]
+ local[14] = $t0
+ $t0 = local[16]
+ $s0 = MulS($t0 4 )
+ local[16] = $t0
$s0 = Add($s0 4 )
- $s0 = Add($s2 $s0 )
- $s2 = [$s0+0]
- [$s1+0] = $s2
- $s2 = [$s5+16]
- $s1 = MulS($s7 4 )
- $s1 = Add($s1 4 )
- $s1 = Add($s2 $s1 )
- [$s1+0] = $s4
- $s1 = [$s5+0]
- $s4 = $s3
- $s2 = 1
- $s0 = Sub($s4 $s2 )
- $s4 = $s6
- $s4 = $s0
- $s1 = [$s1+4]
+ $s0 = Add($s1 $s0 )
+ $t0 = local[14]
+ $s1 = [$t0+16]
+ local[14] = $t0
+ $t0 = local[15]
+ $s4 = MulS($t0 4 )
+ local[15] = $t0
+ $s4 = Add($s4 4 )
+ $s4 = Add($s1 $s4 )
+ $s1 = [$s4+0]
+ [$s0+0] = $s1
+ $t0 = local[14]
+ $s1 = [$t0+16]
+ local[14] = $t0
+ $t0 = local[15]
+ $s0 = MulS($t0 4 )
+ local[15] = $t0
+ $s0 = Add($s0 4 )
+ $s0 = Add($s1 $s0 )
+ $t0 = local[18]
+ [$s0+0] = $t0
+ local[18] = $t0
+ $t0 = local[14]
+ $s0 = [$t0+0]
+ local[14] = $t0
+ $t0 = local[16]
+ $s1 = $t0
+ local[16] = $t0
+ $s4 = 1
+ $s6 = Sub($s1 $s4 )
+ $t0 = local[17]
+ $s1 = $t0
+ local[17] = $t0
+ $s1 = $s6
+ $s0 = [$s0+4]
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[14]
+ $a0 = $t0
+ local[14] = $t0
+ $a1 = $s4
+ $a2 = $s1
+ call $s0
$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]
+ $s6 = $v0
+ $s1 = $s6
+ $t0 = local[14]
+ $s6 = [$t0+0]
+ local[14] = $t0
+ $t0 = local[16]
+ $s4 = $t0
+ local[16] = $t0
+ $s0 = 1
+ $s3 = Add($s4 $s0 )
$s0 = $s3
- $s3 = 1
- $s2 = Add($s0 $s3 )
- $s3 = $s2
- $s2 = $s7
- $s4 = [$s4+4]
+ $t0 = local[15]
+ $s3 = $t0
+ local[15] = $t0
+ $s6 = [$s6+4]
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[14]
+ $a0 = $t0
+ local[14] = $t0
+ $a1 = $s0
+ $a2 = $s3
+ call $s6
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s7 = $v0
- $s4 = $s7
+ $s4 = $v0
+ $s1 = $s4
goto :if22_end
if22_else:
- $s4 = 0
+ $s1 = 0
if22_end:
- $s7 = 0
- $v0 = $s7
+ $s1 = 0
+ $v0 = $s1
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -384,26 +616,26 @@ func QS_Print [in 0, out 0, local 14]
$s7 = 0
while104_test:
$s5 = $s7
- $s4 = [$s6+20]
- $s3 = LtS($s5 $s4 )
- $s4 = $s3
- if0 $s4 goto :while104_end
+ $s1 = [$s6+20]
+ $s2 = LtS($s5 $s1 )
+ $t7 = $s2
+ if0 $t7 goto :while104_end
while104_body:
- $s4 = [$s6+16]
- $s3 = MulS($s7 4 )
- $s3 = Add($s3 4 )
- $s3 = Add($s4 $s3 )
- $s4 = [$s3+0]
- $s3 = $s4
- PrintIntS($s3 )
- $s3 = $s7
- $s4 = 1
- $s5 = Add($s3 $s4 )
- $s7 = $s5
+ $t5 = [$s6+16]
+ $t6 = MulS($s7 4 )
+ $t6 = Add($t6 4 )
+ $t6 = Add($t5 $t6 )
+ $s0 = [$t6+0]
+ $t3 = $s0
+ PrintIntS($t3 )
+ $s4 = $s7
+ $s3 = 1
+ $t4 = Add($s4 $s3 )
+ $s7 = $t4
goto :while104_test
while104_end:
- $s6 = 0
- $v0 = $s6
+ $t3 = 0
+ $v0 = $t3
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
diff --git a/output/TreeVisitor.vaporm b/output/TreeVisitor.vaporm
index 51bb666..df4e39f 100644
--- a/output/TreeVisitor.vaporm
+++ b/output/TreeVisitor.vaporm
@@ -102,8 +102,8 @@ func TV_Start [in 0, out 0, local 14]
$s4 = $v0
$s6 = $s4
$s7 = $s7
- $s6 = [$s7+0]
- $s4 = [$s6+72]
+ $s4 = [$s7+0]
+ $s5 = [$s4+72]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -111,21 +111,21 @@ func TV_Start [in 0, out 0, local 14]
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s4
+ call $s5
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s6 = $v0
- $s6 = $s6
- $s6 = 100000000
- PrintIntS($s6 )
+ $s4 = $v0
+ $s6 = $s4
+ $s4 = 100000000
+ PrintIntS($s4 )
$s7 = $s7
- $s6 = [$s7+0]
- $s4 = [$s6+48]
- $s6 = 8
+ $s4 = [$s7+0]
+ $s5 = [$s4+48]
+ $s4 = 8
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -133,7 +133,28 @@ func TV_Start [in 0, out 0, local 14]
local[12] = $t7
local[13] = $t8
$a0 = $s7
- $a1 = $s6
+ $a1 = $s4
+ call $s5
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
+ $s3 = $v0
+ $s6 = $s3
+ $s7 = $s7
+ $s3 = [$s7+0]
+ $s4 = [$s3+48]
+ $s3 = 24
+ local[8] = $t3
+ local[9] = $t4
+ local[10] = $t5
+ local[11] = $t6
+ local[12] = $t7
+ local[13] = $t8
+ $a0 = $s7
+ $a1 = $s3
call $s4
$t3 = local[8]
$t4 = local[9]
@@ -145,8 +166,8 @@ func TV_Start [in 0, out 0, local 14]
$s6 = $s5
$s7 = $s7
$s5 = [$s7+0]
- $s6 = [$s5+48]
- $s5 = 24
+ $s3 = [$s5+48]
+ $s5 = 4
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -155,7 +176,7 @@ func TV_Start [in 0, out 0, local 14]
local[13] = $t8
$a0 = $s7
$a1 = $s5
- call $s6
+ call $s3
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
@@ -167,7 +188,7 @@ func TV_Start [in 0, out 0, local 14]
$s7 = $s7
$s4 = [$s7+0]
$s5 = [$s4+48]
- $s4 = 4
+ $s4 = 12
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -183,12 +204,12 @@ func TV_Start [in 0, out 0, local 14]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s6 = $v0
- $s6 = $s6
+ $s3 = $v0
+ $s6 = $s3
$s7 = $s7
- $s6 = [$s7+0]
- $s4 = [$s6+48]
- $s6 = 12
+ $s3 = [$s7+0]
+ $s4 = [$s3+48]
+ $s3 = 20
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -196,7 +217,7 @@ func TV_Start [in 0, out 0, local 14]
local[12] = $t7
local[13] = $t8
$a0 = $s7
- $a1 = $s6
+ $a1 = $s3
call $s4
$t3 = local[8]
$t4 = local[9]
@@ -208,8 +229,8 @@ func TV_Start [in 0, out 0, local 14]
$s6 = $s5
$s7 = $s7
$s5 = [$s7+0]
- $s6 = [$s5+48]
- $s5 = 20
+ $s3 = [$s5+48]
+ $s5 = 28
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -218,7 +239,7 @@ func TV_Start [in 0, out 0, local 14]
local[13] = $t8
$a0 = $s7
$a1 = $s5
- call $s6
+ call $s3
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
@@ -230,7 +251,7 @@ func TV_Start [in 0, out 0, local 14]
$s7 = $s7
$s4 = [$s7+0]
$s5 = [$s4+48]
- $s4 = 28
+ $s4 = 14
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -246,12 +267,11 @@ func TV_Start [in 0, out 0, local 14]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s6 = $v0
- $s6 = $s6
+ $s3 = $v0
+ $s6 = $s3
$s7 = $s7
- $s6 = [$s7+0]
- $s4 = [$s6+48]
- $s6 = 14
+ $s3 = [$s7+0]
+ $s4 = [$s3+72]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -259,7 +279,6 @@ func TV_Start [in 0, out 0, local 14]
local[12] = $t7
local[13] = $t8
$a0 = $s7
- $a1 = $s6
call $s4
$t3 = local[8]
$t4 = local[9]
@@ -267,11 +286,19 @@ func TV_Start [in 0, out 0, local 14]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s5 = $v0
- $s6 = $s5
+ $s3 = $v0
+ $s6 = $s3
+ $s3 = 100000000
+ PrintIntS($s3 )
+ $s3 = HeapAllocZ(16 )
+ [$s3+0] = :functable_MyVisitor
+ $s4 = $s3
+ $s3 = 50000000
+ PrintIntS($s3 )
$s7 = $s7
- $s5 = [$s7+0]
- $s6 = [$s5+72]
+ $s3 = [$s7+0]
+ $s5 = [$s3+80]
+ $s3 = $s4
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -279,26 +306,22 @@ func TV_Start [in 0, out 0, local 14]
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s6
+ $a1 = $s3
+ call $s5
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s5 = $v0
- $s6 = $s5
- $s5 = 100000000
- PrintIntS($s5 )
- $s5 = HeapAllocZ(16 )
- [$s5+0] = :functable_MyVisitor
- $s6 = $s5
- $s5 = 50000000
- PrintIntS($s5 )
+ $s4 = $v0
+ $s3 = $s4
+ $s3 = 100000000
+ PrintIntS($s3 )
$s7 = $s7
- $s5 = [$s7+0]
- $s4 = [$s5+80]
- $s5 = $s6
+ $s3 = [$s7+0]
+ $s4 = [$s3+68]
+ $s3 = 24
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -306,7 +329,7 @@ func TV_Start [in 0, out 0, local 14]
local[12] = $t7
local[13] = $t8
$a0 = $s7
- $a1 = $s5
+ $a1 = $s3
call $s4
$t3 = local[8]
$t4 = local[9]
@@ -314,14 +337,13 @@ func TV_Start [in 0, out 0, local 14]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s6 = $v0
- $s5 = $s6
- $s5 = 100000000
- PrintIntS($s5 )
+ $s5 = $v0
+ $s3 = $s5
+ PrintIntS($s3 )
$s7 = $s7
- $s5 = [$s7+0]
- $s6 = [$s5+68]
- $s5 = 24
+ $s3 = [$s7+0]
+ $s5 = [$s3+68]
+ $s3 = 12
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -329,8 +351,8 @@ func TV_Start [in 0, out 0, local 14]
local[12] = $t7
local[13] = $t8
$a0 = $s7
- $a1 = $s5
- call $s6
+ $a1 = $s3
+ call $s5
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
@@ -338,12 +360,12 @@ func TV_Start [in 0, out 0, local 14]
$t7 = local[12]
$t8 = local[13]
$s4 = $v0
- $s5 = $s4
- PrintIntS($s5 )
+ $s3 = $s4
+ PrintIntS($s3 )
$s7 = $s7
- $s5 = [$s7+0]
- $s4 = [$s5+68]
- $s5 = 12
+ $s3 = [$s7+0]
+ $s4 = [$s3+68]
+ $s3 = 16
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -351,7 +373,7 @@ func TV_Start [in 0, out 0, local 14]
local[12] = $t7
local[13] = $t8
$a0 = $s7
- $a1 = $s5
+ $a1 = $s3
call $s4
$t3 = local[8]
$t4 = local[9]
@@ -359,13 +381,13 @@ func TV_Start [in 0, out 0, local 14]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s6 = $v0
- $s5 = $s6
- PrintIntS($s5 )
+ $s5 = $v0
+ $s3 = $s5
+ PrintIntS($s3 )
$s7 = $s7
- $s5 = [$s7+0]
- $s6 = [$s5+68]
- $s5 = 16
+ $s3 = [$s7+0]
+ $s5 = [$s3+68]
+ $s3 = 50
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -373,8 +395,8 @@ func TV_Start [in 0, out 0, local 14]
local[12] = $t7
local[13] = $t8
$a0 = $s7
- $a1 = $s5
- call $s6
+ $a1 = $s3
+ call $s5
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
@@ -382,12 +404,12 @@ func TV_Start [in 0, out 0, local 14]
$t7 = local[12]
$t8 = local[13]
$s4 = $v0
- $s5 = $s4
- PrintIntS($s5 )
+ $s3 = $s4
+ PrintIntS($s3 )
$s7 = $s7
- $s5 = [$s7+0]
- $s4 = [$s5+68]
- $s5 = 50
+ $s3 = [$s7+0]
+ $s4 = [$s3+68]
+ $s3 = 12
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -395,7 +417,7 @@ func TV_Start [in 0, out 0, local 14]
local[12] = $t7
local[13] = $t8
$a0 = $s7
- $a1 = $s5
+ $a1 = $s3
call $s4
$t3 = local[8]
$t4 = local[9]
@@ -403,13 +425,13 @@ func TV_Start [in 0, out 0, local 14]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s6 = $v0
- $s5 = $s6
- PrintIntS($s5 )
+ $s5 = $v0
+ $s3 = $s5
+ PrintIntS($s3 )
$s7 = $s7
- $s5 = [$s7+0]
- $s6 = [$s5+68]
- $s5 = 12
+ $s3 = [$s7+0]
+ $s5 = [$s3+52]
+ $s3 = 12
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -417,8 +439,8 @@ func TV_Start [in 0, out 0, local 14]
local[12] = $t7
local[13] = $t8
$a0 = $s7
- $a1 = $s5
- call $s6
+ $a1 = $s3
+ call $s5
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
@@ -426,32 +448,10 @@ func TV_Start [in 0, out 0, local 14]
$t7 = local[12]
$t8 = local[13]
$s4 = $v0
- $s5 = $s4
- PrintIntS($s5 )
- $s7 = $s7
- $s5 = [$s7+0]
- $s4 = [$s5+52]
- $s5 = 12
- local[8] = $t3
- local[9] = $t4
- local[10] = $t5
- local[11] = $t6
- local[12] = $t7
- local[13] = $t8
- $a0 = $s7
- $a1 = $s5
- call $s4
- $t3 = local[8]
- $t4 = local[9]
- $t5 = local[10]
- $t6 = local[11]
- $t7 = local[12]
- $t8 = local[13]
- $s6 = $v0
- $s6 = $s6
+ $s6 = $s4
$s7 = $s7
- $s6 = [$s7+0]
- $s5 = [$s6+72]
+ $s4 = [$s7+0]
+ $s3 = [$s4+72]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -459,19 +459,19 @@ func TV_Start [in 0, out 0, local 14]
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s5
+ call $s3
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s6 = $v0
- $s6 = $s6
+ $s4 = $v0
+ $s6 = $s4
$s7 = $s7
- $s6 = [$s7+0]
- $s5 = [$s6+68]
- $s6 = 12
+ $s4 = [$s7+0]
+ $s6 = [$s4+68]
+ $s4 = 12
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -479,19 +479,19 @@ func TV_Start [in 0, out 0, local 14]
local[12] = $t7
local[13] = $t8
$a0 = $s7
- $a1 = $s6
- call $s5
+ $a1 = $s4
+ call $s6
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s4 = $v0
- $s6 = $s4
- PrintIntS($s6 )
- $s6 = 0
- $v0 = $s6
+ $s3 = $v0
+ $s4 = $s3
+ PrintIntS($s4 )
+ $s4 = 0
+ $v0 = $s4
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -796,7 +796,7 @@ if105_end:
$s6 = local[6]
$s7 = local[7]
ret
-func Tree_Insert [in 0, out 0, local 14]
+func Tree_Insert [in 0, out 0, local 44]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -831,216 +831,352 @@ func Tree_Insert [in 0, out 0, local 14]
$t8 = local[13]
$s2 = $v0
$s5 = $s2
- $s5 = $s6
+ $s2 = $s6
$s6 = 1
while120_test:
- $s2 = $s6
- if0 $s2 goto :while120_end
+ $s3 = $s6
+ if0 $s3 goto :while120_end
while120_body:
- $s5 = $s5
- $s2 = [$s5+0]
- $s3 = [$s2+20]
+ $s2 = $s2
+ $t0 = local[27]
+ $t0 = [$s2+0]
+ local[27] = $t0
+ $t0 = local[33]
+ $t1 = local[27]
+ $t0 = [$t1+20]
+ local[27] = $t1
+ local[33] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
- call $s3
- $t3 = local[8]
- $t4 = local[9]
- $t5 = local[10]
- $t6 = local[11]
- $t7 = local[12]
- $t8 = local[13]
- $s2 = $v0
- $s3 = $s2
- $s2 = $s7
- $s1 = $s3
- $s3 = LtS($s2 $s1 )
- $s1 = $s3
- if0 $s1 goto :if125_else
+ $a0 = $s2
+ $t0 = local[33]
+ $t1 = local[33]
+ call $t1
+ local[33] = $t1
+ local[33] = $t0
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
+ $t0 = local[29]
+ $t0 = $v0
+ local[29] = $t0
+ $t0 = local[37]
+ $t1 = local[29]
+ $t0 = $t1
+ local[29] = $t1
+ local[37] = $t0
+ $t0 = local[24]
+ $t0 = $s7
+ local[24] = $t0
+ $t0 = local[23]
+ $t1 = local[37]
+ $t0 = $t1
+ local[37] = $t1
+ local[23] = $t0
+ $t0 = local[31]
+ $t1 = local[24]
+ $t2 = local[23]
+ $t0 = LtS($t1 $t2 )
+ local[23] = $t2
+ local[24] = $t1
+ local[31] = $t0
+ $t0 = local[25]
+ $t1 = local[31]
+ $t0 = $t1
+ local[31] = $t1
+ local[25] = $t0
+ $t0 = local[25]
+ if0 $t0 goto :if125_else
+ local[25] = $t0
if125_body:
- $s5 = $s5
- $s1 = [$s5+0]
- $s3 = [$s1+32]
+ $s2 = $s2
+ $t0 = local[15]
+ $t0 = [$s2+0]
+ local[15] = $t0
+ $t0 = local[21]
+ $t1 = local[15]
+ $t0 = [$t1+32]
+ local[15] = $t1
+ local[21] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
- call $s3
+ $a0 = $s2
+ $t0 = local[21]
+ $t1 = local[21]
+ call $t1
+ local[21] = $t1
+ local[21] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s1 = $v0
- $s3 = $s1
- if0 $s3 goto :if129_else
+ $t0 = local[17]
+ $t0 = $v0
+ local[17] = $t0
+ $t0 = local[19]
+ $t1 = local[17]
+ $t0 = $t1
+ local[17] = $t1
+ local[19] = $t0
+ $t0 = local[19]
+ if0 $t0 goto :if129_else
+ local[19] = $t0
if129_body:
- $s5 = $s5
- $s3 = [$s5+0]
- $s1 = [$s3+16]
+ $s2 = $s2
+ $s1 = [$s2+0]
+ $t0 = local[42]
+ $t0 = [$s1+16]
+ local[42] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
- call $s1
+ $a0 = $s2
+ $t0 = local[42]
+ $t1 = local[42]
+ call $t1
+ local[42] = $t1
+ local[42] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s3 = $v0
- $s5 = $s3
+ $t7 = $v0
+ $s2 = $t7
goto :if129_end
if129_else:
$s6 = 0
- $s5 = $s5
- $s3 = [$s5+0]
- $s1 = [$s3+36]
- $s3 = 1
+ $s2 = $s2
+ $t0 = local[41]
+ $t0 = [$s2+0]
+ local[41] = $t0
+ $t0 = local[40]
+ $t1 = local[41]
+ $t0 = [$t1+36]
+ local[41] = $t1
+ local[40] = $t0
+ $t0 = local[26]
+ $t0 = 1
+ local[26] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
- $a1 = $s3
- call $s1
+ $a0 = $s2
+ $t0 = local[26]
+ $a1 = $t0
+ local[26] = $t0
+ $t0 = local[40]
+ $t1 = local[40]
+ call $t1
+ local[40] = $t1
+ local[40] = $t0
$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]
- $s3 = [$s2+8]
- $s2 = $s4
+ $t5 = $v0
+ $s5 = $t5
+ $s2 = $s2
+ $t0 = local[35]
+ $t0 = [$s2+0]
+ local[35] = $t0
+ $t0 = local[39]
+ $t1 = local[35]
+ $t0 = [$t1+8]
+ local[35] = $t1
+ local[39] = $t0
+ $t0 = local[38]
+ $t0 = $s4
+ local[38] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
- $a1 = $s2
- call $s3
+ $a0 = $s2
+ $t0 = local[38]
+ $a1 = $t0
+ local[38] = $t0
+ $t0 = local[39]
+ $t1 = local[39]
+ call $t1
+ local[39] = $t1
+ local[39] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s1 = $v0
- $s5 = $s1
+ $t0 = local[36]
+ $t0 = $v0
+ local[36] = $t0
+ $t0 = local[36]
+ $s5 = $t0
+ local[36] = $t0
if129_end:
goto :if125_end
if125_else:
- $s5 = $s5
- $s1 = [$s5+0]
- $s2 = [$s1+28]
+ $s2 = $s2
+ $t0 = local[28]
+ $t0 = [$s2+0]
+ local[28] = $t0
+ $t0 = local[34]
+ $t1 = local[28]
+ $t0 = [$t1+28]
+ local[28] = $t1
+ local[34] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
- call $s2
+ $a0 = $s2
+ $t0 = local[34]
+ $t1 = local[34]
+ call $t1
+ local[34] = $t1
+ local[34] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s1 = $v0
- $s2 = $s1
- if0 $s2 goto :if144_else
+ $t0 = local[30]
+ $t0 = $v0
+ local[30] = $t0
+ $t0 = local[32]
+ $t1 = local[30]
+ $t0 = $t1
+ local[30] = $t1
+ local[32] = $t0
+ $t0 = local[32]
+ if0 $t0 goto :if144_else
+ local[32] = $t0
if144_body:
- $s5 = $s5
- $s2 = [$s5+0]
- $s1 = [$s2+12]
+ $s2 = $s2
+ $t3 = [$s2+0]
+ $t4 = [$t3+12]
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
- call $s1
+ $a0 = $s2
+ call $t4
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s2 = $v0
- $s5 = $s2
+ $t3 = $v0
+ $s2 = $t3
goto :if144_end
if144_else:
$s6 = 0
- $s5 = $s5
- $s2 = [$s5+0]
- $s1 = [$s2+40]
- $s2 = 1
+ $s2 = $s2
+ $t0 = local[16]
+ $t0 = [$s2+0]
+ local[16] = $t0
+ $t0 = local[22]
+ $t1 = local[16]
+ $t0 = [$t1+40]
+ local[16] = $t1
+ local[22] = $t0
+ $t0 = local[20]
+ $t0 = 1
+ local[20] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
- $a1 = $s2
- call $s1
+ $a0 = $s2
+ $t0 = local[20]
+ $a1 = $t0
+ local[20] = $t0
+ $t0 = local[22]
+ $t1 = local[22]
+ call $t1
+ local[22] = $t1
+ local[22] = $t0
$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+4]
- $s3 = $s4
+ $t0 = local[18]
+ $t0 = $v0
+ local[18] = $t0
+ $t0 = local[18]
+ $s5 = $t0
+ local[18] = $t0
+ $s2 = $s2
+ $s0 = [$s2+0]
+ $t0 = local[14]
+ $t0 = [$s0+4]
+ local[14] = $t0
+ $t0 = local[43]
+ $t0 = $s4
+ local[43] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
- $a1 = $s3
- call $s2
+ $a0 = $s2
+ $t0 = local[43]
+ $a1 = $t0
+ local[43] = $t0
+ $t0 = local[14]
+ $t1 = local[14]
+ call $t1
+ local[14] = $t1
+ local[14] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s1 = $v0
- $s5 = $s1
+ $t6 = $v0
+ $s5 = $t6
if144_end:
if125_end:
goto :while120_test
while120_end:
- $s6 = 1
- $v0 = $s6
+ $t5 = 1
+ $v0 = $t5
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -1050,7 +1186,7 @@ while120_end:
$s6 = local[6]
$s7 = local[7]
ret
-func Tree_Delete [in 0, out 0, local 14]
+func Tree_Delete [in 0, out 0, local 54]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -1064,15 +1200,23 @@ func Tree_Delete [in 0, out 0, local 14]
$s5 = $s6
$s4 = $s6
$s3 = 1
- $s2 = 0
+ $t0 = local[14]
+ $t0 = 0
+ local[14] = $t0
$s1 = 1
while160_test:
$s0 = $s3
if0 $s0 goto :while160_end
while160_body:
$s5 = $s5
- $s0 = [$s5+0]
- $t7 = [$s0+20]
+ $t0 = local[45]
+ $t0 = [$s5+0]
+ local[45] = $t0
+ $t0 = local[50]
+ $t1 = local[45]
+ $t0 = [$t1+20]
+ local[45] = $t1
+ local[50] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1080,24 +1224,58 @@ while160_body:
local[12] = $t7
local[13] = $t8
$a0 = $s5
- call $t7
- $t3 = local[8]
- $t4 = local[9]
- $t5 = local[10]
- $t6 = local[11]
- $t7 = local[12]
- $t8 = local[13]
- $s0 = $v0
- $t7 = $s0
- $s0 = $s7
- $t6 = $t7
- $t5 = LtS($s0 $t6 )
- $t6 = $t5
- if0 $t6 goto :if165_else
+ $t0 = local[50]
+ $t1 = local[50]
+ call $t1
+ local[50] = $t1
+ local[50] = $t0
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
+ $t0 = local[25]
+ $t0 = $v0
+ local[25] = $t0
+ $t0 = local[26]
+ $t1 = local[25]
+ $t0 = $t1
+ local[25] = $t1
+ local[26] = $t0
+ $t0 = local[41]
+ $t0 = $s7
+ local[41] = $t0
+ $t0 = local[40]
+ $t1 = local[26]
+ $t0 = $t1
+ local[26] = $t1
+ local[40] = $t0
+ $t0 = local[48]
+ $t1 = local[41]
+ $t2 = local[40]
+ $t0 = LtS($t1 $t2 )
+ local[40] = $t2
+ local[41] = $t1
+ local[48] = $t0
+ $t0 = local[44]
+ $t1 = local[48]
+ $t0 = $t1
+ local[48] = $t1
+ local[44] = $t0
+ $t0 = local[44]
+ if0 $t0 goto :if165_else
+ local[44] = $t0
if165_body:
$s5 = $s5
- $t6 = [$s5+0]
- $t5 = [$t6+32]
+ $t0 = local[35]
+ $t0 = [$s5+0]
+ local[35] = $t0
+ $t0 = local[34]
+ $t1 = local[35]
+ $t0 = [$t1+32]
+ local[35] = $t1
+ local[34] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1105,21 +1283,39 @@ if165_body:
local[12] = $t7
local[13] = $t8
$a0 = $s5
- call $t5
+ $t0 = local[34]
+ $t1 = local[34]
+ call $t1
+ local[34] = $t1
+ local[34] = $t0
$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 :if169_else
+ $t0 = local[43]
+ $t0 = $v0
+ local[43] = $t0
+ $t0 = local[36]
+ $t1 = local[43]
+ $t0 = $t1
+ local[43] = $t1
+ local[36] = $t0
+ $t0 = local[36]
+ if0 $t0 goto :if169_else
+ local[36] = $t0
if169_body:
$s4 = $s5
$s5 = $s5
- $t5 = [$s5+0]
- $t6 = [$t5+16]
+ $t0 = local[30]
+ $t0 = [$s5+0]
+ local[30] = $t0
+ $t0 = local[33]
+ $t1 = local[30]
+ $t0 = [$t1+16]
+ local[30] = $t1
+ local[33] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1127,30 +1323,56 @@ if169_body:
local[12] = $t7
local[13] = $t8
$a0 = $s5
- call $t6
+ $t0 = local[33]
+ $t1 = local[33]
+ call $t1
+ local[33] = $t1
+ local[33] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $t5 = $v0
- $s5 = $t5
+ $t0 = local[31]
+ $t0 = $v0
+ local[31] = $t0
+ $t0 = local[31]
+ $s5 = $t0
+ local[31] = $t0
goto :if169_end
if169_else:
$s3 = 0
if169_end:
goto :if165_end
if165_else:
- $t5 = $t7
- $t7 = $s7
- $t6 = LtS($t5 $t7 )
- $t7 = $t6
- if0 $t7 goto :if176_else
+ $t0 = local[28]
+ $t1 = local[26]
+ $t0 = $t1
+ local[26] = $t1
+ local[28] = $t0
+ $t0 = local[27]
+ $t0 = $s7
+ local[27] = $t0
+ $t0 = local[32]
+ $t1 = local[28]
+ $t2 = local[27]
+ $t0 = LtS($t1 $t2 )
+ local[27] = $t2
+ local[28] = $t1
+ local[32] = $t0
+ $t0 = local[29]
+ $t1 = local[32]
+ $t0 = $t1
+ local[32] = $t1
+ local[29] = $t0
+ $t0 = local[29]
+ if0 $t0 goto :if176_else
+ local[29] = $t0
if176_body:
$s5 = $s5
- $t7 = [$s5+0]
- $t6 = [$t7+28]
+ $s2 = [$s5+0]
+ $t3 = [$s2+28]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1158,21 +1380,21 @@ if176_body:
local[12] = $t7
local[13] = $t8
$a0 = $s5
- call $t6
+ call $t3
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $t7 = $v0
- $t6 = $t7
- if0 $t6 goto :if180_else
+ $s2 = $v0
+ $t3 = $s2
+ if0 $t3 goto :if180_else
if180_body:
$s4 = $s5
$s5 = $s5
- $t6 = [$s5+0]
- $t7 = [$t6+12]
+ $t3 = [$s5+0]
+ $s2 = [$t3+12]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1180,27 +1402,37 @@ if180_body:
local[12] = $t7
local[13] = $t8
$a0 = $s5
- call $t7
+ call $s2
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $t6 = $v0
- $s5 = $t6
+ $t3 = $v0
+ $s5 = $t3
goto :if180_end
if180_else:
$s3 = 0
if180_end:
goto :if176_end
if176_else:
- $t6 = $s1
- if0 $t6 goto :if187_else
+ $t0 = local[24]
+ $t0 = $s1
+ local[24] = $t0
+ $t0 = local[24]
+ if0 $t0 goto :if187_else
+ local[24] = $t0
if187_body:
$s5 = $s5
- $t6 = [$s5+0]
- $t7 = [$t6+28]
+ $t0 = local[22]
+ $t0 = [$s5+0]
+ local[22] = $t0
+ $t0 = local[19]
+ $t1 = local[22]
+ $t0 = [$t1+28]
+ local[22] = $t1
+ local[19] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1208,19 +1440,37 @@ if187_body:
local[12] = $t7
local[13] = $t8
$a0 = $s5
- call $t7
+ $t0 = local[19]
+ $t1 = local[19]
+ call $t1
+ local[19] = $t1
+ local[19] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $t6 = $v0
- $t7 = Eq($t6 0 )
- $t6 = $t7
+ $t0 = local[23]
+ $t0 = $v0
+ local[23] = $t0
+ $t0 = local[20]
+ $t1 = local[23]
+ $t0 = Eq($t1 0 )
+ local[23] = $t1
+ local[20] = $t0
+ $t0 = local[20]
+ $t6 = $t0
+ local[20] = $t0
$s5 = $s5
- $t7 = [$s5+0]
- $t5 = [$t7+32]
+ $t0 = local[15]
+ $t0 = [$s5+0]
+ local[15] = $t0
+ $t0 = local[18]
+ $t1 = local[15]
+ $t0 = [$t1+32]
+ local[15] = $t1
+ local[18] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1228,29 +1478,61 @@ if187_body:
local[12] = $t7
local[13] = $t8
$a0 = $s5
- call $t5
- $t3 = local[8]
- $t4 = local[9]
- $t5 = local[10]
- $t6 = local[11]
- $t7 = local[12]
- $t8 = local[13]
- $t7 = $v0
- $t5 = Eq($t7 0 )
- $t7 = $t5
- $t5 = Eq(1 $t6 )
- $t6 = Eq(1 $t7 )
- $t7 = Eq($t5 $t6 )
- $t6 = $t7
- if0 $t6 goto :if188_else
+ $t0 = local[18]
+ $t1 = local[18]
+ call $t1
+ local[18] = $t1
+ local[18] = $t0
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
+ $t0 = local[16]
+ $t0 = $v0
+ local[16] = $t0
+ $t0 = local[16]
+ $t7 = Eq($t0 0 )
+ local[16] = $t0
+ $t0 = local[17]
+ $t0 = $t7
+ local[17] = $t0
+ $t4 = Eq(1 $t6 )
+ $t0 = local[17]
+ $t5 = Eq(1 $t0 )
+ local[17] = $t0
+ $t0 = local[21]
+ $t0 = Eq($t4 $t5 )
+ local[21] = $t0
+ $t0 = local[52]
+ $t1 = local[21]
+ $t0 = $t1
+ local[21] = $t1
+ local[52] = $t0
+ $t0 = local[52]
+ if0 $t0 goto :if188_else
+ local[52] = $t0
if188_body:
- $t6 = 1
+ $t0 = local[53]
+ $t0 = 1
+ local[53] = $t0
goto :if188_end
if188_else:
- $t6 = [$s6+0]
- $t7 = $s4
- $t5 = $s5
- $t6 = [$t6+56]
+ $t0 = local[39]
+ $t0 = [$s6+0]
+ local[39] = $t0
+ $t0 = local[38]
+ $t0 = $s4
+ local[38] = $t0
+ $t0 = local[47]
+ $t0 = $s5
+ local[47] = $t0
+ $t0 = local[39]
+ $t1 = local[39]
+ $t0 = [$t1+56]
+ local[39] = $t1
+ local[39] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1258,24 +1540,48 @@ if188_else:
local[12] = $t7
local[13] = $t8
$a0 = $s6
- $a1 = $t7
- $a2 = $t5
- call $t6
+ $t0 = local[38]
+ $a1 = $t0
+ local[38] = $t0
+ $t0 = local[47]
+ $a2 = $t0
+ local[47] = $t0
+ $t0 = local[39]
+ $t1 = local[39]
+ call $t1
+ local[39] = $t1
+ local[39] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s0 = $v0
- $t6 = $s0
+ $t0 = local[37]
+ $t0 = $v0
+ local[37] = $t0
+ $t0 = local[53]
+ $t1 = local[37]
+ $t0 = $t1
+ local[37] = $t1
+ local[53] = $t0
if188_end:
goto :if187_end
if187_else:
- $s0 = [$s6+0]
- $t5 = $s4
- $t7 = $s5
- $s0 = [$s0+56]
+ $t0 = local[51]
+ $t0 = [$s6+0]
+ local[51] = $t0
+ $t0 = local[49]
+ $t0 = $s4
+ local[49] = $t0
+ $t0 = local[42]
+ $t0 = $s5
+ local[42] = $t0
+ $t0 = local[51]
+ $t1 = local[51]
+ $t0 = [$t1+56]
+ local[51] = $t1
+ local[51] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1283,27 +1589,45 @@ if187_else:
local[12] = $t7
local[13] = $t8
$a0 = $s6
- $a1 = $t5
- $a2 = $t7
- call $s0
+ $t0 = local[49]
+ $a1 = $t0
+ local[49] = $t0
+ $t0 = local[42]
+ $a2 = $t0
+ local[42] = $t0
+ $t0 = local[51]
+ $t1 = local[51]
+ call $t1
+ local[51] = $t1
+ local[51] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $t6 = $v0
- $t6 = $t6
+ $t0 = local[46]
+ $t0 = $v0
+ local[46] = $t0
+ $t0 = local[53]
+ $t1 = local[46]
+ $t0 = $t1
+ local[46] = $t1
+ local[53] = $t0
if187_end:
- $s2 = 1
+ $t0 = local[14]
+ $t0 = 1
+ local[14] = $t0
$s3 = 0
if176_end:
if165_end:
$s1 = 0
goto :while160_test
while160_end:
- $s1 = $s2
- $v0 = $s1
+ $t0 = local[14]
+ $t4 = $t0
+ local[14] = $t0
+ $v0 = $t4
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -1371,8 +1695,8 @@ if211_body:
goto :if211_end
if211_else:
$s7 = $s7
- $s2 = [$s7+0]
- $s1 = [$s2+28]
+ $s1 = [$s7+0]
+ $s4 = [$s1+28]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1380,21 +1704,21 @@ if211_else:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s1
+ call $s4
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s2 = $v0
- $s1 = $s2
- if0 $s1 goto :if219_else
+ $s1 = $v0
+ $s4 = $s1
+ if0 $s4 goto :if219_else
if219_body:
- $s1 = [$s5+0]
- $s2 = $s6
- $s4 = $s7
- $s1 = [$s1+60]
+ $s4 = [$s5+0]
+ $s1 = $s6
+ $s3 = $s7
+ $s4 = [$s4+60]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1402,22 +1726,22 @@ if219_body:
local[12] = $t7
local[13] = $t8
$a0 = $s5
- $a1 = $s2
- $a2 = $s4
- call $s1
+ $a1 = $s1
+ $a2 = $s3
+ call $s4
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s3 = $v0
- $s2 = $s3
+ $s0 = $v0
+ $s2 = $s0
goto :if219_end
if219_else:
$s7 = $s7
- $s3 = [$s7+0]
- $s4 = [$s3+20]
+ $s0 = [$s7+0]
+ $s3 = [$s0+20]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1425,18 +1749,18 @@ if219_else:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s4
+ call $s3
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s3 = $v0
- $s4 = $s3
+ $s0 = $v0
+ $s3 = $s0
$s6 = $s6
- $s3 = [$s6+0]
- $s7 = [$s3+16]
+ $s0 = [$s6+0]
+ $s7 = [$s0+16]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1451,10 +1775,10 @@ if219_else:
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s3 = $v0
- $s7 = $s3
- $s3 = [$s7+0]
- $s2 = [$s3+20]
+ $s0 = $v0
+ $s7 = $s0
+ $s0 = [$s7+0]
+ $s1 = [$s0+20]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1462,19 +1786,19 @@ if219_else:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s2
+ call $s1
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s3 = $v0
- $s2 = $s3
- $s3 = [$s5+0]
- $s7 = $s4
- $s4 = $s2
- $s3 = [$s3+44]
+ $s0 = $v0
+ $s1 = $s0
+ $s0 = [$s5+0]
+ $s7 = $s3
+ $s3 = $s1
+ $s0 = [$s0+44]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1483,22 +1807,22 @@ if219_else:
local[13] = $t8
$a0 = $s5
$a1 = $s7
- $a2 = $s4
- call $s3
+ $a2 = $s3
+ call $s0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s2 = $v0
- $s4 = $s2
- if0 $s4 goto :if237_else
+ $s1 = $v0
+ $s3 = $s1
+ if0 $s3 goto :if237_else
if237_body:
$s6 = $s6
- $s4 = [$s6+0]
- $s2 = [$s4+8]
- $s4 = [$s5+104]
+ $s3 = [$s6+0]
+ $s1 = [$s3+8]
+ $s3 = [$s5+104]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1506,8 +1830,8 @@ if237_body:
local[12] = $t7
local[13] = $t8
$a0 = $s6
- $a1 = $s4
- call $s2
+ $a1 = $s3
+ call $s1
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
@@ -1518,7 +1842,7 @@ if237_body:
$s2 = $s7
$s6 = $s6
$s7 = [$s6+0]
- $s4 = [$s7+36]
+ $s3 = [$s7+36]
$s7 = 0
local[8] = $t3
local[9] = $t4
@@ -1528,21 +1852,21 @@ if237_body:
local[13] = $t8
$a0 = $s6
$a1 = $s7
- call $s4
+ call $s3
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s2 = $v0
- $s2 = $s2
+ $s1 = $v0
+ $s2 = $s1
goto :if237_end
if237_else:
$s6 = $s6
- $s2 = [$s6+0]
- $s7 = [$s2+4]
- $s2 = [$s5+104]
+ $s1 = [$s6+0]
+ $s7 = [$s1+4]
+ $s1 = [$s5+104]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1550,7 +1874,7 @@ if237_else:
local[12] = $t7
local[13] = $t8
$a0 = $s6
- $a1 = $s2
+ $a1 = $s1
call $s7
$t3 = local[8]
$t4 = local[9]
@@ -1562,7 +1886,7 @@ if237_else:
$s2 = $s5
$s6 = $s6
$s5 = [$s6+0]
- $s2 = [$s5+40]
+ $s1 = [$s5+40]
$s5 = 0
local[8] = $t3
local[9] = $t4
@@ -1572,7 +1896,7 @@ if237_else:
local[13] = $t8
$a0 = $s6
$a1 = $s5
- call $s2
+ call $s1
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
@@ -1595,7 +1919,7 @@ if211_end:
$s6 = local[6]
$s7 = local[7]
ret
-func Tree_RemoveRight [in 0, out 0, local 14]
+func Tree_RemoveRight [in 0, out 0, local 23]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -1604,13 +1928,15 @@ func Tree_RemoveRight [in 0, out 0, local 14]
local[5] = $s5
local[6] = $s6
local[7] = $s7
- $s5 = $a0
- $s6 = $a1
+ local[15] = $a0
+ local[14] = $a1
$s7 = $a2
while259_test:
$s7 = $s7
- $s4 = [$s7+0]
- $s3 = [$s4+28]
+ $s5 = [$s7+0]
+ $t0 = local[18]
+ $t0 = [$s5+28]
+ local[18] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1618,23 +1944,41 @@ while259_test:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s3
+ $t0 = local[18]
+ $t1 = local[18]
+ call $t1
+ local[18] = $t1
+ local[18] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s4 = $v0
- $s3 = $s4
- if0 $s3 goto :while259_end
+ $t0 = local[16]
+ $t0 = $v0
+ local[16] = $t0
+ $t0 = local[17]
+ $t1 = local[16]
+ $t0 = $t1
+ local[16] = $t1
+ local[17] = $t0
+ $t0 = local[17]
+ if0 $t0 goto :while259_end
+ local[17] = $t0
while259_body:
$s7 = $s7
- $s3 = [$s7+0]
- $s4 = [$s3+24]
+ $t0 = local[22]
+ $t0 = [$s7+0]
+ local[22] = $t0
+ $t0 = local[21]
+ $t1 = local[22]
+ $t0 = [$t1+24]
+ local[22] = $t1
+ local[21] = $t0
$s7 = $s7
- $s3 = [$s7+0]
- $s2 = [$s3+12]
+ $t6 = [$s7+0]
+ $s3 = [$t6+12]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1642,33 +1986,33 @@ while259_body:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s2
+ call $s3
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s3 = $v0
- $s2 = $s3
- $s3 = [$s2+0]
- $s1 = [$s3+20]
+ $t5 = $v0
+ $s4 = $t5
+ $s1 = [$s4+0]
+ $s2 = [$s1+20]
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s2
- call $s1
+ $a0 = $s4
+ call $s2
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s3 = $v0
- $s1 = $s3
+ $s0 = $v0
+ $t3 = $s0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1676,20 +2020,32 @@ while259_body:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- $a1 = $s1
- call $s4
+ $a1 = $t3
+ $t0 = local[21]
+ $t1 = local[21]
+ call $t1
+ local[21] = $t1
+ local[21] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s3 = $v0
- $s1 = $s3
- $s6 = $s7
+ $t0 = local[19]
+ $t0 = $v0
+ local[19] = $t0
+ $t0 = local[20]
+ $t1 = local[19]
+ $t0 = $t1
+ local[19] = $t1
+ local[20] = $t0
+ $t0 = local[14]
+ $t0 = $s7
+ local[14] = $t0
$s7 = $s7
- $s1 = [$s7+0]
- $s3 = [$s1+12]
+ $s6 = [$s7+0]
+ $t7 = [$s6+12]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1697,61 +2053,83 @@ while259_body:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s3
+ call $t7
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s1 = $v0
- $s7 = $s1
+ $t4 = $v0
+ $s7 = $t4
goto :while259_test
while259_end:
- $s6 = $s6
- $s7 = [$s6+0]
- $s1 = [$s7+4]
- $s7 = [$s5+104]
+ $t0 = local[14]
+ $t1 = local[14]
+ $t0 = $t1
+ local[14] = $t1
+ local[14] = $t0
+ $t0 = local[14]
+ $s5 = [$t0+0]
+ local[14] = $t0
+ $s6 = [$s5+4]
+ $t0 = local[15]
+ $s5 = [$t0+104]
+ local[15] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s6
- $a1 = $s7
- call $s1
+ $t0 = local[14]
+ $a0 = $t0
+ local[14] = $t0
+ $a1 = $s5
+ call $s6
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s5 = $v0
- $s1 = $s5
- $s6 = $s6
- $s5 = [$s6+0]
- $s7 = [$s5+40]
- $s5 = 0
+ $t3 = $v0
+ $t0 = local[20]
+ $t0 = $t3
+ local[20] = $t0
+ $t0 = local[14]
+ $t1 = local[14]
+ $t0 = $t1
+ local[14] = $t1
+ local[14] = $t0
+ $t0 = local[14]
+ $t3 = [$t0+0]
+ local[14] = $t0
+ $s5 = [$t3+40]
+ $t3 = 0
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[14]
+ $a0 = $t0
+ local[14] = $t0
+ $a1 = $t3
+ call $s5
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s1 = $v0
- $s1 = $s1
- $s1 = 1
- $v0 = $s1
+ $s6 = $v0
+ $t0 = local[20]
+ $t0 = $s6
+ local[20] = $t0
+ $s6 = 1
+ $v0 = $s6
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -1761,7 +2139,7 @@ while259_end:
$s6 = local[6]
$s7 = local[7]
ret
-func Tree_RemoveLeft [in 0, out 0, local 14]
+func Tree_RemoveLeft [in 0, out 0, local 23]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -1770,13 +2148,15 @@ func Tree_RemoveLeft [in 0, out 0, local 14]
local[5] = $s5
local[6] = $s6
local[7] = $s7
- $s5 = $a0
- $s6 = $a1
+ local[15] = $a0
+ local[14] = $a1
$s7 = $a2
while287_test:
$s7 = $s7
- $s4 = [$s7+0]
- $s3 = [$s4+32]
+ $s5 = [$s7+0]
+ $t0 = local[18]
+ $t0 = [$s5+32]
+ local[18] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1784,23 +2164,41 @@ while287_test:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s3
+ $t0 = local[18]
+ $t1 = local[18]
+ call $t1
+ local[18] = $t1
+ local[18] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s4 = $v0
- $s3 = $s4
- if0 $s3 goto :while287_end
+ $t0 = local[16]
+ $t0 = $v0
+ local[16] = $t0
+ $t0 = local[17]
+ $t1 = local[16]
+ $t0 = $t1
+ local[16] = $t1
+ local[17] = $t0
+ $t0 = local[17]
+ if0 $t0 goto :while287_end
+ local[17] = $t0
while287_body:
$s7 = $s7
- $s3 = [$s7+0]
- $s4 = [$s3+24]
+ $t0 = local[22]
+ $t0 = [$s7+0]
+ local[22] = $t0
+ $t0 = local[21]
+ $t1 = local[22]
+ $t0 = [$t1+24]
+ local[22] = $t1
+ local[21] = $t0
$s7 = $s7
- $s3 = [$s7+0]
- $s2 = [$s3+16]
+ $t6 = [$s7+0]
+ $s3 = [$t6+16]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1808,33 +2206,33 @@ while287_body:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s2
+ call $s3
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s3 = $v0
- $s2 = $s3
- $s3 = [$s2+0]
- $s1 = [$s3+20]
+ $t5 = $v0
+ $s4 = $t5
+ $s1 = [$s4+0]
+ $s2 = [$s1+20]
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s2
- call $s1
+ $a0 = $s4
+ call $s2
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s3 = $v0
- $s1 = $s3
+ $s0 = $v0
+ $t3 = $s0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1842,20 +2240,32 @@ while287_body:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- $a1 = $s1
- call $s4
+ $a1 = $t3
+ $t0 = local[21]
+ $t1 = local[21]
+ call $t1
+ local[21] = $t1
+ local[21] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s3 = $v0
- $s1 = $s3
- $s6 = $s7
+ $t0 = local[19]
+ $t0 = $v0
+ local[19] = $t0
+ $t0 = local[20]
+ $t1 = local[19]
+ $t0 = $t1
+ local[19] = $t1
+ local[20] = $t0
+ $t0 = local[14]
+ $t0 = $s7
+ local[14] = $t0
$s7 = $s7
- $s1 = [$s7+0]
- $s3 = [$s1+16]
+ $s6 = [$s7+0]
+ $t7 = [$s6+16]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1863,61 +2273,83 @@ while287_body:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s3
+ call $t7
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s1 = $v0
- $s7 = $s1
+ $t4 = $v0
+ $s7 = $t4
goto :while287_test
while287_end:
- $s6 = $s6
- $s7 = [$s6+0]
- $s1 = [$s7+8]
- $s7 = [$s5+104]
+ $t0 = local[14]
+ $t1 = local[14]
+ $t0 = $t1
+ local[14] = $t1
+ local[14] = $t0
+ $t0 = local[14]
+ $s5 = [$t0+0]
+ local[14] = $t0
+ $s6 = [$s5+8]
+ $t0 = local[15]
+ $s5 = [$t0+104]
+ local[15] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s6
- $a1 = $s7
- call $s1
+ $t0 = local[14]
+ $a0 = $t0
+ local[14] = $t0
+ $a1 = $s5
+ call $s6
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s5 = $v0
- $s1 = $s5
- $s6 = $s6
- $s5 = [$s6+0]
- $s7 = [$s5+36]
- $s5 = 0
+ $t3 = $v0
+ $t0 = local[20]
+ $t0 = $t3
+ local[20] = $t0
+ $t0 = local[14]
+ $t1 = local[14]
+ $t0 = $t1
+ local[14] = $t1
+ local[14] = $t0
+ $t0 = local[14]
+ $t3 = [$t0+0]
+ local[14] = $t0
+ $s5 = [$t3+36]
+ $t3 = 0
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[14]
+ $a0 = $t0
+ local[14] = $t0
+ $a1 = $t3
+ call $s5
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s1 = $v0
- $s1 = $s1
- $s1 = 1
- $v0 = $s1
+ $s6 = $v0
+ $t0 = local[20]
+ $t0 = $s6
+ local[20] = $t0
+ $s6 = 1
+ $v0 = $s6
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -1927,7 +2359,7 @@ while287_end:
$s6 = local[6]
$s7 = local[7]
ret
-func Tree_Search [in 0, out 0, local 14]
+func Tree_Search [in 0, out 0, local 27]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -1940,14 +2372,22 @@ func Tree_Search [in 0, out 0, local 14]
$s7 = $a1
$s5 = $s6
$s6 = 1
- $s4 = 0
+ $t0 = local[14]
+ $t0 = 0
+ local[14] = $t0
while315_test:
$s3 = $s6
if0 $s3 goto :while315_end
while315_body:
$s5 = $s5
- $s3 = [$s5+0]
- $s2 = [$s3+20]
+ $t0 = local[24]
+ $t0 = [$s5+0]
+ local[24] = $t0
+ $t0 = local[23]
+ $t1 = local[24]
+ $t0 = [$t1+20]
+ local[24] = $t1
+ local[23] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1955,24 +2395,58 @@ while315_body:
local[12] = $t7
local[13] = $t8
$a0 = $s5
- call $s2
- $t3 = local[8]
- $t4 = local[9]
- $t5 = local[10]
- $t6 = local[11]
- $t7 = local[12]
- $t8 = local[13]
- $s3 = $v0
- $s2 = $s3
- $s3 = $s7
- $s1 = $s2
- $s0 = LtS($s3 $s1 )
- $s1 = $s0
- if0 $s1 goto :if320_else
+ $t0 = local[23]
+ $t1 = local[23]
+ call $t1
+ local[23] = $t1
+ local[23] = $t0
+ $t3 = local[8]
+ $t4 = local[9]
+ $t5 = local[10]
+ $t6 = local[11]
+ $t7 = local[12]
+ $t8 = local[13]
+ $t0 = local[21]
+ $t0 = $v0
+ local[21] = $t0
+ $t0 = local[22]
+ $t1 = local[21]
+ $t0 = $t1
+ local[21] = $t1
+ local[22] = $t0
+ $t0 = local[20]
+ $t0 = $s7
+ local[20] = $t0
+ $t0 = local[19]
+ $t1 = local[22]
+ $t0 = $t1
+ local[22] = $t1
+ local[19] = $t0
+ $t0 = local[18]
+ $t1 = local[20]
+ $t2 = local[19]
+ $t0 = LtS($t1 $t2 )
+ local[19] = $t2
+ local[20] = $t1
+ local[18] = $t0
+ $t0 = local[15]
+ $t1 = local[18]
+ $t0 = $t1
+ local[18] = $t1
+ local[15] = $t0
+ $t0 = local[15]
+ if0 $t0 goto :if320_else
+ local[15] = $t0
if320_body:
$s5 = $s5
- $s1 = [$s5+0]
- $s0 = [$s1+32]
+ $t0 = local[17]
+ $t0 = [$s5+0]
+ local[17] = $t0
+ $t0 = local[16]
+ $t1 = local[17]
+ $t0 = [$t1+32]
+ local[17] = $t1
+ local[16] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -1980,20 +2454,32 @@ if320_body:
local[12] = $t7
local[13] = $t8
$a0 = $s5
- call $s0
+ $t0 = local[16]
+ $t1 = local[16]
+ call $t1
+ local[16] = $t1
+ local[16] = $t0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s1 = $v0
- $s0 = $s1
- if0 $s0 goto :if324_else
+ $t0 = local[25]
+ $t0 = $v0
+ local[25] = $t0
+ $t0 = local[25]
+ $t4 = $t0
+ local[25] = $t0
+ if0 $t4 goto :if324_else
if324_body:
$s5 = $s5
- $s0 = [$s5+0]
- $s1 = [$s0+16]
+ $t0 = local[26]
+ $t0 = [$s5+0]
+ local[26] = $t0
+ $t0 = local[26]
+ $s0 = [$t0+16]
+ local[26] = $t0
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -2001,30 +2487,32 @@ if324_body:
local[12] = $t7
local[13] = $t8
$a0 = $s5
- call $s1
+ call $s0
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s0 = $v0
- $s5 = $s0
+ $t5 = $v0
+ $s5 = $t5
goto :if324_end
if324_else:
$s6 = 0
if324_end:
goto :if320_end
if320_else:
- $s0 = $s2
- $s2 = $s7
- $s1 = LtS($s0 $s2 )
+ $t0 = local[22]
+ $t6 = $t0
+ local[22] = $t0
+ $t7 = $s7
+ $s1 = LtS($t6 $t7 )
$s2 = $s1
if0 $s2 goto :if331_else
if331_body:
$s5 = $s5
- $s2 = [$s5+0]
- $s1 = [$s2+28]
+ $s4 = [$s5+0]
+ $t3 = [$s4+28]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -2032,20 +2520,20 @@ if331_body:
local[12] = $t7
local[13] = $t8
$a0 = $s5
- call $s1
+ call $t3
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s2 = $v0
- $s1 = $s2
- if0 $s1 goto :if335_else
+ $s4 = $v0
+ $t3 = $s4
+ if0 $t3 goto :if335_else
if335_body:
$s5 = $s5
- $s1 = [$s5+0]
- $s2 = [$s1+12]
+ $t3 = [$s5+0]
+ $s4 = [$t3+12]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -2053,29 +2541,33 @@ if335_body:
local[12] = $t7
local[13] = $t8
$a0 = $s5
- call $s2
+ call $s4
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s1 = $v0
- $s5 = $s1
+ $t3 = $v0
+ $s5 = $t3
goto :if335_end
if335_else:
$s6 = 0
if335_end:
goto :if331_end
if331_else:
- $s4 = 1
+ $t0 = local[14]
+ $t0 = 1
+ local[14] = $t0
$s6 = 0
if331_end:
if320_end:
goto :while315_test
while315_end:
- $s6 = $s4
- $v0 = $s6
+ $t0 = local[14]
+ $t4 = $t0
+ local[14] = $t0
+ $v0 = $t4
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -2202,8 +2694,8 @@ if347_else:
$s3 = 1
if347_end:
$s7 = $s7
- $s3 = [$s7+0]
- $s5 = [$s3+20]
+ $s5 = [$s7+0]
+ $s4 = [$s5+20]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -2211,19 +2703,19 @@ if347_end:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s5
+ call $s4
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s3 = $v0
- $s5 = $s3
- PrintIntS($s5 )
+ $s5 = $v0
+ $s4 = $s5
+ PrintIntS($s4 )
$s7 = $s7
- $s5 = [$s7+0]
- $s3 = [$s5+28]
+ $s4 = [$s7+0]
+ $s5 = [$s4+28]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -2231,21 +2723,21 @@ if347_end:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s3
+ call $s5
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s5 = $v0
- $s3 = $s5
- if0 $s3 goto :if361_else
+ $s4 = $v0
+ $s5 = $s4
+ if0 $s5 goto :if361_else
if361_body:
- $s3 = [$s6+0]
+ $s5 = [$s6+0]
$s7 = $s7
- $s5 = [$s7+0]
- $s4 = [$s5+12]
+ $s4 = [$s7+0]
+ $s2 = [$s4+12]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -2253,16 +2745,16 @@ if361_body:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s4
+ call $s2
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s5 = $v0
- $s4 = $s5
- $s3 = [$s3+76]
+ $s4 = $v0
+ $s2 = $s4
+ $s5 = [$s5+76]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -2270,22 +2762,22 @@ if361_body:
local[12] = $t7
local[13] = $t8
$a0 = $s6
- $a1 = $s4
- call $s3
+ $a1 = $s2
+ call $s5
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s5 = $v0
- $s3 = $s5
+ $s4 = $v0
+ $s3 = $s4
goto :if361_end
if361_else:
$s3 = 1
if361_end:
- $s5 = 1
- $v0 = $s5
+ $s3 = 1
+ $v0 = $s3
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -2417,8 +2909,8 @@ if378_else:
$s5 = 0
if378_end:
$s7 = $s7
- $s5 = [$s7+0]
- $s2 = [$s5+32]
+ $s2 = [$s7+0]
+ $s3 = [$s2+32]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -2426,20 +2918,20 @@ if378_end:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s2
+ call $s3
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s5 = $v0
- $s2 = $s5
- if0 $s2 goto :if389_else
+ $s2 = $v0
+ $s3 = $s2
+ if0 $s3 goto :if389_else
if389_body:
$s7 = $s7
- $s2 = [$s7+0]
- $s5 = [$s2+16]
+ $s3 = [$s7+0]
+ $s2 = [$s3+16]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -2447,27 +2939,27 @@ if389_body:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s5
+ call $s2
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s2 = $v0
- [$s6+4] = $s2
- $s2 = [$s6+4]
- $s5 = [$s2+0]
- $s7 = [$s5+80]
- $s5 = $s6
+ $s3 = $v0
+ [$s6+4] = $s3
+ $s3 = [$s6+4]
+ $s2 = [$s3+0]
+ $s7 = [$s2+80]
+ $s2 = $s6
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s2
- $a1 = $s5
+ $a0 = $s3
+ $a1 = $s2
call $s7
$t3 = local[8]
$t4 = local[9]
@@ -2481,8 +2973,8 @@ if389_body:
if389_else:
$s5 = 0
if389_end:
- $s6 = 0
- $v0 = $s6
+ $s5 = 0
+ $v0 = $s5
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
@@ -2569,8 +3061,8 @@ if401_else:
$s5 = 0
if401_end:
$s7 = $s7
- $s5 = [$s7+0]
- $s2 = [$s5+20]
+ $s2 = [$s7+0]
+ $s3 = [$s2+20]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -2578,19 +3070,19 @@ if401_end:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s2
+ call $s3
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s5 = $v0
- $s2 = $s5
- PrintIntS($s2 )
+ $s2 = $v0
+ $s3 = $s2
+ PrintIntS($s3 )
$s7 = $s7
- $s2 = [$s7+0]
- $s5 = [$s2+32]
+ $s3 = [$s7+0]
+ $s2 = [$s3+32]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -2598,20 +3090,20 @@ if401_end:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s5
+ call $s2
$t3 = local[8]
$t4 = local[9]
$t5 = local[10]
$t6 = local[11]
$t7 = local[12]
$t8 = local[13]
- $s2 = $v0
- $s5 = $s2
- if0 $s5 goto :if416_else
+ $s3 = $v0
+ $s2 = $s3
+ if0 $s2 goto :if416_else
if416_body:
$s7 = $s7
- $s5 = [$s7+0]
- $s2 = [$s5+16]
+ $s2 = [$s7+0]
+ $s3 = [$s2+16]
local[8] = $t3
local[9] = $t4
local[10] = $t5
@@ -2619,27 +3111,27 @@ if416_body:
local[12] = $t7
local[13] = $t8
$a0 = $s7
- call $s2
+ call $s3
$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]
- $s2 = [$s5+0]
- $s7 = [$s2+80]
- $s2 = $s6
+ $s2 = $v0
+ [$s6+8] = $s2
+ $s2 = [$s6+8]
+ $s3 = [$s2+0]
+ $s7 = [$s3+80]
+ $s3 = $s6
local[8] = $t3
local[9] = $t4
local[10] = $t5
local[11] = $t6
local[12] = $t7
local[13] = $t8
- $a0 = $s5
- $a1 = $s2
+ $a0 = $s2
+ $a1 = $s3
call $s7
$t3 = local[8]
$t4 = local[9]
@@ -2653,8 +3145,8 @@ if416_body:
if416_else:
$s5 = 0
if416_end:
- $s6 = 0
- $v0 = $s6
+ $s5 = 0
+ $v0 = $s5
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
diff --git a/output/ex37.vaporm b/output/ex37.vaporm
index 9f7c8df..d3dfb82 100644
--- a/output/ex37.vaporm
+++ b/output/ex37.vaporm
@@ -54,19 +54,19 @@ func A_foo [in 0, out 0, local 14]
$s7 = 0
while5_test:
$s6 = $s7
- $s5 = 10
- $s4 = LtS($s6 $s5 )
- $s5 = $s4
- if0 $s5 goto :while5_end
+ $s4 = 10
+ $s5 = LtS($s6 $s4 )
+ $s2 = $s5
+ if0 $s2 goto :while5_end
while5_body:
- $s5 = $s7
- $s4 = 1
- $s6 = Add($s5 $s4 )
- $s7 = $s6
+ $s0 = $s7
+ $s1 = 1
+ $s3 = Add($s0 $s1 )
+ $s7 = $s3
goto :while5_test
while5_end:
- $s6 = $s7
- $v0 = $s6
+ $s0 = $s7
+ $v0 = $s0
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
diff --git a/output/ex38.vaporm b/output/ex38.vaporm
index 9f7c8df..d3dfb82 100644
--- a/output/ex38.vaporm
+++ b/output/ex38.vaporm
@@ -54,19 +54,19 @@ func A_foo [in 0, out 0, local 14]
$s7 = 0
while5_test:
$s6 = $s7
- $s5 = 10
- $s4 = LtS($s6 $s5 )
- $s5 = $s4
- if0 $s5 goto :while5_end
+ $s4 = 10
+ $s5 = LtS($s6 $s4 )
+ $s2 = $s5
+ if0 $s2 goto :while5_end
while5_body:
- $s5 = $s7
- $s4 = 1
- $s6 = Add($s5 $s4 )
- $s7 = $s6
+ $s0 = $s7
+ $s1 = 1
+ $s3 = Add($s0 $s1 )
+ $s7 = $s3
goto :while5_test
while5_end:
- $s6 = $s7
- $v0 = $s6
+ $s0 = $s7
+ $v0 = $s0
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
diff --git a/output/ex41.vaporm b/output/ex41.vaporm
index 35a90af..54baf4f 100644
--- a/output/ex41.vaporm
+++ b/output/ex41.vaporm
@@ -41,7 +41,7 @@ func Main [in 0, out 0, local 14]
$s6 = local[6]
$s7 = local[7]
ret
-func A_foo [in 0, out 0, local 14]
+func A_foo [in 0, out 0, local 17]
local[0] = $s0
local[1] = $s1
local[2] = $s2
@@ -52,35 +52,53 @@ func A_foo [in 0, out 0, local 14]
local[7] = $s7
$s6 = $a0
$s7 = 0
- $s6 = 0
+ $t0 = local[14]
+ $t0 = 0
+ local[14] = $t0
while5_test:
$s5 = $s7
- $s4 = 10
- $s3 = LtS($s5 $s4 )
- $s4 = $s3
- if0 $s4 goto :while5_end
+ $t7 = 10
+ $s1 = LtS($s5 $t7 )
+ $s0 = $s1
+ if0 $s0 goto :while5_end
while5_body:
while10_test:
- $s4 = $s6
- $s3 = 100
- $s5 = LtS($s4 $s3 )
- $s3 = $s5
- if0 $s3 goto :while10_end
+ $t0 = local[14]
+ $t6 = $t0
+ local[14] = $t0
+ $t0 = local[15]
+ $t0 = 100
+ local[15] = $t0
+ $t0 = local[15]
+ $t5 = LtS($t6 $t0 )
+ local[15] = $t0
+ $t0 = local[16]
+ $t0 = $t5
+ local[16] = $t0
+ $t0 = local[16]
+ if0 $t0 goto :while10_end
+ local[16] = $t0
while10_body:
- $s3 = $s6
- $s5 = 1
- $s4 = Add($s3 $s5 )
- $s6 = $s4
+ $t0 = local[14]
+ $t4 = $t0
+ local[14] = $t0
+ $t3 = 1
+ $s6 = Add($t4 $t3 )
+ $t0 = local[14]
+ $t0 = $s6
+ local[14] = $t0
goto :while10_test
while10_end:
$s4 = $s7
- $s5 = 1
- $s3 = Add($s4 $s5 )
+ $s2 = 1
+ $s3 = Add($s4 $s2 )
$s7 = $s3
goto :while5_test
while5_end:
- $s7 = $s6
- $v0 = $s7
+ $t0 = local[14]
+ $t5 = $t0
+ local[14] = $t0
+ $v0 = $t5
$s0 = local[0]
$s1 = local[1]
$s2 = local[2]
diff --git a/vaporize/RegisterAlloc.java b/vaporize/RegisterAlloc.java
index 100d6c4..3afdb02 100644
--- a/vaporize/RegisterAlloc.java
+++ b/vaporize/RegisterAlloc.java
@@ -70,10 +70,16 @@ public class RegisterAlloc {
}
private void spillAtInterval(LIRVar interval) {
- // You can make this spill optimally (the sarkar linearscan algorithm)
+ this.intervals.addSpilledNum();
+ LIRVar spill = this.active.last();
+ if (spill.getLastUse() > interval.getLastUse()) {
+ interval.assignRegister(spill.getAssignedRegister());
+ this.active.add(interval);
+ this.active.remove(spill);
+ interval = spill;
+ }
MinimalLogger.severe(String.format("Ran out of free registers, had to spill %s!",
interval.toString()));
- this.intervals.addSpilledNum();
interval.assignRegister(String.format("local[%d]", this.spill_start++));
}