diff options
-rw-r--r-- | cfg/CFGNode.java | 10 | ||||
-rw-r--r-- | cfg/ControlFlowGraph.java | 23 | ||||
-rw-r--r-- | output/BinaryTree.vaporm | 936 | ||||
-rw-r--r-- | output/BubbleSort.vaporm | 186 | ||||
-rw-r--r-- | output/LinearSearch.vaporm | 112 | ||||
-rw-r--r-- | output/LinkedList.vaporm | 650 | ||||
-rw-r--r-- | output/QuickSort.vaporm | 80 | ||||
-rw-r--r-- | output/TreeVisitor.vaporm | 1046 | ||||
-rw-r--r-- | output/ex41.vaporm | 4 | ||||
-rw-r--r-- | output/ex45.vaporm | 14 | ||||
-rw-r--r-- | output/ex47.vaporm | 20 | ||||
-rw-r--r-- | vaporize/LIRDict.java | 49 | ||||
-rw-r--r-- | vaporize/LIRVisitor.java | 78 | ||||
-rw-r--r-- | vaporize/VaporizeVisitor.java | 3 |
14 files changed, 1629 insertions, 1582 deletions
diff --git a/cfg/CFGNode.java b/cfg/CFGNode.java index 5ce39b5..41f2c9c 100644 --- a/cfg/CFGNode.java +++ b/cfg/CFGNode.java @@ -10,13 +10,15 @@ public class CFGNode { private Node instruction; private ArrayList<CFGNode> sources; private ArrayList<CFGNode> dests; - protected Set<String> reaching; - protected Set<String> liveness; + public Set<String> defs; + public Set<String> reaching; + public Set<String> liveness; public CFGNode(Node instruction) { this.instruction = instruction; this.sources = new ArrayList<>(); this.dests = new ArrayList<>(); + this.defs = new HashSet<>(); this.reaching = new HashSet<>(); this.liveness = new HashSet<>(); } @@ -70,4 +72,8 @@ public class CFGNode { return Collections.unmodifiableSet(this.liveness); } + public Set<String> getDefinitions() { + return Collections.unmodifiableSet(this.defs); + } + } diff --git a/cfg/ControlFlowGraph.java b/cfg/ControlFlowGraph.java index c3943a0..49cd2fc 100644 --- a/cfg/ControlFlowGraph.java +++ b/cfg/ControlFlowGraph.java @@ -80,6 +80,14 @@ public class ControlFlowGraph { source.addDest(dest); dest.addSource(source); + for (String var : source.getReaching()) { + dest.reaching.add(var); + } + for (String var : dest.getLiveness()) { + if (!source.getDefinitions().contains(var)) + source.liveness.add(var); + } + ret += ";"; } else { MinimalLogger.info(String.format("Skipping duplicate edge for %s", @@ -89,22 +97,19 @@ public class ControlFlowGraph { return ret; } - public void addReaching(CFGNode n, String s) { - MinimalLogger.info(String.format("Def \"%s\" at %s", - s, - n.toString())); + public void addDefinition(CFGNode n, String s) { + n.defs.add(s); n.reaching.add(s); } - public void addLiveness(CFGNode n, String s) { + public void addReference(CFGNode n, String s) { if (this.isKnownVar(s)) { - MinimalLogger.info(String.format("Use \"%s\" at %s", + MinimalLogger.info(String.format("\"%s\" referenced at %s", s, n.toString())); + n.reaching.add(s); n.liveness.add(s); - } else - MinimalLogger.info(String.format("Use \"%s\" not a known variable!", - s)); + } } public ArrayList<CFGNode> getNodes() { diff --git a/output/BinaryTree.vaporm b/output/BinaryTree.vaporm index 2a361a9..f56eb3d 100644 --- a/output/BinaryTree.vaporm +++ b/output/BinaryTree.vaporm @@ -108,36 +108,8 @@ func BT_Start [in 0, out 0, local 17] $t8 = local[16] $s6 = $s4 $s7 = $s7 - $s4 = [$s7+0] - $s5 = [$s4+72] - local[8] = $t0 - local[9] = $t1 - local[10] = $t2 - local[11] = $t3 - local[12] = $t4 - local[13] = $t5 - local[14] = $t6 - local[15] = $t7 - local[16] = $t8 - $a0 = $s7 - call $s5 - $s4 = $v0 - $t0 = local[8] - $t1 = local[9] - $t2 = local[10] - $t3 = local[11] - $t4 = local[12] - $t5 = local[13] - $t6 = local[14] - $t7 = local[15] - $t8 = local[16] - $s6 = $s4 - $s4 = 100000000 - PrintIntS($s4 ) - $s7 = $s7 - $s4 = [$s7+0] - $s5 = [$s4+48] - $s4 = 8 + $s6 = [$s7+0] + $s4 = [$s6+72] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -148,9 +120,8 @@ func BT_Start [in 0, out 0, local 17] local[15] = $t7 local[16] = $t8 $a0 = $s7 - $a1 = $s4 - call $s5 - $s3 = $v0 + call $s4 + $s6 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -160,10 +131,13 @@ func BT_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s6 = $s3 + $s6 = $s6 + $s6 = 100000000 + PrintIntS($s6 ) $s7 = $s7 - $s3 = [$s7+0] - $s4 = [$s3+72] + $s6 = [$s7+0] + $s4 = [$s6+48] + $s6 = 8 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -174,8 +148,9 @@ func BT_Start [in 0, out 0, local 17] local[15] = $t7 local[16] = $t8 $a0 = $s7 + $a1 = $s6 call $s4 - $s3 = $v0 + $s5 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -185,11 +160,10 @@ func BT_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s6 = $s3 + $s6 = $s5 $s7 = $s7 - $s3 = [$s7+0] - $s4 = [$s3+48] - $s3 = 24 + $s5 = [$s7+0] + $s6 = [$s5+72] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -200,8 +174,7 @@ func BT_Start [in 0, out 0, local 17] local[15] = $t7 local[16] = $t8 $a0 = $s7 - $a1 = $s3 - call $s4 + call $s6 $s5 = $v0 $t0 = local[8] $t1 = local[9] @@ -215,8 +188,8 @@ func BT_Start [in 0, out 0, local 17] $s6 = $s5 $s7 = $s7 $s5 = [$s7+0] - $s3 = [$s5+48] - $s5 = 4 + $s6 = [$s5+48] + $s5 = 24 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -228,7 +201,7 @@ func BT_Start [in 0, out 0, local 17] local[16] = $t8 $a0 = $s7 $a1 = $s5 - call $s3 + call $s6 $s4 = $v0 $t0 = local[8] $t1 = local[9] @@ -243,7 +216,7 @@ func BT_Start [in 0, out 0, local 17] $s7 = $s7 $s4 = [$s7+0] $s5 = [$s4+48] - $s4 = 12 + $s4 = 4 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -256,7 +229,7 @@ func BT_Start [in 0, out 0, local 17] $a0 = $s7 $a1 = $s4 call $s5 - $s3 = $v0 + $s6 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -266,11 +239,11 @@ func BT_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s6 = $s3 + $s6 = $s6 $s7 = $s7 - $s3 = [$s7+0] - $s4 = [$s3+48] - $s3 = 20 + $s6 = [$s7+0] + $s4 = [$s6+48] + $s6 = 12 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -281,7 +254,7 @@ func BT_Start [in 0, out 0, local 17] local[15] = $t7 local[16] = $t8 $a0 = $s7 - $a1 = $s3 + $a1 = $s6 call $s4 $s5 = $v0 $t0 = local[8] @@ -296,8 +269,8 @@ func BT_Start [in 0, out 0, local 17] $s6 = $s5 $s7 = $s7 $s5 = [$s7+0] - $s3 = [$s5+48] - $s5 = 28 + $s6 = [$s5+48] + $s5 = 20 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -309,7 +282,7 @@ func BT_Start [in 0, out 0, local 17] local[16] = $t8 $a0 = $s7 $a1 = $s5 - call $s3 + call $s6 $s4 = $v0 $t0 = local[8] $t1 = local[9] @@ -324,7 +297,7 @@ func BT_Start [in 0, out 0, local 17] $s7 = $s7 $s4 = [$s7+0] $s5 = [$s4+48] - $s4 = 14 + $s4 = 28 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -337,7 +310,7 @@ func BT_Start [in 0, out 0, local 17] $a0 = $s7 $a1 = $s4 call $s5 - $s3 = $v0 + $s6 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -347,10 +320,11 @@ func BT_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s6 = $s3 + $s6 = $s6 $s7 = $s7 - $s3 = [$s7+0] - $s4 = [$s3+72] + $s6 = [$s7+0] + $s4 = [$s6+48] + $s6 = 14 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -361,8 +335,9 @@ func BT_Start [in 0, out 0, local 17] local[15] = $t7 local[16] = $t8 $a0 = $s7 + $a1 = $s6 call $s4 - $s3 = $v0 + $s5 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -372,11 +347,10 @@ func BT_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s6 = $s3 + $s6 = $s5 $s7 = $s7 - $s3 = [$s7+0] - $s4 = [$s3+68] - $s3 = 24 + $s5 = [$s7+0] + $s6 = [$s5+72] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -387,8 +361,7 @@ func BT_Start [in 0, out 0, local 17] local[15] = $t7 local[16] = $t8 $a0 = $s7 - $a1 = $s3 - call $s4 + call $s6 $s5 = $v0 $t0 = local[8] $t1 = local[9] @@ -399,12 +372,11 @@ func BT_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s3 = $s5 - PrintIntS($s3 ) + $s6 = $s5 $s7 = $s7 - $s3 = [$s7+0] - $s5 = [$s3+68] - $s3 = 12 + $s5 = [$s7+0] + $s6 = [$s5+68] + $s5 = 24 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -415,8 +387,8 @@ func BT_Start [in 0, out 0, local 17] local[15] = $t7 local[16] = $t8 $a0 = $s7 - $a1 = $s3 - call $s5 + $a1 = $s5 + call $s6 $s4 = $v0 $t0 = local[8] $t1 = local[9] @@ -427,12 +399,12 @@ func BT_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s3 = $s4 - PrintIntS($s3 ) + $s5 = $s4 + PrintIntS($s5 ) $s7 = $s7 - $s3 = [$s7+0] - $s4 = [$s3+68] - $s3 = 16 + $s5 = [$s7+0] + $s4 = [$s5+68] + $s5 = 12 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -443,9 +415,9 @@ func BT_Start [in 0, out 0, local 17] local[15] = $t7 local[16] = $t8 $a0 = $s7 - $a1 = $s3 + $a1 = $s5 call $s4 - $s5 = $v0 + $s6 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -455,12 +427,12 @@ func BT_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s3 = $s5 - PrintIntS($s3 ) + $s5 = $s6 + PrintIntS($s5 ) $s7 = $s7 - $s3 = [$s7+0] - $s5 = [$s3+68] - $s3 = 50 + $s5 = [$s7+0] + $s6 = [$s5+68] + $s5 = 16 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -471,8 +443,8 @@ func BT_Start [in 0, out 0, local 17] local[15] = $t7 local[16] = $t8 $a0 = $s7 - $a1 = $s3 - call $s5 + $a1 = $s5 + call $s6 $s4 = $v0 $t0 = local[8] $t1 = local[9] @@ -483,12 +455,12 @@ func BT_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s3 = $s4 - PrintIntS($s3 ) + $s5 = $s4 + PrintIntS($s5 ) $s7 = $s7 - $s3 = [$s7+0] - $s4 = [$s3+68] - $s3 = 12 + $s5 = [$s7+0] + $s4 = [$s5+68] + $s5 = 50 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -499,9 +471,9 @@ func BT_Start [in 0, out 0, local 17] local[15] = $t7 local[16] = $t8 $a0 = $s7 - $a1 = $s3 + $a1 = $s5 call $s4 - $s5 = $v0 + $s6 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -511,12 +483,12 @@ func BT_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s3 = $s5 - PrintIntS($s3 ) + $s5 = $s6 + PrintIntS($s5 ) $s7 = $s7 - $s3 = [$s7+0] - $s5 = [$s3+52] - $s3 = 12 + $s5 = [$s7+0] + $s6 = [$s5+68] + $s5 = 12 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -527,8 +499,8 @@ func BT_Start [in 0, out 0, local 17] local[15] = $t7 local[16] = $t8 $a0 = $s7 - $a1 = $s3 - call $s5 + $a1 = $s5 + call $s6 $s4 = $v0 $t0 = local[8] $t1 = local[9] @@ -539,10 +511,12 @@ func BT_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s6 = $s4 + $s5 = $s4 + PrintIntS($s5 ) $s7 = $s7 - $s4 = [$s7+0] - $s3 = [$s4+72] + $s5 = [$s7+0] + $s4 = [$s5+52] + $s5 = 12 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -553,8 +527,9 @@ func BT_Start [in 0, out 0, local 17] local[15] = $t7 local[16] = $t8 $a0 = $s7 - call $s3 - $s4 = $v0 + $a1 = $s5 + call $s4 + $s6 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -564,11 +539,10 @@ func BT_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s6 = $s4 + $s6 = $s6 $s7 = $s7 - $s4 = [$s7+0] - $s6 = [$s4+68] - $s4 = 12 + $s6 = [$s7+0] + $s5 = [$s6+72] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -579,9 +553,8 @@ func BT_Start [in 0, out 0, local 17] local[15] = $t7 local[16] = $t8 $a0 = $s7 - $a1 = $s4 - call $s6 - $s3 = $v0 + call $s5 + $s6 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -591,10 +564,37 @@ func BT_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s4 = $s3 - PrintIntS($s4 ) - $s4 = 0 - $v0 = $s4 + $s6 = $s6 + $s7 = $s7 + $s6 = [$s7+0] + $s5 = [$s6+68] + $s6 = 12 + local[8] = $t0 + local[9] = $t1 + local[10] = $t2 + local[11] = $t3 + local[12] = $t4 + local[13] = $t5 + local[14] = $t6 + local[15] = $t7 + local[16] = $t8 + $a0 = $s7 + $a1 = $s6 + call $s5 + $s4 = $v0 + $t0 = local[8] + $t1 = local[9] + $t2 = local[10] + $t3 = local[11] + $t4 = local[12] + $t5 = local[13] + $t6 = local[14] + $t7 = local[15] + $t8 = local[16] + $s6 = $s4 + PrintIntS($s6 ) + $s6 = 0 + $v0 = $s6 $s0 = local[0] $s1 = local[1] $s2 = local[2] @@ -899,7 +899,7 @@ if100_end: $s6 = local[6] $s7 = local[7] ret -func Tree_Insert [in 0, out 0, local 17] +func Tree_Insert [in 0, out 0, local 29] local[0] = $s0 local[1] = $s1 local[2] = $s2 @@ -940,15 +940,15 @@ func Tree_Insert [in 0, out 0, local 17] $t7 = local[15] $t8 = local[16] $s5 = $s2 - $s2 = $s6 + $s5 = $s6 $s6 = 1 while115_test: - $s3 = $s6 - if0 $s3 goto :while115_end + $s2 = $s6 + if0 $s2 goto :while115_end while115_body: - $s2 = $s2 - $s3 = [$s2+0] - $s1 = [$s3+20] + $s5 = $s5 + $s2 = [$s5+0] + null = [$s2+20] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -958,9 +958,9 @@ while115_body: local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s2 - call $s1 - $s3 = $v0 + $a0 = $s5 + call null + $t5 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -970,16 +970,16 @@ while115_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s1 = $s3 - $s3 = $s7 - $s7 = $s1 - $s1 = LtS($s3 $s7 ) - $s7 = $s1 - if0 $s7 goto :if120_else + $s2 = $t5 + null = $s7 + null = $s2 + $s2 = LtS(null null ) + null = $s2 + if0 null goto :if120_else if120_body: - $s2 = $s2 - $s7 = [$s2+0] - $s1 = [$s7+32] + $s5 = $s5 + $s2 = [$s5+0] + null = [$s2+32] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -989,9 +989,9 @@ if120_body: local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s2 - call $s1 - $s7 = $v0 + $a0 = $s5 + call null + $t7 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1001,12 +1001,12 @@ if120_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s1 = $s7 - if0 $s1 goto :if124_else + $s2 = $t7 + if0 $s2 goto :if124_else if124_body: - $s2 = $s2 - $s1 = [$s2+0] - $s7 = [$s1+16] + $s5 = $s5 + $s2 = [$s5+0] + null = [$s2+16] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1016,9 +1016,9 @@ if124_body: local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s2 - call $s7 - $s1 = $v0 + $a0 = $s5 + call null + $s3 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1028,14 +1028,14 @@ if124_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s2 = $s1 + $s5 = $s3 goto :if124_end if124_else: $s6 = 0 - $s2 = $s2 - $s1 = [$s2+0] - $s7 = [$s1+36] - $s1 = 1 + $s5 = $s5 + $s2 = [$s5+0] + null = [$s2+36] + $s2 = 1 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1045,10 +1045,10 @@ if124_else: local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s2 - $a1 = $s1 - call $s7 - $s3 = $v0 + $a0 = $s5 + $a1 = $s2 + call null + $s0 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1058,11 +1058,11 @@ if124_else: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s5 = $s3 - $s2 = $s2 - $s3 = [$s2+0] - $s1 = [$s3+8] - $s3 = $s4 + $s5 = $s0 + $s5 = $s5 + $s2 = [$s5+0] + null = [$s2+8] + $s2 = $s4 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1072,10 +1072,10 @@ if124_else: local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s2 - $a1 = $s3 - call $s1 - $s7 = $v0 + $a0 = $s5 + $a1 = $s2 + call null + $t3 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1085,13 +1085,13 @@ if124_else: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s5 = $s7 + $s5 = $t3 if124_end: goto :if120_end if120_else: - $s2 = $s2 - $s7 = [$s2+0] - $s3 = [$s7+28] + $s5 = $s5 + $s2 = [$s5+0] + null = [$s2+28] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1101,9 +1101,9 @@ if120_else: local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s2 - call $s3 - $s7 = $v0 + $a0 = $s5 + call null + $t4 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1113,12 +1113,12 @@ if120_else: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s3 = $s7 - if0 $s3 goto :if139_else + $s2 = $t4 + if0 $s2 goto :if139_else if139_body: - $s2 = $s2 - $s3 = [$s2+0] - $s7 = [$s3+12] + $s5 = $s5 + $s2 = [$s5+0] + null = [$s2+12] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1128,9 +1128,9 @@ if139_body: local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s2 - call $s7 - $s3 = $v0 + $a0 = $s5 + call null + $s2 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1140,14 +1140,14 @@ if139_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s2 = $s3 + $s5 = $s2 goto :if139_end if139_else: $s6 = 0 - $s2 = $s2 - $s6 = [$s2+0] - $s3 = [$s6+40] - $s6 = 1 + $s5 = $s5 + $s2 = [$s5+0] + null = [$s2+40] + $s2 = 1 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1157,10 +1157,10 @@ if139_else: local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s2 - $a1 = $s6 - call $s3 - $s7 = $v0 + $a0 = $s5 + $a1 = $s2 + call null + $t6 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1170,11 +1170,11 @@ if139_else: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s5 = $s7 - $s2 = $s2 - $s7 = [$s2+0] - $s6 = [$s7+4] - $s7 = $s4 + $s5 = $t6 + $s5 = $s5 + $s2 = [$s5+0] + null = [$s2+4] + $s2 = $s4 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1184,10 +1184,10 @@ if139_else: local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s2 - $a1 = $s7 - call $s6 - $s4 = $v0 + $a0 = $s5 + $a1 = $s2 + call null + $s1 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1197,13 +1197,13 @@ if139_else: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s5 = $s4 + $s5 = $s1 if139_end: if120_end: goto :while115_test while115_end: - $s4 = 1 - $v0 = $s4 + $t3 = 1 + $v0 = $t3 $s0 = local[0] $s1 = local[1] $s2 = local[2] @@ -1213,7 +1213,7 @@ while115_end: $s6 = local[6] $s7 = local[7] ret -func Tree_Delete [in 0, out 0, local 17] +func Tree_Delete [in 0, out 0, local 44] local[0] = $s0 local[1] = $s1 local[2] = $s2 @@ -1235,7 +1235,7 @@ while155_test: while155_body: $s5 = $s5 $s0 = [$s5+0] - $t7 = [$s0+20] + null = [$s0+20] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1246,8 +1246,8 @@ while155_body: local[15] = $t7 local[16] = $t8 $a0 = $s5 - call $t7 - $s0 = $v0 + call null + $t5 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1257,16 +1257,16 @@ while155_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $t7 = $s0 - $s0 = $s7 - $t6 = $t7 - $t5 = LtS($s0 $t6 ) - $t6 = $t5 - if0 $t6 goto :if160_else + $s0 = $t5 + null = $s7 + null = $s0 + null = LtS(null null ) + null = null + if0 null goto :if160_else if160_body: $s5 = $s5 - $t6 = [$s5+0] - $t5 = [$t6+32] + null = [$s5+0] + null = [null+32] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1277,8 +1277,8 @@ if160_body: local[15] = $t7 local[16] = $t8 $a0 = $s5 - call $t5 - $t6 = $v0 + call null + null = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1288,13 +1288,13 @@ if160_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $t5 = $t6 - if0 $t5 goto :if164_else + null = null + if0 null goto :if164_else if164_body: $s4 = $s5 $s5 = $s5 - $t5 = [$s5+0] - $t6 = [$t5+16] + null = [$s5+0] + null = [null+16] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1305,8 +1305,8 @@ if164_body: local[15] = $t7 local[16] = $t8 $a0 = $s5 - call $t6 - $t5 = $v0 + call null + $t4 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1316,22 +1316,22 @@ if164_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s5 = $t5 + $s5 = $t4 goto :if164_end if164_else: $s3 = 0 if164_end: goto :if160_end if160_else: - $t5 = $t7 - $t7 = $s7 - $s7 = LtS($t5 $t7 ) - $t7 = $s7 - if0 $t7 goto :if171_else + null = $s0 + $s0 = $s7 + null = LtS(null $s0 ) + $s0 = null + if0 $s0 goto :if171_else if171_body: $s5 = $s5 - $t7 = [$s5+0] - $s7 = [$t7+28] + $s0 = [$s5+0] + null = [$s0+28] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1342,8 +1342,8 @@ if171_body: local[15] = $t7 local[16] = $t8 $a0 = $s5 - call $s7 - $t7 = $v0 + call null + $s0 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1353,13 +1353,13 @@ if171_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s7 = $t7 - if0 $s7 goto :if175_else + null = $s0 + if0 null goto :if175_else if175_body: $s4 = $s5 $s5 = $s5 - $s7 = [$s5+0] - $t7 = [$s7+12] + $s0 = [$s5+0] + null = [$s0+12] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1370,8 +1370,8 @@ if175_body: local[15] = $t7 local[16] = $t8 $a0 = $s5 - call $t7 - $s7 = $v0 + call null + $s0 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1381,19 +1381,19 @@ if175_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s5 = $s7 + $s5 = $s0 goto :if175_end if175_else: $s3 = 0 if175_end: goto :if171_end if171_else: - $s7 = $s1 - if0 $s7 goto :if182_else + $s0 = $s1 + if0 $s0 goto :if182_else if182_body: $s5 = $s5 - $s7 = [$s5+0] - $t7 = [$s7+28] + $s0 = [$s5+0] + null = [$s0+28] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1404,8 +1404,8 @@ if182_body: local[15] = $t7 local[16] = $t8 $a0 = $s5 - call $t7 - $s7 = $v0 + call null + $t6 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1415,11 +1415,11 @@ if182_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $t7 = Eq($s7 0 ) - $s7 = $t7 + $s0 = Eq($t6 0 ) + null = $s0 $s5 = $s5 - $t7 = [$s5+0] - $t5 = [$t7+32] + $s0 = [$s5+0] + null = [$s0+32] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1430,7 +1430,7 @@ if182_body: local[15] = $t7 local[16] = $t8 $a0 = $s5 - call $t5 + call null $t7 = $v0 $t0 = local[8] $t1 = local[9] @@ -1441,21 +1441,21 @@ if182_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $t5 = Eq($t7 0 ) - $t7 = $t5 - $t5 = Eq(1 $s7 ) - $s7 = Eq(1 $t7 ) - $t7 = Eq($t5 $s7 ) - $s7 = $t7 - if0 $s7 goto :if183_else + $s0 = Eq($t7 0 ) + null = $s0 + $s0 = Eq(1 null ) + null = Eq(1 null ) + null = Eq($s0 null ) + $s0 = null + if0 $s0 goto :if183_else if183_body: - $s7 = 1 + $s0 = 1 goto :if183_end if183_else: - $t7 = [$s6+0] - $t5 = $s4 - $t6 = $s5 - $t7 = [$t7+56] + $s0 = [$s6+0] + null = $s4 + null = $s5 + $s0 = [$s0+56] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1466,10 +1466,10 @@ if183_else: local[15] = $t7 local[16] = $t8 $a0 = $s6 - $a1 = $t5 - $a2 = $t6 - call $t7 - $s0 = $v0 + $a1 = null + $a2 = null + call $s0 + $t3 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1479,13 +1479,13 @@ if183_else: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s7 = $s0 + $s0 = $t3 if183_end: goto :if182_end if182_else: $s0 = [$s6+0] - $t6 = $s4 - $s4 = $s5 + null = $s4 + null = $s5 $s0 = [$s0+56] local[8] = $t0 local[9] = $t1 @@ -1497,10 +1497,10 @@ if182_else: local[15] = $t7 local[16] = $t8 $a0 = $s6 - $a1 = $t6 - $a2 = $s4 + $a1 = null + $a2 = null call $s0 - $s5 = $v0 + null = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1510,7 +1510,7 @@ if182_else: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s7 = $s5 + $s0 = null if182_end: $s2 = 1 $s3 = 0 @@ -1519,8 +1519,8 @@ if160_end: $s1 = 0 goto :while155_test while155_end: - $s1 = $s2 - $v0 = $s1 + $t3 = $s2 + $v0 = $t3 $s0 = local[0] $s1 = local[1] $s2 = local[2] @@ -1600,8 +1600,8 @@ if206_body: goto :if206_end if206_else: $s7 = $s7 - $s1 = [$s7+0] - $s4 = [$s1+28] + $s2 = [$s7+0] + $s1 = [$s2+28] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1612,8 +1612,8 @@ if206_else: local[15] = $t7 local[16] = $t8 $a0 = $s7 - call $s4 - $s1 = $v0 + call $s1 + $s2 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1623,13 +1623,13 @@ if206_else: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s4 = $s1 - if0 $s4 goto :if214_else + $s1 = $s2 + if0 $s1 goto :if214_else if214_body: - $s4 = [$s5+0] - $s1 = $s6 - $s3 = $s7 - $s4 = [$s4+60] + $s1 = [$s5+0] + $s2 = $s6 + $s4 = $s7 + $s1 = [$s1+60] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1640,10 +1640,10 @@ if214_body: local[15] = $t7 local[16] = $t8 $a0 = $s5 - $a1 = $s1 - $a2 = $s3 - call $s4 - $s0 = $v0 + $a1 = $s2 + $a2 = $s4 + call $s1 + $s3 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1653,12 +1653,12 @@ if214_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s2 = $s0 + $s2 = $s3 goto :if214_end if214_else: $s7 = $s7 - $s0 = [$s7+0] - $s3 = [$s0+20] + $s3 = [$s7+0] + $s4 = [$s3+20] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1669,8 +1669,8 @@ if214_else: local[15] = $t7 local[16] = $t8 $a0 = $s7 - call $s3 - $s0 = $v0 + call $s4 + $s3 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1680,10 +1680,10 @@ if214_else: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s3 = $s0 + $s4 = $s3 $s6 = $s6 - $s0 = [$s6+0] - $s7 = [$s0+16] + $s3 = [$s6+0] + $s7 = [$s3+16] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1695,7 +1695,7 @@ if214_else: local[16] = $t8 $a0 = $s6 call $s7 - $s0 = $v0 + $s3 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1705,9 +1705,9 @@ if214_else: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s7 = $s0 - $s0 = [$s7+0] - $s1 = [$s0+20] + $s7 = $s3 + $s3 = [$s7+0] + $s2 = [$s3+20] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1718,8 +1718,8 @@ if214_else: local[15] = $t7 local[16] = $t8 $a0 = $s7 - call $s1 - $s0 = $v0 + call $s2 + $s3 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1729,11 +1729,11 @@ if214_else: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s1 = $s0 - $s0 = [$s5+0] - $s7 = $s3 - $s3 = $s1 - $s0 = [$s0+44] + $s2 = $s3 + $s3 = [$s5+0] + $s7 = $s4 + $s4 = $s2 + $s3 = [$s3+44] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1745,9 +1745,9 @@ if214_else: local[16] = $t8 $a0 = $s5 $a1 = $s7 - $a2 = $s3 - call $s0 - $s1 = $v0 + $a2 = $s4 + call $s3 + $s2 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1757,13 +1757,13 @@ if214_else: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s3 = $s1 - if0 $s3 goto :if232_else + $s4 = $s2 + if0 $s4 goto :if232_else if232_body: $s6 = $s6 - $s3 = [$s6+0] - $s1 = [$s3+8] - $s3 = [$s5+100] + $s4 = [$s6+0] + $s2 = [$s4+8] + $s4 = [$s5+100] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1774,8 +1774,8 @@ if232_body: local[15] = $t7 local[16] = $t8 $a0 = $s6 - $a1 = $s3 - call $s1 + $a1 = $s4 + call $s2 $s7 = $v0 $t0 = local[8] $t1 = local[9] @@ -1789,7 +1789,7 @@ if232_body: $s2 = $s7 $s6 = $s6 $s7 = [$s6+0] - $s3 = [$s7+36] + $s4 = [$s7+36] $s7 = 0 local[8] = $t0 local[9] = $t1 @@ -1802,8 +1802,8 @@ if232_body: local[16] = $t8 $a0 = $s6 $a1 = $s7 - call $s3 - $s1 = $v0 + call $s4 + $s2 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1813,13 +1813,13 @@ if232_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s2 = $s1 + $s2 = $s2 goto :if232_end if232_else: $s6 = $s6 - $s1 = [$s6+0] - $s7 = [$s1+4] - $s1 = [$s5+100] + $s2 = [$s6+0] + $s7 = [$s2+4] + $s2 = [$s5+100] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1830,7 +1830,7 @@ if232_else: local[15] = $t7 local[16] = $t8 $a0 = $s6 - $a1 = $s1 + $a1 = $s2 call $s7 $s5 = $v0 $t0 = local[8] @@ -1845,7 +1845,7 @@ if232_else: $s2 = $s5 $s6 = $s6 $s5 = [$s6+0] - $s1 = [$s5+40] + $s2 = [$s5+40] $s5 = 0 local[8] = $t0 local[9] = $t1 @@ -1858,7 +1858,7 @@ if232_else: local[16] = $t8 $a0 = $s6 $a1 = $s5 - call $s1 + call $s2 $s7 = $v0 $t0 = local[8] $t1 = local[9] @@ -1898,8 +1898,8 @@ func Tree_RemoveRight [in 0, out 0, local 17] $s7 = $a2 while254_test: $s7 = $s7 - $s4 = [$s7+0] - $s3 = [$s4+28] + $t7 = [$s7+0] + $t6 = [$t7+28] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1910,8 +1910,8 @@ while254_test: local[15] = $t7 local[16] = $t8 $a0 = $s7 - call $s3 - $s4 = $v0 + call $t6 + $s1 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1921,15 +1921,15 @@ while254_test: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s3 = $s4 - if0 $s3 goto :while254_end + $t6 = $s1 + if0 $t6 goto :while254_end while254_body: $s7 = $s7 - $s3 = [$s7+0] - $s4 = [$s3+24] + $t6 = [$s7+0] + $t7 = [$t6+24] $s7 = $s7 - $s3 = [$s7+0] - $s2 = [$s3+12] + $t6 = [$s7+0] + $t5 = [$t6+12] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1940,7 +1940,7 @@ while254_body: local[15] = $t7 local[16] = $t8 $a0 = $s7 - call $s2 + call $t5 $s3 = $v0 $t0 = local[8] $t1 = local[9] @@ -1951,9 +1951,9 @@ while254_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s2 = $s3 - $s3 = [$s2+0] - $s1 = [$s3+20] + $t5 = $s3 + $t6 = [$t5+0] + $t4 = [$t6+20] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1963,9 +1963,9 @@ while254_body: local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s2 - call $s1 - $s3 = $v0 + $a0 = $t5 + call $t4 + $s4 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1975,7 +1975,7 @@ while254_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s1 = $s3 + $t4 = $s4 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1986,9 +1986,9 @@ while254_body: local[15] = $t7 local[16] = $t8 $a0 = $s7 - $a1 = $s1 - call $s4 - $s3 = $v0 + $a1 = $t4 + call $t7 + $s0 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1998,11 +1998,11 @@ while254_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s1 = $s3 + $t4 = $s0 $s6 = $s7 $s7 = $s7 - $s3 = [$s7+0] - $s4 = [$s3+12] + $t4 = [$s7+0] + $t7 = [$t4+12] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2013,8 +2013,8 @@ while254_body: local[15] = $t7 local[16] = $t8 $a0 = $s7 - call $s4 - $s3 = $v0 + call $t7 + $s2 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -2024,13 +2024,13 @@ while254_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s7 = $s3 + $s7 = $s2 goto :while254_test while254_end: $s6 = $s6 - $s3 = [$s6+0] - $s7 = [$s3+4] - $s3 = [$s5+100] + $s0 = [$s6+0] + $s1 = [$s0+4] + $s0 = [$s5+100] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2041,8 +2041,8 @@ while254_end: local[15] = $t7 local[16] = $t8 $a0 = $s6 - $a1 = $s3 - call $s7 + $a1 = $s0 + call $s1 $s5 = $v0 $t0 = local[8] $t1 = local[9] @@ -2053,10 +2053,10 @@ while254_end: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s1 = $s5 + $t4 = $s5 $s6 = $s6 $s5 = [$s6+0] - $s3 = [$s5+40] + $s0 = [$s5+40] $s5 = 0 local[8] = $t0 local[9] = $t1 @@ -2069,8 +2069,8 @@ while254_end: local[16] = $t8 $a0 = $s6 $a1 = $s5 - call $s3 - $s7 = $v0 + call $s0 + $s1 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -2080,9 +2080,9 @@ while254_end: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s1 = $s7 - $s7 = 1 - $v0 = $s7 + $t4 = $s1 + $s1 = 1 + $v0 = $s1 $s0 = local[0] $s1 = local[1] $s2 = local[2] @@ -2106,8 +2106,8 @@ func Tree_RemoveLeft [in 0, out 0, local 17] $s7 = $a2 while282_test: $s7 = $s7 - $s4 = [$s7+0] - $s3 = [$s4+32] + $t7 = [$s7+0] + $t6 = [$t7+32] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2118,8 +2118,8 @@ while282_test: local[15] = $t7 local[16] = $t8 $a0 = $s7 - call $s3 - $s4 = $v0 + call $t6 + $s1 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -2129,15 +2129,15 @@ while282_test: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s3 = $s4 - if0 $s3 goto :while282_end + $t6 = $s1 + if0 $t6 goto :while282_end while282_body: $s7 = $s7 - $s3 = [$s7+0] - $s4 = [$s3+24] + $t6 = [$s7+0] + $t7 = [$t6+24] $s7 = $s7 - $s3 = [$s7+0] - $s2 = [$s3+16] + $t6 = [$s7+0] + $t5 = [$t6+16] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2148,7 +2148,7 @@ while282_body: local[15] = $t7 local[16] = $t8 $a0 = $s7 - call $s2 + call $t5 $s3 = $v0 $t0 = local[8] $t1 = local[9] @@ -2159,9 +2159,9 @@ while282_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s2 = $s3 - $s3 = [$s2+0] - $s1 = [$s3+20] + $t5 = $s3 + $t6 = [$t5+0] + $t4 = [$t6+20] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2171,9 +2171,9 @@ while282_body: local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s2 - call $s1 - $s3 = $v0 + $a0 = $t5 + call $t4 + $s4 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -2183,7 +2183,7 @@ while282_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s1 = $s3 + $t4 = $s4 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2194,9 +2194,9 @@ while282_body: local[15] = $t7 local[16] = $t8 $a0 = $s7 - $a1 = $s1 - call $s4 - $s3 = $v0 + $a1 = $t4 + call $t7 + $s0 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -2206,11 +2206,11 @@ while282_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s1 = $s3 + $t4 = $s0 $s6 = $s7 $s7 = $s7 - $s3 = [$s7+0] - $s4 = [$s3+16] + $t4 = [$s7+0] + $t7 = [$t4+16] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2221,8 +2221,8 @@ while282_body: local[15] = $t7 local[16] = $t8 $a0 = $s7 - call $s4 - $s3 = $v0 + call $t7 + $s2 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -2232,13 +2232,13 @@ while282_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s7 = $s3 + $s7 = $s2 goto :while282_test while282_end: $s6 = $s6 - $s3 = [$s6+0] - $s7 = [$s3+8] - $s3 = [$s5+100] + $s0 = [$s6+0] + $s1 = [$s0+8] + $s0 = [$s5+100] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2249,8 +2249,8 @@ while282_end: local[15] = $t7 local[16] = $t8 $a0 = $s6 - $a1 = $s3 - call $s7 + $a1 = $s0 + call $s1 $s5 = $v0 $t0 = local[8] $t1 = local[9] @@ -2261,10 +2261,10 @@ while282_end: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s1 = $s5 + $t4 = $s5 $s6 = $s6 $s5 = [$s6+0] - $s3 = [$s5+36] + $s0 = [$s5+36] $s5 = 0 local[8] = $t0 local[9] = $t1 @@ -2277,8 +2277,8 @@ while282_end: local[16] = $t8 $a0 = $s6 $a1 = $s5 - call $s3 - $s7 = $v0 + call $s0 + $s1 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -2288,9 +2288,9 @@ while282_end: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s1 = $s7 - $s7 = 1 - $v0 = $s7 + $t4 = $s1 + $s1 = 1 + $v0 = $s1 $s0 = local[0] $s1 = local[1] $s2 = local[2] @@ -2320,7 +2320,7 @@ while310_test: while310_body: $s5 = $s5 $s3 = [$s5+0] - $s2 = [$s3+20] + $t7 = [$s3+20] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2331,8 +2331,8 @@ while310_body: local[15] = $t7 local[16] = $t8 $a0 = $s5 - call $s2 - $s3 = $v0 + call $t7 + $s0 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -2342,16 +2342,16 @@ while310_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s2 = $s3 + $t7 = $s0 $s3 = $s7 - $s1 = $s2 - $s0 = LtS($s3 $s1 ) - $s1 = $s0 - if0 $s1 goto :if315_else + $t6 = $t7 + $t5 = LtS($s3 $t6 ) + $t6 = $t5 + if0 $t6 goto :if315_else if315_body: $s5 = $s5 - $s1 = [$s5+0] - $s0 = [$s1+32] + $t6 = [$s5+0] + $t5 = [$t6+32] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2362,7 +2362,7 @@ if315_body: local[15] = $t7 local[16] = $t8 $a0 = $s5 - call $s0 + call $t5 $s1 = $v0 $t0 = local[8] $t1 = local[9] @@ -2373,12 +2373,12 @@ if315_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s0 = $s1 - if0 $s0 goto :if319_else + $t5 = $s1 + if0 $t5 goto :if319_else if319_body: $s5 = $s5 - $s0 = [$s5+0] - $s1 = [$s0+16] + $t5 = [$s5+0] + $t6 = [$t5+16] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2389,8 +2389,8 @@ if319_body: local[15] = $t7 local[16] = $t8 $a0 = $s5 - call $s1 - $s0 = $v0 + call $t6 + $s2 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -2400,22 +2400,22 @@ if319_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s5 = $s0 + $s5 = $s2 goto :if319_end if319_else: $s6 = 0 if319_end: goto :if315_end if315_else: - $s0 = $s2 - $s2 = $s7 - $s7 = LtS($s0 $s2 ) - $s2 = $s7 - if0 $s2 goto :if326_else + $t6 = $t7 + $t7 = $s7 + $t5 = LtS($t6 $t7 ) + $t7 = $t5 + if0 $t7 goto :if326_else if326_body: $s5 = $s5 - $s2 = [$s5+0] - $s7 = [$s2+28] + $t7 = [$s5+0] + $t5 = [$t7+28] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2426,8 +2426,8 @@ if326_body: local[15] = $t7 local[16] = $t8 $a0 = $s5 - call $s7 - $s2 = $v0 + call $t5 + $t7 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -2437,12 +2437,12 @@ if326_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s7 = $s2 - if0 $s7 goto :if330_else + $t5 = $t7 + if0 $t5 goto :if330_else if330_body: $s5 = $s5 - $s7 = [$s5+0] - $s2 = [$s7+12] + $t5 = [$s5+0] + $t7 = [$t5+12] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2453,8 +2453,8 @@ if330_body: local[15] = $t7 local[16] = $t8 $a0 = $s5 - call $s2 - $s7 = $v0 + call $t7 + $t5 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -2464,7 +2464,7 @@ if330_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s5 = $s7 + $s5 = $t5 goto :if330_end if330_else: $s6 = 0 @@ -2477,8 +2477,8 @@ if326_end: if315_end: goto :while310_test while310_end: - $s6 = $s4 - $v0 = $s6 + $s0 = $s4 + $v0 = $s0 $s0 = local[0] $s1 = local[1] $s2 = local[2] @@ -2629,8 +2629,8 @@ if342_else: $s3 = 1 if342_end: $s7 = $s7 - $s5 = [$s7+0] - $s4 = [$s5+20] + $s3 = [$s7+0] + $s5 = [$s3+20] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2641,8 +2641,8 @@ if342_end: local[15] = $t7 local[16] = $t8 $a0 = $s7 - call $s4 - $s5 = $v0 + call $s5 + $s3 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -2652,11 +2652,11 @@ if342_end: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s4 = $s5 - PrintIntS($s4 ) + $s5 = $s3 + PrintIntS($s5 ) $s7 = $s7 - $s4 = [$s7+0] - $s5 = [$s4+28] + $s5 = [$s7+0] + $s3 = [$s5+28] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2667,8 +2667,8 @@ if342_end: local[15] = $t7 local[16] = $t8 $a0 = $s7 - call $s5 - $s4 = $v0 + call $s3 + $s5 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -2678,13 +2678,13 @@ if342_end: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s5 = $s4 - if0 $s5 goto :if356_else + $s3 = $s5 + if0 $s3 goto :if356_else if356_body: - $s5 = [$s6+0] + $s3 = [$s6+0] $s7 = $s7 - $s4 = [$s7+0] - $s2 = [$s4+12] + $s5 = [$s7+0] + $s4 = [$s5+12] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2695,8 +2695,8 @@ if356_body: local[15] = $t7 local[16] = $t8 $a0 = $s7 - call $s2 - $s4 = $v0 + call $s4 + $s5 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -2706,8 +2706,8 @@ if356_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s2 = $s4 - $s5 = [$s5+76] + $s4 = $s5 + $s3 = [$s3+76] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2718,9 +2718,9 @@ if356_body: local[15] = $t7 local[16] = $t8 $a0 = $s6 - $a1 = $s2 - call $s5 - $s4 = $v0 + $a1 = $s4 + call $s3 + $s5 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -2730,13 +2730,13 @@ if356_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s3 = $s4 + $s3 = $s5 goto :if356_end if356_else: $s3 = 1 if356_end: - $s3 = 1 - $v0 = $s3 + $s5 = 1 + $v0 = $s5 $s0 = local[0] $s1 = local[1] $s2 = local[2] diff --git a/output/BubbleSort.vaporm b/output/BubbleSort.vaporm index 25eee81..37ca540 100644 --- a/output/BubbleSort.vaporm +++ b/output/BubbleSort.vaporm @@ -88,8 +88,8 @@ func BBS_Start [in 0, out 0, local 17] $t7 = local[15] $t8 = local[16] $s4 = $s7 - $s7 = [$s6+0] - $s7 = [$s7+8] + $s4 = [$s6+0] + $s4 = [$s4+8] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -100,8 +100,8 @@ func BBS_Start [in 0, out 0, local 17] local[15] = $t7 local[16] = $t8 $a0 = $s6 - call $s7 - $s5 = $v0 + call $s4 + $s7 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -111,11 +111,11 @@ func BBS_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s4 = $s5 - $s5 = 99999 - PrintIntS($s5 ) - $s5 = [$s6+0] - $s5 = [$s5+4] + $s4 = $s7 + $s7 = 99999 + PrintIntS($s7 ) + $s7 = [$s6+0] + $s7 = [$s7+4] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -126,8 +126,8 @@ func BBS_Start [in 0, out 0, local 17] local[15] = $t7 local[16] = $t8 $a0 = $s6 - call $s5 - $s7 = $v0 + call $s7 + $s4 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -137,9 +137,9 @@ func BBS_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s4 = $s7 - $s7 = [$s6+0] - $s7 = [$s7+8] + $s4 = $s4 + $s4 = [$s6+0] + $s4 = [$s4+8] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -150,8 +150,8 @@ func BBS_Start [in 0, out 0, local 17] local[15] = $t7 local[16] = $t8 $a0 = $s6 - call $s7 - $s5 = $v0 + call $s4 + $s7 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -161,9 +161,9 @@ func BBS_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s4 = $s5 - $s5 = 0 - $v0 = $s5 + $s4 = $s7 + $s7 = 0 + $v0 = $s7 $s0 = local[0] $s1 = local[1] $s2 = local[2] @@ -193,87 +193,87 @@ func BBS_Sort [in 0, out 0, local 17] $s6 = $s3 while23_test: $s3 = $s6 - $s6 = $s5 - $s4 = LtS($s3 $s6 ) - $s6 = $s4 - if0 $s6 goto :while23_end + $s4 = $s5 + $s2 = LtS($s3 $s4 ) + $s4 = $s2 + if0 $s4 goto :while23_end while23_body: - $s6 = 1 + $s4 = 1 while28_test: - $s4 = $s6 + $s2 = $s4 $s3 = $s5 - $s2 = 1 - $s1 = Add($s3 $s2 ) - $s2 = $s1 - $s1 = LtS($s4 $s2 ) - $s2 = $s1 - if0 $s2 goto :while28_end -while28_body: - $s2 = $s6 $s1 = 1 - $s4 = Sub($s2 $s1 ) + $s0 = Add($s3 $s1 ) + $s1 = $s0 + $s0 = LtS($s2 $s1 ) + $s1 = $s0 + if0 $s1 goto :while28_end +while28_body: $s1 = $s4 - $s4 = [$s7+16] - $s2 = MulS($s1 4 ) - $s2 = Add($s2 4 ) - $s2 = Add($s4 $s2 ) - $s4 = [$s2+0] - $s2 = $s4 - $s4 = [$s7+16] - $s1 = MulS($s6 4 ) + $s0 = 1 + $s2 = Sub($s1 $s0 ) + $s0 = $s2 + $s2 = [$s7+16] + $s1 = MulS($s0 4 ) $s1 = Add($s1 4 ) - $s1 = Add($s4 $s1 ) - $s4 = [$s1+0] - $s1 = $s4 - $s4 = $s1 + $s1 = Add($s2 $s1 ) + $s2 = [$s1+0] $s1 = $s2 - $s2 = LtS($s4 $s1 ) - $s1 = $s2 - if0 $s1 goto :if45_else + $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 if45_body: - $s1 = $s6 - $s2 = 1 - $s4 = Sub($s1 $s2 ) - $s2 = $s4 - $s4 = [$s7+16] - $s1 = MulS($s2 4 ) + $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 ) $s1 = Add($s1 4 ) - $s1 = Add($s4 $s1 ) - $s4 = [$s1+0] - $s1 = $s4 - $s4 = [$s7+16] - $s3 = MulS($s2 4 ) + $s1 = Add($s2 $s1 ) + $s2 = [$s1+0] + [$s3+0] = $s2 + $s2 = [$s7+16] + $s3 = MulS($s4 4 ) $s3 = Add($s3 4 ) - $s3 = Add($s4 $s3 ) - $s4 = [$s7+16] - $s2 = MulS($s6 4 ) - $s2 = Add($s2 4 ) - $s2 = Add($s4 $s2 ) - $s4 = [$s2+0] - [$s3+0] = $s4 - $s4 = [$s7+16] - $s7 = MulS($s6 4 ) - $s7 = Add($s7 4 ) - $s7 = Add($s4 $s7 ) - [$s7+0] = $s1 + $s3 = Add($s2 $s3 ) + [$s3+0] = $s0 goto :if45_end if45_else: - $s7 = 0 + $s3 = 0 if45_end: - $s7 = $s6 - $s1 = 1 - $s4 = Add($s7 $s1 ) - $s6 = $s4 + $s3 = $s4 + $s0 = 1 + $s2 = Add($s3 $s0 ) + $s4 = $s2 goto :while28_test while28_end: $s4 = $s5 - $s6 = 1 - $s1 = Sub($s4 $s6 ) - $s5 = $s1 + $s2 = 1 + $s0 = Sub($s4 $s2 ) + $s5 = $s0 goto :while23_test while23_end: - $s1 = 0 - $v0 = $s1 + $s6 = 0 + $v0 = $s6 $s0 = local[0] $s1 = local[1] $s2 = local[2] @@ -302,20 +302,20 @@ while69_test: if0 $s4 goto :while69_end while69_body: $s4 = [$s6+16] - $s6 = MulS($s7 4 ) - $s6 = Add($s6 4 ) - $s6 = Add($s4 $s6 ) - $s4 = [$s6+0] - $s6 = $s4 - PrintIntS($s6 ) - $s6 = $s7 + $s3 = MulS($s7 4 ) + $s3 = Add($s3 4 ) + $s3 = Add($s4 $s3 ) + $s4 = [$s3+0] + $s3 = $s4 + PrintIntS($s3 ) + $s3 = $s7 $s4 = 1 - $s3 = Add($s6 $s4 ) - $s7 = $s3 + $s5 = Add($s3 $s4 ) + $s7 = $s5 goto :while69_test while69_end: - $s3 = 0 - $v0 = $s3 + $s6 = 0 + $v0 = $s6 $s0 = local[0] $s1 = local[1] $s2 = local[2] diff --git a/output/LinearSearch.vaporm b/output/LinearSearch.vaporm index 60a7b9d..68fa7b9 100644 --- a/output/LinearSearch.vaporm +++ b/output/LinearSearch.vaporm @@ -252,20 +252,20 @@ while29_test: if0 $s4 goto :while29_end while29_body: $s4 = [$s6+16] - $s6 = MulS($s7 4 ) - $s6 = Add($s6 4 ) - $s6 = Add($s4 $s6 ) - $s4 = [$s6+0] - $s6 = $s4 - PrintIntS($s6 ) - $s6 = $s7 + $s3 = MulS($s7 4 ) + $s3 = Add($s3 4 ) + $s3 = Add($s4 $s3 ) + $s4 = [$s3+0] + $s3 = $s4 + PrintIntS($s3 ) + $s3 = $s7 $s4 = 1 - $s3 = Add($s6 $s4 ) - $s7 = $s3 + $s5 = Add($s3 $s4 ) + $s7 = $s5 goto :while29_test while29_end: - $s3 = 0 - $v0 = $s3 + $s6 = 0 + $v0 = $s6 $s0 = local[0] $s1 = local[1] $s2 = local[2] @@ -288,56 +288,56 @@ func LS_Search [in 0, out 0, local 17] $s6 = $a1 $s7 = 1 $s4 = 0 - $s3 = 0 + $s4 = 0 while42_test: - $s2 = $s7 - $s1 = [$s5+20] - $s0 = LtS($s2 $s1 ) - $s1 = $s0 - if0 $s1 goto :while42_end + $s3 = $s7 + $s2 = [$s5+20] + $s1 = LtS($s3 $s2 ) + $s2 = $s1 + if0 $s2 goto :while42_end while42_body: - $s1 = [$s5+16] - $s0 = MulS($s7 4 ) - $s0 = Add($s0 4 ) - $s0 = Add($s1 $s0 ) - $s1 = [$s0+0] + $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 - $s1 = $s6 - $s2 = 1 - $t7 = Add($s1 $s2 ) + $s2 = $s6 + $t7 = LtS($s0 $s2 ) $s2 = $t7 - $t7 = $s0 - $s1 = $s6 - $s6 = LtS($t7 $s1 ) - $s1 = $s6 - if0 $s1 goto :if53_else + if0 $s2 goto :if53_else if53_body: - $s1 = 0 + $s2 = 0 goto :if53_end if53_else: - $s6 = $s0 - $s0 = $s2 - $s2 = LtS($s6 $s0 ) - $s0 = Eq($s2 0 ) - $s2 = $s0 - if0 $s2 goto :if57_else + $s2 = $s1 + $s1 = $s3 + $s3 = LtS($s2 $s1 ) + $s1 = Eq($s3 0 ) + $s3 = $s1 + if0 $s3 goto :if57_else if57_body: - $s1 = 0 + $s2 = 0 goto :if57_end if57_else: $s4 = 1 - $s3 = 1 + $s4 = 1 $s7 = [$s5+20] if57_end: if53_end: - $s5 = $s7 - $s4 = 1 - $s1 = Add($s5 $s4 ) - $s7 = $s1 + $s3 = $s7 + $s1 = 1 + $s2 = Add($s3 $s1 ) + $s7 = $s2 goto :while42_test while42_end: - $s1 = $s3 - $v0 = $s1 + $s5 = $s4 + $v0 = $s5 $s0 = local[0] $s1 = local[1] $s2 = local[2] @@ -402,25 +402,25 @@ while70_body: $s1 = Sub($s3 $s7 ) $s7 = $s1 $s1 = [$s6+16] - $s6 = MulS($s5 4 ) - $s6 = Add($s6 4 ) - $s6 = Add($s1 $s6 ) + $s3 = MulS($s5 4 ) + $s3 = Add($s3 4 ) + $s3 = Add($s1 $s3 ) $s1 = $s2 $s2 = $s7 $s7 = Add($s1 $s2 ) - [$s6+0] = $s7 + [$s3+0] = $s7 $s7 = $s5 - $s6 = 1 - $s2 = Add($s7 $s6 ) + $s3 = 1 + $s2 = Add($s7 $s3 ) $s5 = $s2 $s2 = $s4 - $s5 = 1 - $s6 = Sub($s2 $s5 ) - $s4 = $s6 + $s3 = 1 + $s7 = Sub($s2 $s3 ) + $s4 = $s7 goto :while70_test while70_end: - $s6 = 0 - $v0 = $s6 + $s4 = 0 + $v0 = $s4 $s0 = local[0] $s1 = local[1] $s2 = local[2] diff --git a/output/LinkedList.vaporm b/output/LinkedList.vaporm index 93bf1ec..30eb560 100644 --- a/output/LinkedList.vaporm +++ b/output/LinkedList.vaporm @@ -323,8 +323,8 @@ if28_end: goto :if27_end if27_else: $s6 = $s6 - $s5 = [$s6+0] - $s3 = [$s5+12] + $s4 = [$s6+0] + $s5 = [$s4+12] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -335,8 +335,8 @@ if27_else: local[15] = $t7 local[16] = $t8 $a0 = $s6 - call $s3 - $s5 = $v0 + call $s5 + $s4 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -346,8 +346,8 @@ if27_else: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s3 = $s5 - if0 $s3 goto :if33_else + $s5 = $s4 + if0 $s5 goto :if33_else if33_body: $s7 = 0 goto :if33_end @@ -357,8 +357,8 @@ if33_end: if27_end: if21_end: if12_end: - $s4 = $s7 - $v0 = $s4 + $s5 = $s7 + $v0 = $s5 $s0 = local[0] $s1 = local[1] $s2 = local[2] @@ -547,7 +547,7 @@ func List_SetNext [in 0, out 0, local 17] $s6 = local[6] $s7 = local[7] ret -func List_Delete [in 0, out 0, local 17] +func List_Delete [in 0, out 0, local 38] local[0] = $s0 local[1] = $s1 local[2] = $s2 @@ -570,19 +570,19 @@ func List_Delete [in 0, out 0, local 17] $t7 = [$s6+40] while65_test: $s6 = Eq($s0 0 ) - $t6 = $s6 + null = $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 + null = $s6 + $s6 = Eq(1 null ) + null = Eq(1 null ) + null = Eq($s6 null ) + $s6 = null + if0 $s6 goto :while65_end while65_body: $s7 = $s7 - $t6 = [$s7+0] - $t5 = [$t6+16] - $t6 = $t7 + $s6 = [$s7+0] + null = [$s6+16] + $s6 = $t7 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -593,9 +593,9 @@ while65_body: local[15] = $t7 local[16] = $t8 $a0 = $s7 - $a1 = $t6 - call $t5 - $s6 = $v0 + $a1 = $s6 + call null + $t3 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -605,19 +605,19 @@ while65_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $t6 = $s6 - if0 $t6 goto :if74_else + $s6 = $t3 + if0 $s6 goto :if74_else if74_body: $s4 = 1 - $t6 = $s2 - $s6 = 0 - $t5 = LtS($t6 $s6 ) - $s6 = $t5 + $s6 = $s2 + null = 0 + null = LtS($s6 null ) + $s6 = null if0 $s6 goto :if79_else if79_body: $s1 = $s1 $s6 = [$s1+0] - $t5 = [$s6+32] + null = [$s6+32] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -628,8 +628,8 @@ if79_body: local[15] = $t7 local[16] = $t8 $a0 = $s1 - call $t5 - $s6 = $v0 + call null + $t5 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -639,20 +639,20 @@ if79_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s5 = $s6 + $s5 = $t5 goto :if79_end if79_else: $s6 = 0 - $t5 = 555 - $t6 = Sub($s6 $t5 ) - $t5 = $t6 - PrintIntS($t5 ) + null = 555 + null = Sub($s6 null ) + $s6 = null + PrintIntS($s6 ) $s3 = $s3 - $t5 = [$s3+0] - $t6 = [$t5+12] + $s6 = [$s3+0] + null = [$s6+12] $s1 = $s1 - $t5 = [$s1+0] - $s6 = [$t5+32] + $s6 = [$s1+0] + null = [$s6+32] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -663,8 +663,8 @@ if79_else: local[15] = $t7 local[16] = $t8 $a0 = $s1 - call $s6 - $t5 = $v0 + call null + $t6 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -674,7 +674,7 @@ if79_else: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s6 = $t5 + $s6 = $t6 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -686,8 +686,8 @@ if79_else: local[16] = $t8 $a0 = $s3 $a1 = $s6 - call $t6 - $t5 = $v0 + call null + $t4 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -697,25 +697,25 @@ if79_else: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s6 = $t5 + $s6 = $t4 $s6 = 0 - $t5 = 555 - $t6 = Sub($s6 $t5 ) - $t5 = $t6 - PrintIntS($t5 ) + null = 555 + null = Sub($s6 null ) + $s6 = null + PrintIntS($s6 ) if79_end: goto :if74_end if74_else: - $t5 = 0 + $s6 = 0 if74_end: - $t6 = Eq($s4 0 ) - $s4 = $t6 - if0 $s4 goto :if101_else + $s6 = Eq($s4 0 ) + null = $s6 + if0 null goto :if101_else if101_body: $s3 = $s1 $s1 = $s1 - $s3 = [$s1+0] - $s4 = [$s3+32] + $s6 = [$s1+0] + null = [$s6+32] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -726,8 +726,8 @@ if101_body: local[15] = $t7 local[16] = $t8 $a0 = $s1 - call $s4 - $s3 = $v0 + call null + null = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -737,10 +737,10 @@ if101_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s1 = $s3 + $s1 = null $s1 = $s1 - $s3 = [$s1+0] - $s4 = [$s3+24] + $s6 = [$s1+0] + null = [$s6+24] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -751,8 +751,8 @@ if101_body: local[15] = $t7 local[16] = $t8 $a0 = $s1 - call $s4 - $s3 = $v0 + call null + null = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -762,10 +762,10 @@ if101_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s0 = $s3 + $s0 = null $s1 = $s1 - $s3 = [$s1+0] - $s0 = [$s3+28] + $s6 = [$s1+0] + null = [$s6+28] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -776,8 +776,8 @@ if101_body: local[15] = $t7 local[16] = $t8 $a0 = $s1 - call $s0 - $s3 = $v0 + call null + null = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -787,16 +787,16 @@ if101_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $t7 = $s3 + $t7 = null $s2 = 1 goto :if101_end if101_else: - $t5 = 0 + $s6 = 0 if101_end: goto :while65_test while65_end: - $t5 = $s5 - $v0 = $t5 + $t3 = $s5 + $v0 = $t3 $s0 = local[0] $s1 = local[1] $s2 = local[2] @@ -823,13 +823,13 @@ func List_Search [in 0, out 0, local 17] $s2 = [$s6+40] while113_test: $s6 = Eq($s3 0 ) - $s1 = $s6 - if0 $s1 goto :while113_end + $t5 = $s6 + if0 $t5 goto :while113_end while113_body: $s7 = $s7 - $s1 = [$s7+0] - $s6 = [$s1+16] - $s1 = $s2 + $t5 = [$s7+0] + $s6 = [$t5+16] + $t5 = $s2 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -840,9 +840,9 @@ while113_body: local[15] = $t7 local[16] = $t8 $a0 = $s7 - $a1 = $s1 + $a1 = $t5 call $s6 - $s0 = $v0 + $t6 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -852,17 +852,17 @@ while113_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s1 = $s0 - if0 $s1 goto :if116_else + $t5 = $t6 + if0 $t5 goto :if116_else if116_body: $s5 = 1 goto :if116_end if116_else: - $s1 = 0 + $t5 = 0 if116_end: $s4 = $s4 - $s1 = [$s4+0] - $s0 = [$s1+32] + $t5 = [$s4+0] + $s6 = [$t5+32] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -873,7 +873,7 @@ if116_end: local[15] = $t7 local[16] = $t8 $a0 = $s4 - call $s0 + call $s6 $s1 = $v0 $t0 = local[8] $t1 = local[9] @@ -886,8 +886,8 @@ if116_end: $t8 = local[16] $s4 = $s1 $s4 = $s4 - $s1 = [$s4+0] - $s0 = [$s1+24] + $s6 = [$s4+0] + $t5 = [$s6+24] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -898,8 +898,8 @@ if116_end: local[15] = $t7 local[16] = $t8 $a0 = $s4 - call $s0 - $s1 = $v0 + call $t5 + $t7 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -909,10 +909,10 @@ if116_end: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s3 = $s1 + $s3 = $t7 $s4 = $s4 - $s1 = [$s4+0] - $s3 = [$s1+28] + $t5 = [$s4+0] + $s6 = [$t5+28] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -923,8 +923,8 @@ if116_end: local[15] = $t7 local[16] = $t8 $a0 = $s4 - call $s3 - $s1 = $v0 + call $s6 + $s0 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -934,11 +934,11 @@ if116_end: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s2 = $s1 + $s2 = $s0 goto :while113_test while113_end: - $s1 = $s5 - $v0 = $s1 + $t6 = $s5 + $v0 = $t6 $s0 = local[0] $s1 = local[1] $s2 = local[2] @@ -1026,12 +1026,12 @@ func List_Print [in 0, out 0, local 17] $s4 = [$s7+40] while134_test: $s7 = Eq($s5 0 ) - $s3 = $s7 - if0 $s3 goto :while134_end + $t7 = $s7 + if0 $t7 goto :while134_end while134_body: $s4 = $s4 - $s3 = [$s4+0] - $s7 = [$s3+4] + $t7 = [$s4+0] + $s7 = [$t7+4] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1043,7 +1043,7 @@ while134_body: local[16] = $t8 $a0 = $s4 call $s7 - $s3 = $v0 + $s0 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1053,11 +1053,11 @@ while134_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s7 = $s3 + $s7 = $s0 PrintIntS($s7 ) $s6 = $s6 $s7 = [$s6+0] - $s3 = [$s7+32] + $t7 = [$s7+32] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1068,8 +1068,8 @@ while134_body: local[15] = $t7 local[16] = $t8 $a0 = $s6 - call $s3 - $s7 = $v0 + call $t7 + $s2 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1079,10 +1079,10 @@ while134_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s6 = $s7 + $s6 = $s2 $s6 = $s6 - $s7 = [$s6+0] - $s3 = [$s7+24] + $t7 = [$s6+0] + $s7 = [$t7+24] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1093,8 +1093,8 @@ while134_body: local[15] = $t7 local[16] = $t8 $a0 = $s6 - call $s3 - $s7 = $v0 + call $s7 + $s3 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1104,10 +1104,10 @@ while134_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s5 = $s7 + $s5 = $s3 $s6 = $s6 $s7 = [$s6+0] - $s5 = [$s7+28] + $t7 = [$s7+28] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1118,8 +1118,8 @@ while134_body: local[15] = $t7 local[16] = $t8 $a0 = $s6 - call $s5 - $s7 = $v0 + call $t7 + $s1 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1129,11 +1129,11 @@ while134_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s4 = $s7 + $s4 = $s1 goto :while134_test while134_end: - $s7 = 1 - $v0 = $s7 + $s0 = 1 + $v0 = $s0 $s0 = local[0] $s1 = local[1] $s2 = local[2] @@ -1181,10 +1181,10 @@ func LL_Start [in 0, out 0, local 17] $t7 = local[15] $t8 = local[16] $s5 = $s6 - $s6 = $s7 - $s6 = $s6 - $s7 = [$s6+0] - $s4 = [$s7+0] + $s5 = $s7 + $s5 = $s5 + $s7 = [$s5+0] + $s6 = [$s7+0] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1194,8 +1194,8 @@ func LL_Start [in 0, out 0, local 17] local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s6 - call $s4 + $a0 = $s5 + call $s6 $s7 = $v0 $t0 = local[8] $t1 = local[9] @@ -1207,9 +1207,9 @@ func LL_Start [in 0, out 0, local 17] $t7 = local[15] $t8 = local[16] $s5 = $s7 - $s6 = $s6 - $s7 = [$s6+0] - $s4 = [$s7+36] + $s5 = $s5 + $s7 = [$s5+0] + $s6 = [$s7+36] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1219,8 +1219,8 @@ func LL_Start [in 0, out 0, local 17] local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s6 - call $s4 + $a0 = $s5 + call $s6 $s7 = $v0 $t0 = local[8] $t1 = local[9] @@ -1234,13 +1234,13 @@ func LL_Start [in 0, out 0, local 17] $s5 = $s7 $s7 = HeapAllocZ(36 ) [$s7+0] = :functable_Element - $s4 = $s7 - $s4 = $s4 - $s7 = [$s4+0] - $s3 = [$s7+0] + $s6 = $s7 + $s6 = $s6 + $s7 = [$s6+0] + $s4 = [$s7+0] $s7 = 25 - $s2 = 37000 - $s1 = 0 + $s3 = 37000 + $s2 = 0 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1250,12 +1250,12 @@ func LL_Start [in 0, out 0, local 17] local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s4 + $a0 = $s6 $a1 = $s7 - $a2 = $s2 - $a3 = $s1 - call $s3 - $s0 = $v0 + $a2 = $s3 + $a3 = $s2 + call $s4 + $s1 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1265,11 +1265,11 @@ func LL_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s5 = $s0 - $s6 = $s6 - $s0 = [$s6+0] - $s1 = [$s0+8] - $s0 = $s4 + $s5 = $s1 + $s5 = $s5 + $s1 = [$s5+0] + $s2 = [$s1+8] + $s1 = $s6 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1279,10 +1279,10 @@ func LL_Start [in 0, out 0, local 17] local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s6 - $a1 = $s0 - call $s1 - $s2 = $v0 + $a0 = $s5 + $a1 = $s1 + call $s2 + $s3 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1292,10 +1292,10 @@ func LL_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s6 = $s2 - $s6 = $s6 - $s2 = [$s6+0] - $s0 = [$s2+36] + $s5 = $s3 + $s5 = $s5 + $s3 = [$s5+0] + $s1 = [$s3+36] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1305,9 +1305,9 @@ func LL_Start [in 0, out 0, local 17] local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s6 - call $s0 - $s2 = $v0 + $a0 = $s5 + call $s1 + $s3 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1317,17 +1317,17 @@ func LL_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $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 + $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 $s7 = 1 local[8] = $t0 local[9] = $t1 @@ -1338,12 +1338,12 @@ func LL_Start [in 0, out 0, local 17] local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s4 - $a1 = $s2 - $a2 = $s1 + $a0 = $s6 + $a1 = $s3 + $a2 = $s2 $a3 = $s7 - call $s0 - $s3 = $v0 + call $s1 + $s4 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1353,12 +1353,12 @@ func LL_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s5 = $s3 - $s3 = $s4 - $s6 = $s6 - $s7 = [$s6+0] - $s1 = [$s7+8] - $s7 = $s4 + $s5 = $s4 + $s4 = $s6 + $s5 = $s5 + $s7 = [$s5+0] + $s2 = [$s7+8] + $s7 = $s6 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1368,10 +1368,10 @@ func LL_Start [in 0, out 0, local 17] local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s6 + $a0 = $s5 $a1 = $s7 - call $s1 - $s2 = $v0 + call $s2 + $s3 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1381,10 +1381,10 @@ func LL_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s6 = $s2 - $s6 = $s6 - $s2 = [$s6+0] - $s7 = [$s2+36] + $s5 = $s3 + $s5 = $s5 + $s3 = [$s5+0] + $s7 = [$s3+36] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1394,9 +1394,9 @@ func LL_Start [in 0, out 0, local 17] local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s6 + $a0 = $s5 call $s7 - $s2 = $v0 + $s3 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1406,18 +1406,18 @@ func LL_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $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 + $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 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1427,12 +1427,12 @@ func LL_Start [in 0, out 0, local 17] local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s4 - $a1 = $s2 - $a2 = $s1 - $a3 = $s0 + $a0 = $s6 + $a1 = $s3 + $a2 = $s2 + $a3 = $s1 call $s7 - $t7 = $v0 + $s0 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1442,11 +1442,11 @@ func LL_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s5 = $t7 - $s6 = $s6 - $t7 = [$s6+0] - $s0 = [$t7+8] - $t7 = $s4 + $s5 = $s0 + $s5 = $s5 + $s0 = [$s5+0] + $s1 = [$s0+8] + $s0 = $s6 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1456,10 +1456,10 @@ func LL_Start [in 0, out 0, local 17] local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s6 - $a1 = $t7 - call $s0 - $s1 = $v0 + $a0 = $s5 + $a1 = $s0 + call $s1 + $s2 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1469,10 +1469,10 @@ func LL_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s6 = $s1 - $s6 = $s6 - $s1 = [$s6+0] - $t7 = [$s1+36] + $s5 = $s2 + $s5 = $s5 + $s2 = [$s5+0] + $s0 = [$s2+36] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1482,9 +1482,9 @@ func LL_Start [in 0, out 0, local 17] local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s6 - call $t7 - $s1 = $v0 + $a0 = $s5 + call $s0 + $s2 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1494,15 +1494,15 @@ func LL_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s5 = $s1 - $s1 = HeapAllocZ(36 ) - [$s1+0] = :functable_Element - $t7 = $s1 - $t7 = $t7 - $s1 = [$t7+0] - $s0 = [$s1+0] - $s1 = 27 - $s2 = 34000 + $s5 = $s2 + $s2 = HeapAllocZ(36 ) + [$s2+0] = :functable_Element + $s0 = $s2 + $s0 = $s0 + $s2 = [$s0+0] + $s1 = [$s2+0] + $s2 = 27 + $s3 = 34000 $s7 = 0 local[8] = $t0 local[9] = $t1 @@ -1513,12 +1513,12 @@ func LL_Start [in 0, out 0, local 17] local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $t7 - $a1 = $s1 - $a2 = $s2 + $a0 = $s0 + $a1 = $s2 + $a2 = $s3 $a3 = $s7 - call $s0 - $t6 = $v0 + call $s1 + $t7 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1528,11 +1528,11 @@ func LL_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s5 = $t6 - $s6 = $s6 - $t6 = [$s6+0] - $s7 = [$t6+20] - $t6 = $s3 + $s5 = $t7 + $s5 = $s5 + $t7 = [$s5+0] + $s7 = [$t7+20] + $t7 = $s4 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1542,10 +1542,10 @@ func LL_Start [in 0, out 0, local 17] local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s6 - $a1 = $t6 + $a0 = $s5 + $a1 = $t7 call $s7 - $s2 = $v0 + $s3 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1555,12 +1555,12 @@ func LL_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $t6 = $s2 - PrintIntS($t6 ) - $s6 = $s6 - $t6 = [$s6+0] - $s2 = [$t6+20] - $t6 = $t7 + $t7 = $s3 + PrintIntS($t7 ) + $s5 = $s5 + $t7 = [$s5+0] + $s3 = [$t7+20] + $t7 = $s0 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1570,10 +1570,10 @@ func LL_Start [in 0, out 0, local 17] local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s6 - $a1 = $t6 - call $s2 - $t7 = $v0 + $a0 = $s5 + $a1 = $t7 + call $s3 + $s0 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1583,18 +1583,18 @@ func LL_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $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 + $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 $s7 = 0 local[8] = $t0 local[9] = $t1 @@ -1605,12 +1605,12 @@ func LL_Start [in 0, out 0, local 17] local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s4 - $a1 = $t6 - $a2 = $s2 + $a0 = $s6 + $a1 = $t7 + $a2 = $s3 $a3 = $s7 - call $t7 - $s1 = $v0 + call $s0 + $s2 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1620,11 +1620,11 @@ func LL_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s5 = $s1 - $s6 = $s6 - $s1 = [$s6+0] - $s7 = [$s1+8] - $s1 = $s4 + $s5 = $s2 + $s5 = $s5 + $s2 = [$s5+0] + $s7 = [$s2+8] + $s2 = $s6 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1634,10 +1634,10 @@ func LL_Start [in 0, out 0, local 17] local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s6 - $a1 = $s1 + $a0 = $s5 + $a1 = $s2 call $s7 - $s2 = $v0 + $s3 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1647,10 +1647,10 @@ func LL_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s6 = $s2 - $s6 = $s6 - $s2 = [$s6+0] - $s1 = [$s2+36] + $s5 = $s3 + $s5 = $s5 + $s3 = [$s5+0] + $s2 = [$s3+36] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1660,9 +1660,9 @@ func LL_Start [in 0, out 0, local 17] local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s6 - call $s1 - $s2 = $v0 + $a0 = $s5 + call $s2 + $s3 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1672,13 +1672,13 @@ func LL_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s5 = $s2 - $s2 = 2220000 - PrintIntS($s2 ) - $s6 = $s6 - $s2 = [$s6+0] - $s1 = [$s2+16] - $s2 = $s3 + $s5 = $s3 + $s3 = 2220000 + PrintIntS($s3 ) + $s5 = $s5 + $s3 = [$s5+0] + $s2 = [$s3+16] + $s3 = $s4 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1688,10 +1688,10 @@ func LL_Start [in 0, out 0, local 17] local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s6 - $a1 = $s2 - call $s1 - $s3 = $v0 + $a0 = $s5 + $a1 = $s3 + call $s2 + $s4 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1701,10 +1701,10 @@ func LL_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s6 = $s3 - $s6 = $s6 - $s3 = [$s6+0] - $s2 = [$s3+36] + $s5 = $s4 + $s5 = $s5 + $s4 = [$s5+0] + $s3 = [$s4+36] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1714,9 +1714,9 @@ func LL_Start [in 0, out 0, local 17] local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s6 - call $s2 - $s3 = $v0 + $a0 = $s5 + call $s3 + $s4 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1726,13 +1726,13 @@ func LL_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s5 = $s3 - $s3 = 33300000 - PrintIntS($s3 ) - $s6 = $s6 - $s3 = [$s6+0] - $s2 = [$s3+16] - $s3 = $s4 + $s5 = $s4 + $s4 = 33300000 + PrintIntS($s4 ) + $s5 = $s5 + $s4 = [$s5+0] + $s3 = [$s4+16] + $s4 = $s6 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1742,10 +1742,10 @@ func LL_Start [in 0, out 0, local 17] local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s6 - $a1 = $s3 - call $s2 - $s4 = $v0 + $a0 = $s5 + $a1 = $s4 + call $s3 + $s6 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1755,10 +1755,10 @@ func LL_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s6 = $s4 - $s6 = $s6 - $s4 = [$s6+0] - $s3 = [$s4+36] + $s5 = $s6 + $s5 = $s5 + $s6 = [$s5+0] + $s4 = [$s6+36] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1768,9 +1768,9 @@ func LL_Start [in 0, out 0, local 17] local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s6 - call $s3 - $s4 = $v0 + $a0 = $s5 + call $s4 + $s6 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1780,11 +1780,11 @@ func LL_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s5 = $s4 - $s4 = 44440000 - PrintIntS($s4 ) - $s4 = 0 - $v0 = $s4 + $s5 = $s6 + $s6 = 44440000 + PrintIntS($s6 ) + $s6 = 0 + $v0 = $s6 $s0 = local[0] $s1 = local[1] $s2 = local[2] diff --git a/output/QuickSort.vaporm b/output/QuickSort.vaporm index 3338b43..9b4d333 100644 --- a/output/QuickSort.vaporm +++ b/output/QuickSort.vaporm @@ -135,7 +135,7 @@ func QS_Start [in 0, out 0, local 17] $a1 = $s7 $a2 = $s5 call $s3 - $s2 = $v0 + $s4 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -145,9 +145,9 @@ func QS_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s4 = $s2 - $s2 = [$s6+0] - $s2 = [$s2+8] + $s4 = $s4 + $s4 = [$s6+0] + $s4 = [$s4+8] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -158,7 +158,7 @@ func QS_Start [in 0, out 0, local 17] local[15] = $t7 local[16] = $t8 $a0 = $s6 - call $s2 + call $s4 $s5 = $v0 $t0 = local[8] $t1 = local[9] @@ -261,10 +261,10 @@ while47_body: $t4 = [$t6+0] $t5 = $t4 $t4 = $s1 - $s1 = $t5 - $t5 = LtS($t4 $s1 ) - $s1 = Eq($t5 0 ) - $t5 = $s1 + $t6 = $t5 + $t5 = LtS($t4 $t6 ) + $t6 = Eq($t5 0 ) + $t5 = $t6 if0 $t5 goto :if55_else if55_body: $t7 = 0 @@ -285,10 +285,10 @@ while47_end: $t5 = Add($t5 4 ) $t5 = Add($t7 $t5 ) $t7 = [$s5+16] - $s1 = MulS($s0 4 ) - $s1 = Add($s1 4 ) - $s1 = Add($t7 $s1 ) - $t7 = [$s1+0] + $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 ) @@ -297,12 +297,12 @@ while47_end: [$t5+0] = $s4 $t5 = $s0 $t7 = $s3 - $s1 = 1 - $t4 = Add($t7 $s1 ) - $s1 = $t4 - $t4 = LtS($t5 $s1 ) - $s1 = $t4 - if0 $s1 goto :if70_else + $t6 = 1 + $t4 = Add($t7 $t6 ) + $t6 = $t4 + $t4 = LtS($t5 $t6 ) + $t6 = $t4 + if0 $t6 goto :if70_else if70_body: $s2 = 0 goto :if70_end @@ -367,13 +367,13 @@ while32_end: $t7 = local[15] $t8 = local[16] $s4 = $s0 - $s0 = [$s5+0] - $s2 = $s3 + $s4 = [$s5+0] + $s0 = $s3 $s3 = 1 - $s1 = Add($s2 $s3 ) - $s3 = $s1 - $s1 = $s7 - $s0 = [$s0+4] + $s2 = Add($s0 $s3 ) + $s3 = $s2 + $s2 = $s7 + $s4 = [$s4+4] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -385,8 +385,8 @@ while32_end: local[16] = $t8 $a0 = $s5 $a1 = $s3 - $a2 = $s1 - call $s0 + $a2 = $s2 + call $s4 $s7 = $v0 $t0 = local[8] $t1 = local[9] @@ -402,8 +402,8 @@ while32_end: if22_else: $s4 = 0 if22_end: - $s4 = 0 - $v0 = $s4 + $s7 = 0 + $v0 = $s7 $s0 = local[0] $s1 = local[1] $s2 = local[2] @@ -432,20 +432,20 @@ while104_test: if0 $s4 goto :while104_end while104_body: $s4 = [$s6+16] - $s6 = MulS($s7 4 ) - $s6 = Add($s6 4 ) - $s6 = Add($s4 $s6 ) - $s4 = [$s6+0] - $s6 = $s4 - PrintIntS($s6 ) - $s6 = $s7 + $s3 = MulS($s7 4 ) + $s3 = Add($s3 4 ) + $s3 = Add($s4 $s3 ) + $s4 = [$s3+0] + $s3 = $s4 + PrintIntS($s3 ) + $s3 = $s7 $s4 = 1 - $s3 = Add($s6 $s4 ) - $s7 = $s3 + $s5 = Add($s3 $s4 ) + $s7 = $s5 goto :while104_test while104_end: - $s3 = 0 - $v0 = $s3 + $s6 = 0 + $v0 = $s6 $s0 = local[0] $s1 = local[1] $s2 = local[2] diff --git a/output/TreeVisitor.vaporm b/output/TreeVisitor.vaporm index 9a2c5f3..3dc9134 100644 --- a/output/TreeVisitor.vaporm +++ b/output/TreeVisitor.vaporm @@ -114,36 +114,8 @@ func TV_Start [in 0, out 0, local 17] $t8 = local[16] $s6 = $s4 $s7 = $s7 - $s4 = [$s7+0] - $s5 = [$s4+72] - local[8] = $t0 - local[9] = $t1 - local[10] = $t2 - local[11] = $t3 - local[12] = $t4 - local[13] = $t5 - local[14] = $t6 - local[15] = $t7 - local[16] = $t8 - $a0 = $s7 - call $s5 - $s4 = $v0 - $t0 = local[8] - $t1 = local[9] - $t2 = local[10] - $t3 = local[11] - $t4 = local[12] - $t5 = local[13] - $t6 = local[14] - $t7 = local[15] - $t8 = local[16] - $s6 = $s4 - $s4 = 100000000 - PrintIntS($s4 ) - $s7 = $s7 - $s4 = [$s7+0] - $s5 = [$s4+48] - $s4 = 8 + $s6 = [$s7+0] + $s4 = [$s6+72] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -154,9 +126,8 @@ func TV_Start [in 0, out 0, local 17] local[15] = $t7 local[16] = $t8 $a0 = $s7 - $a1 = $s4 - call $s5 - $s3 = $v0 + call $s4 + $s6 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -166,11 +137,13 @@ func TV_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s6 = $s3 + $s6 = $s6 + $s6 = 100000000 + PrintIntS($s6 ) $s7 = $s7 - $s3 = [$s7+0] - $s4 = [$s3+48] - $s3 = 24 + $s6 = [$s7+0] + $s4 = [$s6+48] + $s6 = 8 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -181,7 +154,7 @@ func TV_Start [in 0, out 0, local 17] local[15] = $t7 local[16] = $t8 $a0 = $s7 - $a1 = $s3 + $a1 = $s6 call $s4 $s5 = $v0 $t0 = local[8] @@ -196,8 +169,8 @@ func TV_Start [in 0, out 0, local 17] $s6 = $s5 $s7 = $s7 $s5 = [$s7+0] - $s3 = [$s5+48] - $s5 = 4 + $s6 = [$s5+48] + $s5 = 24 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -209,7 +182,7 @@ func TV_Start [in 0, out 0, local 17] local[16] = $t8 $a0 = $s7 $a1 = $s5 - call $s3 + call $s6 $s4 = $v0 $t0 = local[8] $t1 = local[9] @@ -224,7 +197,7 @@ func TV_Start [in 0, out 0, local 17] $s7 = $s7 $s4 = [$s7+0] $s5 = [$s4+48] - $s4 = 12 + $s4 = 4 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -237,7 +210,7 @@ func TV_Start [in 0, out 0, local 17] $a0 = $s7 $a1 = $s4 call $s5 - $s3 = $v0 + $s6 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -247,11 +220,11 @@ func TV_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s6 = $s3 + $s6 = $s6 $s7 = $s7 - $s3 = [$s7+0] - $s4 = [$s3+48] - $s3 = 20 + $s6 = [$s7+0] + $s4 = [$s6+48] + $s6 = 12 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -262,7 +235,7 @@ func TV_Start [in 0, out 0, local 17] local[15] = $t7 local[16] = $t8 $a0 = $s7 - $a1 = $s3 + $a1 = $s6 call $s4 $s5 = $v0 $t0 = local[8] @@ -277,8 +250,8 @@ func TV_Start [in 0, out 0, local 17] $s6 = $s5 $s7 = $s7 $s5 = [$s7+0] - $s3 = [$s5+48] - $s5 = 28 + $s6 = [$s5+48] + $s5 = 20 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -290,7 +263,7 @@ func TV_Start [in 0, out 0, local 17] local[16] = $t8 $a0 = $s7 $a1 = $s5 - call $s3 + call $s6 $s4 = $v0 $t0 = local[8] $t1 = local[9] @@ -305,7 +278,7 @@ func TV_Start [in 0, out 0, local 17] $s7 = $s7 $s4 = [$s7+0] $s5 = [$s4+48] - $s4 = 14 + $s4 = 28 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -318,7 +291,7 @@ func TV_Start [in 0, out 0, local 17] $a0 = $s7 $a1 = $s4 call $s5 - $s3 = $v0 + $s6 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -328,10 +301,11 @@ func TV_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s6 = $s3 + $s6 = $s6 $s7 = $s7 - $s3 = [$s7+0] - $s4 = [$s3+72] + $s6 = [$s7+0] + $s4 = [$s6+48] + $s6 = 14 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -342,8 +316,9 @@ func TV_Start [in 0, out 0, local 17] local[15] = $t7 local[16] = $t8 $a0 = $s7 + $a1 = $s6 call $s4 - $s3 = $v0 + $s5 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -353,18 +328,10 @@ func TV_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s6 = $s3 - $s3 = 100000000 - PrintIntS($s3 ) - $s3 = HeapAllocZ(16 ) - [$s3+0] = :functable_MyVisitor - $s4 = $s3 - $s3 = 50000000 - PrintIntS($s3 ) + $s6 = $s5 $s7 = $s7 - $s3 = [$s7+0] - $s5 = [$s3+80] - $s3 = $s4 + $s5 = [$s7+0] + $s6 = [$s5+72] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -375,9 +342,8 @@ func TV_Start [in 0, out 0, local 17] local[15] = $t7 local[16] = $t8 $a0 = $s7 - $a1 = $s3 - call $s5 - $s4 = $v0 + call $s6 + $s5 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -387,13 +353,18 @@ func TV_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s3 = $s4 - $s3 = 100000000 - PrintIntS($s3 ) + $s6 = $s5 + $s5 = 100000000 + PrintIntS($s5 ) + $s5 = HeapAllocZ(16 ) + [$s5+0] = :functable_MyVisitor + $s6 = $s5 + $s5 = 50000000 + PrintIntS($s5 ) $s7 = $s7 - $s3 = [$s7+0] - $s4 = [$s3+68] - $s3 = 24 + $s5 = [$s7+0] + $s4 = [$s5+80] + $s5 = $s6 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -404,9 +375,9 @@ func TV_Start [in 0, out 0, local 17] local[15] = $t7 local[16] = $t8 $a0 = $s7 - $a1 = $s3 + $a1 = $s5 call $s4 - $s5 = $v0 + $s6 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -416,12 +387,13 @@ func TV_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s3 = $s5 - PrintIntS($s3 ) + $s5 = $s6 + $s5 = 100000000 + PrintIntS($s5 ) $s7 = $s7 - $s3 = [$s7+0] - $s5 = [$s3+68] - $s3 = 12 + $s5 = [$s7+0] + $s6 = [$s5+68] + $s5 = 24 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -432,8 +404,8 @@ func TV_Start [in 0, out 0, local 17] local[15] = $t7 local[16] = $t8 $a0 = $s7 - $a1 = $s3 - call $s5 + $a1 = $s5 + call $s6 $s4 = $v0 $t0 = local[8] $t1 = local[9] @@ -444,12 +416,12 @@ func TV_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s3 = $s4 - PrintIntS($s3 ) + $s5 = $s4 + PrintIntS($s5 ) $s7 = $s7 - $s3 = [$s7+0] - $s4 = [$s3+68] - $s3 = 16 + $s5 = [$s7+0] + $s4 = [$s5+68] + $s5 = 12 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -460,9 +432,9 @@ func TV_Start [in 0, out 0, local 17] local[15] = $t7 local[16] = $t8 $a0 = $s7 - $a1 = $s3 + $a1 = $s5 call $s4 - $s5 = $v0 + $s6 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -472,12 +444,12 @@ func TV_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s3 = $s5 - PrintIntS($s3 ) + $s5 = $s6 + PrintIntS($s5 ) $s7 = $s7 - $s3 = [$s7+0] - $s5 = [$s3+68] - $s3 = 50 + $s5 = [$s7+0] + $s6 = [$s5+68] + $s5 = 16 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -488,8 +460,8 @@ func TV_Start [in 0, out 0, local 17] local[15] = $t7 local[16] = $t8 $a0 = $s7 - $a1 = $s3 - call $s5 + $a1 = $s5 + call $s6 $s4 = $v0 $t0 = local[8] $t1 = local[9] @@ -500,12 +472,12 @@ func TV_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s3 = $s4 - PrintIntS($s3 ) + $s5 = $s4 + PrintIntS($s5 ) $s7 = $s7 - $s3 = [$s7+0] - $s4 = [$s3+68] - $s3 = 12 + $s5 = [$s7+0] + $s4 = [$s5+68] + $s5 = 50 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -516,9 +488,9 @@ func TV_Start [in 0, out 0, local 17] local[15] = $t7 local[16] = $t8 $a0 = $s7 - $a1 = $s3 + $a1 = $s5 call $s4 - $s5 = $v0 + $s6 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -528,12 +500,12 @@ func TV_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s3 = $s5 - PrintIntS($s3 ) + $s5 = $s6 + PrintIntS($s5 ) $s7 = $s7 - $s3 = [$s7+0] - $s5 = [$s3+52] - $s3 = 12 + $s5 = [$s7+0] + $s6 = [$s5+68] + $s5 = 12 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -544,8 +516,8 @@ func TV_Start [in 0, out 0, local 17] local[15] = $t7 local[16] = $t8 $a0 = $s7 - $a1 = $s3 - call $s5 + $a1 = $s5 + call $s6 $s4 = $v0 $t0 = local[8] $t1 = local[9] @@ -556,10 +528,12 @@ func TV_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s6 = $s4 + $s5 = $s4 + PrintIntS($s5 ) $s7 = $s7 - $s4 = [$s7+0] - $s3 = [$s4+72] + $s5 = [$s7+0] + $s4 = [$s5+52] + $s5 = 12 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -570,8 +544,9 @@ func TV_Start [in 0, out 0, local 17] local[15] = $t7 local[16] = $t8 $a0 = $s7 - call $s3 - $s4 = $v0 + $a1 = $s5 + call $s4 + $s6 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -581,11 +556,10 @@ func TV_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s6 = $s4 + $s6 = $s6 $s7 = $s7 - $s4 = [$s7+0] - $s6 = [$s4+68] - $s4 = 12 + $s6 = [$s7+0] + $s5 = [$s6+72] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -596,9 +570,8 @@ func TV_Start [in 0, out 0, local 17] local[15] = $t7 local[16] = $t8 $a0 = $s7 - $a1 = $s4 - call $s6 - $s3 = $v0 + call $s5 + $s6 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -608,10 +581,37 @@ func TV_Start [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s4 = $s3 - PrintIntS($s4 ) - $s4 = 0 - $v0 = $s4 + $s6 = $s6 + $s7 = $s7 + $s6 = [$s7+0] + $s5 = [$s6+68] + $s6 = 12 + local[8] = $t0 + local[9] = $t1 + local[10] = $t2 + local[11] = $t3 + local[12] = $t4 + local[13] = $t5 + local[14] = $t6 + local[15] = $t7 + local[16] = $t8 + $a0 = $s7 + $a1 = $s6 + call $s5 + $s4 = $v0 + $t0 = local[8] + $t1 = local[9] + $t2 = local[10] + $t3 = local[11] + $t4 = local[12] + $t5 = local[13] + $t6 = local[14] + $t7 = local[15] + $t8 = local[16] + $s6 = $s4 + PrintIntS($s6 ) + $s6 = 0 + $v0 = $s6 $s0 = local[0] $s1 = local[1] $s2 = local[2] @@ -916,7 +916,7 @@ if105_end: $s6 = local[6] $s7 = local[7] ret -func Tree_Insert [in 0, out 0, local 17] +func Tree_Insert [in 0, out 0, local 29] local[0] = $s0 local[1] = $s1 local[2] = $s2 @@ -957,15 +957,15 @@ func Tree_Insert [in 0, out 0, local 17] $t7 = local[15] $t8 = local[16] $s5 = $s2 - $s2 = $s6 + $s5 = $s6 $s6 = 1 while120_test: - $s3 = $s6 - if0 $s3 goto :while120_end + $s2 = $s6 + if0 $s2 goto :while120_end while120_body: - $s2 = $s2 - $s3 = [$s2+0] - $s1 = [$s3+20] + $s5 = $s5 + $s2 = [$s5+0] + null = [$s2+20] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -975,9 +975,9 @@ while120_body: local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s2 - call $s1 - $s3 = $v0 + $a0 = $s5 + call null + $t5 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -987,16 +987,16 @@ while120_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s1 = $s3 - $s3 = $s7 - $s7 = $s1 - $s1 = LtS($s3 $s7 ) - $s7 = $s1 - if0 $s7 goto :if125_else + $s2 = $t5 + null = $s7 + null = $s2 + $s2 = LtS(null null ) + null = $s2 + if0 null goto :if125_else if125_body: - $s2 = $s2 - $s7 = [$s2+0] - $s1 = [$s7+32] + $s5 = $s5 + $s2 = [$s5+0] + null = [$s2+32] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1006,9 +1006,9 @@ if125_body: local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s2 - call $s1 - $s7 = $v0 + $a0 = $s5 + call null + $t7 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1018,12 +1018,12 @@ if125_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s1 = $s7 - if0 $s1 goto :if129_else + $s2 = $t7 + if0 $s2 goto :if129_else if129_body: - $s2 = $s2 - $s1 = [$s2+0] - $s7 = [$s1+16] + $s5 = $s5 + $s2 = [$s5+0] + null = [$s2+16] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1033,9 +1033,9 @@ if129_body: local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s2 - call $s7 - $s1 = $v0 + $a0 = $s5 + call null + $s3 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1045,14 +1045,14 @@ if129_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s2 = $s1 + $s5 = $s3 goto :if129_end if129_else: $s6 = 0 - $s2 = $s2 - $s1 = [$s2+0] - $s7 = [$s1+36] - $s1 = 1 + $s5 = $s5 + $s2 = [$s5+0] + null = [$s2+36] + $s2 = 1 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1062,10 +1062,10 @@ if129_else: local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s2 - $a1 = $s1 - call $s7 - $s3 = $v0 + $a0 = $s5 + $a1 = $s2 + call null + $s0 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1075,11 +1075,11 @@ if129_else: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s5 = $s3 - $s2 = $s2 - $s3 = [$s2+0] - $s1 = [$s3+8] - $s3 = $s4 + $s5 = $s0 + $s5 = $s5 + $s2 = [$s5+0] + null = [$s2+8] + $s2 = $s4 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1089,10 +1089,10 @@ if129_else: local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s2 - $a1 = $s3 - call $s1 - $s7 = $v0 + $a0 = $s5 + $a1 = $s2 + call null + $t3 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1102,13 +1102,13 @@ if129_else: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s5 = $s7 + $s5 = $t3 if129_end: goto :if125_end if125_else: - $s2 = $s2 - $s7 = [$s2+0] - $s3 = [$s7+28] + $s5 = $s5 + $s2 = [$s5+0] + null = [$s2+28] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1118,9 +1118,9 @@ if125_else: local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s2 - call $s3 - $s7 = $v0 + $a0 = $s5 + call null + $t4 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1130,12 +1130,12 @@ if125_else: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s3 = $s7 - if0 $s3 goto :if144_else + $s2 = $t4 + if0 $s2 goto :if144_else if144_body: - $s2 = $s2 - $s3 = [$s2+0] - $s7 = [$s3+12] + $s5 = $s5 + $s2 = [$s5+0] + null = [$s2+12] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1145,9 +1145,9 @@ if144_body: local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s2 - call $s7 - $s3 = $v0 + $a0 = $s5 + call null + $s2 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1157,14 +1157,14 @@ if144_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s2 = $s3 + $s5 = $s2 goto :if144_end if144_else: $s6 = 0 - $s2 = $s2 - $s6 = [$s2+0] - $s3 = [$s6+40] - $s6 = 1 + $s5 = $s5 + $s2 = [$s5+0] + null = [$s2+40] + $s2 = 1 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1174,10 +1174,10 @@ if144_else: local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s2 - $a1 = $s6 - call $s3 - $s7 = $v0 + $a0 = $s5 + $a1 = $s2 + call null + $t6 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1187,11 +1187,11 @@ if144_else: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s5 = $s7 - $s2 = $s2 - $s7 = [$s2+0] - $s6 = [$s7+4] - $s7 = $s4 + $s5 = $t6 + $s5 = $s5 + $s2 = [$s5+0] + null = [$s2+4] + $s2 = $s4 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1201,10 +1201,10 @@ if144_else: local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s2 - $a1 = $s7 - call $s6 - $s4 = $v0 + $a0 = $s5 + $a1 = $s2 + call null + $s1 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1214,13 +1214,13 @@ if144_else: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s5 = $s4 + $s5 = $s1 if144_end: if125_end: goto :while120_test while120_end: - $s4 = 1 - $v0 = $s4 + $t3 = 1 + $v0 = $t3 $s0 = local[0] $s1 = local[1] $s2 = local[2] @@ -1230,7 +1230,7 @@ while120_end: $s6 = local[6] $s7 = local[7] ret -func Tree_Delete [in 0, out 0, local 17] +func Tree_Delete [in 0, out 0, local 44] local[0] = $s0 local[1] = $s1 local[2] = $s2 @@ -1252,7 +1252,7 @@ while160_test: while160_body: $s5 = $s5 $s0 = [$s5+0] - $t7 = [$s0+20] + null = [$s0+20] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1263,8 +1263,8 @@ while160_body: local[15] = $t7 local[16] = $t8 $a0 = $s5 - call $t7 - $s0 = $v0 + call null + $t5 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1274,16 +1274,16 @@ while160_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $t7 = $s0 - $s0 = $s7 - $t6 = $t7 - $t5 = LtS($s0 $t6 ) - $t6 = $t5 - if0 $t6 goto :if165_else + $s0 = $t5 + null = $s7 + null = $s0 + null = LtS(null null ) + null = null + if0 null goto :if165_else if165_body: $s5 = $s5 - $t6 = [$s5+0] - $t5 = [$t6+32] + null = [$s5+0] + null = [null+32] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1294,8 +1294,8 @@ if165_body: local[15] = $t7 local[16] = $t8 $a0 = $s5 - call $t5 - $t6 = $v0 + call null + null = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1305,13 +1305,13 @@ if165_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $t5 = $t6 - if0 $t5 goto :if169_else + null = null + if0 null goto :if169_else if169_body: $s4 = $s5 $s5 = $s5 - $t5 = [$s5+0] - $t6 = [$t5+16] + null = [$s5+0] + null = [null+16] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1322,8 +1322,8 @@ if169_body: local[15] = $t7 local[16] = $t8 $a0 = $s5 - call $t6 - $t5 = $v0 + call null + $t4 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1333,22 +1333,22 @@ if169_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s5 = $t5 + $s5 = $t4 goto :if169_end if169_else: $s3 = 0 if169_end: goto :if165_end if165_else: - $t5 = $t7 - $t7 = $s7 - $s7 = LtS($t5 $t7 ) - $t7 = $s7 - if0 $t7 goto :if176_else + null = $s0 + $s0 = $s7 + null = LtS(null $s0 ) + $s0 = null + if0 $s0 goto :if176_else if176_body: $s5 = $s5 - $t7 = [$s5+0] - $s7 = [$t7+28] + $s0 = [$s5+0] + null = [$s0+28] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1359,8 +1359,8 @@ if176_body: local[15] = $t7 local[16] = $t8 $a0 = $s5 - call $s7 - $t7 = $v0 + call null + $s0 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1370,13 +1370,13 @@ if176_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s7 = $t7 - if0 $s7 goto :if180_else + null = $s0 + if0 null goto :if180_else if180_body: $s4 = $s5 $s5 = $s5 - $s7 = [$s5+0] - $t7 = [$s7+12] + $s0 = [$s5+0] + null = [$s0+12] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1387,8 +1387,8 @@ if180_body: local[15] = $t7 local[16] = $t8 $a0 = $s5 - call $t7 - $s7 = $v0 + call null + $s0 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1398,19 +1398,19 @@ if180_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s5 = $s7 + $s5 = $s0 goto :if180_end if180_else: $s3 = 0 if180_end: goto :if176_end if176_else: - $s7 = $s1 - if0 $s7 goto :if187_else + $s0 = $s1 + if0 $s0 goto :if187_else if187_body: $s5 = $s5 - $s7 = [$s5+0] - $t7 = [$s7+28] + $s0 = [$s5+0] + null = [$s0+28] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1421,8 +1421,8 @@ if187_body: local[15] = $t7 local[16] = $t8 $a0 = $s5 - call $t7 - $s7 = $v0 + call null + $t6 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1432,11 +1432,11 @@ if187_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $t7 = Eq($s7 0 ) - $s7 = $t7 + $s0 = Eq($t6 0 ) + null = $s0 $s5 = $s5 - $t7 = [$s5+0] - $t5 = [$t7+32] + $s0 = [$s5+0] + null = [$s0+32] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1447,7 +1447,7 @@ if187_body: local[15] = $t7 local[16] = $t8 $a0 = $s5 - call $t5 + call null $t7 = $v0 $t0 = local[8] $t1 = local[9] @@ -1458,21 +1458,21 @@ if187_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $t5 = Eq($t7 0 ) - $t7 = $t5 - $t5 = Eq(1 $s7 ) - $s7 = Eq(1 $t7 ) - $t7 = Eq($t5 $s7 ) - $s7 = $t7 - if0 $s7 goto :if188_else + $s0 = Eq($t7 0 ) + null = $s0 + $s0 = Eq(1 null ) + null = Eq(1 null ) + null = Eq($s0 null ) + $s0 = null + if0 $s0 goto :if188_else if188_body: - $s7 = 1 + $s0 = 1 goto :if188_end if188_else: - $t7 = [$s6+0] - $t5 = $s4 - $t6 = $s5 - $t7 = [$t7+56] + $s0 = [$s6+0] + null = $s4 + null = $s5 + $s0 = [$s0+56] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1483,10 +1483,10 @@ if188_else: local[15] = $t7 local[16] = $t8 $a0 = $s6 - $a1 = $t5 - $a2 = $t6 - call $t7 - $s0 = $v0 + $a1 = null + $a2 = null + call $s0 + $t3 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1496,13 +1496,13 @@ if188_else: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s7 = $s0 + $s0 = $t3 if188_end: goto :if187_end if187_else: $s0 = [$s6+0] - $t6 = $s4 - $s4 = $s5 + null = $s4 + null = $s5 $s0 = [$s0+56] local[8] = $t0 local[9] = $t1 @@ -1514,10 +1514,10 @@ if187_else: local[15] = $t7 local[16] = $t8 $a0 = $s6 - $a1 = $t6 - $a2 = $s4 + $a1 = null + $a2 = null call $s0 - $s5 = $v0 + null = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1527,7 +1527,7 @@ if187_else: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s7 = $s5 + $s0 = null if187_end: $s2 = 1 $s3 = 0 @@ -1536,8 +1536,8 @@ if165_end: $s1 = 0 goto :while160_test while160_end: - $s1 = $s2 - $v0 = $s1 + $t3 = $s2 + $v0 = $t3 $s0 = local[0] $s1 = local[1] $s2 = local[2] @@ -1617,8 +1617,8 @@ if211_body: goto :if211_end if211_else: $s7 = $s7 - $s1 = [$s7+0] - $s4 = [$s1+28] + $s2 = [$s7+0] + $s1 = [$s2+28] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1629,8 +1629,8 @@ if211_else: local[15] = $t7 local[16] = $t8 $a0 = $s7 - call $s4 - $s1 = $v0 + call $s1 + $s2 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1640,13 +1640,13 @@ if211_else: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s4 = $s1 - if0 $s4 goto :if219_else + $s1 = $s2 + if0 $s1 goto :if219_else if219_body: - $s4 = [$s5+0] - $s1 = $s6 - $s3 = $s7 - $s4 = [$s4+60] + $s1 = [$s5+0] + $s2 = $s6 + $s4 = $s7 + $s1 = [$s1+60] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1657,10 +1657,10 @@ if219_body: local[15] = $t7 local[16] = $t8 $a0 = $s5 - $a1 = $s1 - $a2 = $s3 - call $s4 - $s0 = $v0 + $a1 = $s2 + $a2 = $s4 + call $s1 + $s3 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1670,12 +1670,12 @@ if219_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s2 = $s0 + $s2 = $s3 goto :if219_end if219_else: $s7 = $s7 - $s0 = [$s7+0] - $s3 = [$s0+20] + $s3 = [$s7+0] + $s4 = [$s3+20] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1686,8 +1686,8 @@ if219_else: local[15] = $t7 local[16] = $t8 $a0 = $s7 - call $s3 - $s0 = $v0 + call $s4 + $s3 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1697,10 +1697,10 @@ if219_else: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s3 = $s0 + $s4 = $s3 $s6 = $s6 - $s0 = [$s6+0] - $s7 = [$s0+16] + $s3 = [$s6+0] + $s7 = [$s3+16] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1712,7 +1712,7 @@ if219_else: local[16] = $t8 $a0 = $s6 call $s7 - $s0 = $v0 + $s3 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1722,9 +1722,9 @@ if219_else: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s7 = $s0 - $s0 = [$s7+0] - $s1 = [$s0+20] + $s7 = $s3 + $s3 = [$s7+0] + $s2 = [$s3+20] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1735,8 +1735,8 @@ if219_else: local[15] = $t7 local[16] = $t8 $a0 = $s7 - call $s1 - $s0 = $v0 + call $s2 + $s3 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1746,11 +1746,11 @@ if219_else: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s1 = $s0 - $s0 = [$s5+0] - $s7 = $s3 - $s3 = $s1 - $s0 = [$s0+44] + $s2 = $s3 + $s3 = [$s5+0] + $s7 = $s4 + $s4 = $s2 + $s3 = [$s3+44] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1762,9 +1762,9 @@ if219_else: local[16] = $t8 $a0 = $s5 $a1 = $s7 - $a2 = $s3 - call $s0 - $s1 = $v0 + $a2 = $s4 + call $s3 + $s2 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1774,13 +1774,13 @@ if219_else: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s3 = $s1 - if0 $s3 goto :if237_else + $s4 = $s2 + if0 $s4 goto :if237_else if237_body: $s6 = $s6 - $s3 = [$s6+0] - $s1 = [$s3+8] - $s3 = [$s5+104] + $s4 = [$s6+0] + $s2 = [$s4+8] + $s4 = [$s5+104] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1791,8 +1791,8 @@ if237_body: local[15] = $t7 local[16] = $t8 $a0 = $s6 - $a1 = $s3 - call $s1 + $a1 = $s4 + call $s2 $s7 = $v0 $t0 = local[8] $t1 = local[9] @@ -1806,7 +1806,7 @@ if237_body: $s2 = $s7 $s6 = $s6 $s7 = [$s6+0] - $s3 = [$s7+36] + $s4 = [$s7+36] $s7 = 0 local[8] = $t0 local[9] = $t1 @@ -1819,8 +1819,8 @@ if237_body: local[16] = $t8 $a0 = $s6 $a1 = $s7 - call $s3 - $s1 = $v0 + call $s4 + $s2 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1830,13 +1830,13 @@ if237_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s2 = $s1 + $s2 = $s2 goto :if237_end if237_else: $s6 = $s6 - $s1 = [$s6+0] - $s7 = [$s1+4] - $s1 = [$s5+104] + $s2 = [$s6+0] + $s7 = [$s2+4] + $s2 = [$s5+104] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1847,7 +1847,7 @@ if237_else: local[15] = $t7 local[16] = $t8 $a0 = $s6 - $a1 = $s1 + $a1 = $s2 call $s7 $s5 = $v0 $t0 = local[8] @@ -1862,7 +1862,7 @@ if237_else: $s2 = $s5 $s6 = $s6 $s5 = [$s6+0] - $s1 = [$s5+40] + $s2 = [$s5+40] $s5 = 0 local[8] = $t0 local[9] = $t1 @@ -1875,7 +1875,7 @@ if237_else: local[16] = $t8 $a0 = $s6 $a1 = $s5 - call $s1 + call $s2 $s7 = $v0 $t0 = local[8] $t1 = local[9] @@ -1915,8 +1915,8 @@ func Tree_RemoveRight [in 0, out 0, local 17] $s7 = $a2 while259_test: $s7 = $s7 - $s4 = [$s7+0] - $s3 = [$s4+28] + $t7 = [$s7+0] + $t6 = [$t7+28] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1927,8 +1927,8 @@ while259_test: local[15] = $t7 local[16] = $t8 $a0 = $s7 - call $s3 - $s4 = $v0 + call $t6 + $s1 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1938,15 +1938,15 @@ while259_test: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s3 = $s4 - if0 $s3 goto :while259_end + $t6 = $s1 + if0 $t6 goto :while259_end while259_body: $s7 = $s7 - $s3 = [$s7+0] - $s4 = [$s3+24] + $t6 = [$s7+0] + $t7 = [$t6+24] $s7 = $s7 - $s3 = [$s7+0] - $s2 = [$s3+12] + $t6 = [$s7+0] + $t5 = [$t6+12] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1957,7 +1957,7 @@ while259_body: local[15] = $t7 local[16] = $t8 $a0 = $s7 - call $s2 + call $t5 $s3 = $v0 $t0 = local[8] $t1 = local[9] @@ -1968,9 +1968,9 @@ while259_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s2 = $s3 - $s3 = [$s2+0] - $s1 = [$s3+20] + $t5 = $s3 + $t6 = [$t5+0] + $t4 = [$t6+20] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -1980,9 +1980,9 @@ while259_body: local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s2 - call $s1 - $s3 = $v0 + $a0 = $t5 + call $t4 + $s4 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -1992,7 +1992,7 @@ while259_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s1 = $s3 + $t4 = $s4 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2003,9 +2003,9 @@ while259_body: local[15] = $t7 local[16] = $t8 $a0 = $s7 - $a1 = $s1 - call $s4 - $s3 = $v0 + $a1 = $t4 + call $t7 + $s0 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -2015,11 +2015,11 @@ while259_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s1 = $s3 + $t4 = $s0 $s6 = $s7 $s7 = $s7 - $s3 = [$s7+0] - $s4 = [$s3+12] + $t4 = [$s7+0] + $t7 = [$t4+12] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2030,8 +2030,8 @@ while259_body: local[15] = $t7 local[16] = $t8 $a0 = $s7 - call $s4 - $s3 = $v0 + call $t7 + $s2 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -2041,13 +2041,13 @@ while259_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s7 = $s3 + $s7 = $s2 goto :while259_test while259_end: $s6 = $s6 - $s3 = [$s6+0] - $s7 = [$s3+4] - $s3 = [$s5+104] + $s0 = [$s6+0] + $s1 = [$s0+4] + $s0 = [$s5+104] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2058,8 +2058,8 @@ while259_end: local[15] = $t7 local[16] = $t8 $a0 = $s6 - $a1 = $s3 - call $s7 + $a1 = $s0 + call $s1 $s5 = $v0 $t0 = local[8] $t1 = local[9] @@ -2070,10 +2070,10 @@ while259_end: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s1 = $s5 + $t4 = $s5 $s6 = $s6 $s5 = [$s6+0] - $s3 = [$s5+40] + $s0 = [$s5+40] $s5 = 0 local[8] = $t0 local[9] = $t1 @@ -2086,8 +2086,8 @@ while259_end: local[16] = $t8 $a0 = $s6 $a1 = $s5 - call $s3 - $s7 = $v0 + call $s0 + $s1 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -2097,9 +2097,9 @@ while259_end: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s1 = $s7 - $s7 = 1 - $v0 = $s7 + $t4 = $s1 + $s1 = 1 + $v0 = $s1 $s0 = local[0] $s1 = local[1] $s2 = local[2] @@ -2123,8 +2123,8 @@ func Tree_RemoveLeft [in 0, out 0, local 17] $s7 = $a2 while287_test: $s7 = $s7 - $s4 = [$s7+0] - $s3 = [$s4+32] + $t7 = [$s7+0] + $t6 = [$t7+32] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2135,8 +2135,8 @@ while287_test: local[15] = $t7 local[16] = $t8 $a0 = $s7 - call $s3 - $s4 = $v0 + call $t6 + $s1 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -2146,15 +2146,15 @@ while287_test: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s3 = $s4 - if0 $s3 goto :while287_end + $t6 = $s1 + if0 $t6 goto :while287_end while287_body: $s7 = $s7 - $s3 = [$s7+0] - $s4 = [$s3+24] + $t6 = [$s7+0] + $t7 = [$t6+24] $s7 = $s7 - $s3 = [$s7+0] - $s2 = [$s3+16] + $t6 = [$s7+0] + $t5 = [$t6+16] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2165,7 +2165,7 @@ while287_body: local[15] = $t7 local[16] = $t8 $a0 = $s7 - call $s2 + call $t5 $s3 = $v0 $t0 = local[8] $t1 = local[9] @@ -2176,9 +2176,9 @@ while287_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s2 = $s3 - $s3 = [$s2+0] - $s1 = [$s3+20] + $t5 = $s3 + $t6 = [$t5+0] + $t4 = [$t6+20] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2188,9 +2188,9 @@ while287_body: local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s2 - call $s1 - $s3 = $v0 + $a0 = $t5 + call $t4 + $s4 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -2200,7 +2200,7 @@ while287_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s1 = $s3 + $t4 = $s4 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2211,9 +2211,9 @@ while287_body: local[15] = $t7 local[16] = $t8 $a0 = $s7 - $a1 = $s1 - call $s4 - $s3 = $v0 + $a1 = $t4 + call $t7 + $s0 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -2223,11 +2223,11 @@ while287_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s1 = $s3 + $t4 = $s0 $s6 = $s7 $s7 = $s7 - $s3 = [$s7+0] - $s4 = [$s3+16] + $t4 = [$s7+0] + $t7 = [$t4+16] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2238,8 +2238,8 @@ while287_body: local[15] = $t7 local[16] = $t8 $a0 = $s7 - call $s4 - $s3 = $v0 + call $t7 + $s2 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -2249,13 +2249,13 @@ while287_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s7 = $s3 + $s7 = $s2 goto :while287_test while287_end: $s6 = $s6 - $s3 = [$s6+0] - $s7 = [$s3+8] - $s3 = [$s5+104] + $s0 = [$s6+0] + $s1 = [$s0+8] + $s0 = [$s5+104] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2266,8 +2266,8 @@ while287_end: local[15] = $t7 local[16] = $t8 $a0 = $s6 - $a1 = $s3 - call $s7 + $a1 = $s0 + call $s1 $s5 = $v0 $t0 = local[8] $t1 = local[9] @@ -2278,10 +2278,10 @@ while287_end: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s1 = $s5 + $t4 = $s5 $s6 = $s6 $s5 = [$s6+0] - $s3 = [$s5+36] + $s0 = [$s5+36] $s5 = 0 local[8] = $t0 local[9] = $t1 @@ -2294,8 +2294,8 @@ while287_end: local[16] = $t8 $a0 = $s6 $a1 = $s5 - call $s3 - $s7 = $v0 + call $s0 + $s1 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -2305,9 +2305,9 @@ while287_end: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s1 = $s7 - $s7 = 1 - $v0 = $s7 + $t4 = $s1 + $s1 = 1 + $v0 = $s1 $s0 = local[0] $s1 = local[1] $s2 = local[2] @@ -2337,7 +2337,7 @@ while315_test: while315_body: $s5 = $s5 $s3 = [$s5+0] - $s2 = [$s3+20] + $t7 = [$s3+20] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2348,8 +2348,8 @@ while315_body: local[15] = $t7 local[16] = $t8 $a0 = $s5 - call $s2 - $s3 = $v0 + call $t7 + $s0 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -2359,16 +2359,16 @@ while315_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s2 = $s3 + $t7 = $s0 $s3 = $s7 - $s1 = $s2 - $s0 = LtS($s3 $s1 ) - $s1 = $s0 - if0 $s1 goto :if320_else + $t6 = $t7 + $t5 = LtS($s3 $t6 ) + $t6 = $t5 + if0 $t6 goto :if320_else if320_body: $s5 = $s5 - $s1 = [$s5+0] - $s0 = [$s1+32] + $t6 = [$s5+0] + $t5 = [$t6+32] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2379,7 +2379,7 @@ if320_body: local[15] = $t7 local[16] = $t8 $a0 = $s5 - call $s0 + call $t5 $s1 = $v0 $t0 = local[8] $t1 = local[9] @@ -2390,12 +2390,12 @@ if320_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s0 = $s1 - if0 $s0 goto :if324_else + $t5 = $s1 + if0 $t5 goto :if324_else if324_body: $s5 = $s5 - $s0 = [$s5+0] - $s1 = [$s0+16] + $t5 = [$s5+0] + $t6 = [$t5+16] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2406,8 +2406,8 @@ if324_body: local[15] = $t7 local[16] = $t8 $a0 = $s5 - call $s1 - $s0 = $v0 + call $t6 + $s2 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -2417,22 +2417,22 @@ if324_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s5 = $s0 + $s5 = $s2 goto :if324_end if324_else: $s6 = 0 if324_end: goto :if320_end if320_else: - $s0 = $s2 - $s2 = $s7 - $s7 = LtS($s0 $s2 ) - $s2 = $s7 - if0 $s2 goto :if331_else + $t6 = $t7 + $t7 = $s7 + $t5 = LtS($t6 $t7 ) + $t7 = $t5 + if0 $t7 goto :if331_else if331_body: $s5 = $s5 - $s2 = [$s5+0] - $s7 = [$s2+28] + $t7 = [$s5+0] + $t5 = [$t7+28] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2443,8 +2443,8 @@ if331_body: local[15] = $t7 local[16] = $t8 $a0 = $s5 - call $s7 - $s2 = $v0 + call $t5 + $t7 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -2454,12 +2454,12 @@ if331_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s7 = $s2 - if0 $s7 goto :if335_else + $t5 = $t7 + if0 $t5 goto :if335_else if335_body: $s5 = $s5 - $s7 = [$s5+0] - $s2 = [$s7+12] + $t5 = [$s5+0] + $t7 = [$t5+12] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2470,8 +2470,8 @@ if335_body: local[15] = $t7 local[16] = $t8 $a0 = $s5 - call $s2 - $s7 = $v0 + call $t7 + $t5 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -2481,7 +2481,7 @@ if335_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s5 = $s7 + $s5 = $t5 goto :if335_end if335_else: $s6 = 0 @@ -2494,8 +2494,8 @@ if331_end: if320_end: goto :while315_test while315_end: - $s6 = $s4 - $v0 = $s6 + $s0 = $s4 + $v0 = $s0 $s0 = local[0] $s1 = local[1] $s2 = local[2] @@ -2646,8 +2646,8 @@ if347_else: $s3 = 1 if347_end: $s7 = $s7 - $s5 = [$s7+0] - $s4 = [$s5+20] + $s3 = [$s7+0] + $s5 = [$s3+20] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2658,8 +2658,8 @@ if347_end: local[15] = $t7 local[16] = $t8 $a0 = $s7 - call $s4 - $s5 = $v0 + call $s5 + $s3 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -2669,11 +2669,11 @@ if347_end: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s4 = $s5 - PrintIntS($s4 ) + $s5 = $s3 + PrintIntS($s5 ) $s7 = $s7 - $s4 = [$s7+0] - $s5 = [$s4+28] + $s5 = [$s7+0] + $s3 = [$s5+28] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2684,8 +2684,8 @@ if347_end: local[15] = $t7 local[16] = $t8 $a0 = $s7 - call $s5 - $s4 = $v0 + call $s3 + $s5 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -2695,13 +2695,13 @@ if347_end: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s5 = $s4 - if0 $s5 goto :if361_else + $s3 = $s5 + if0 $s3 goto :if361_else if361_body: - $s5 = [$s6+0] + $s3 = [$s6+0] $s7 = $s7 - $s4 = [$s7+0] - $s2 = [$s4+12] + $s5 = [$s7+0] + $s4 = [$s5+12] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2712,8 +2712,8 @@ if361_body: local[15] = $t7 local[16] = $t8 $a0 = $s7 - call $s2 - $s4 = $v0 + call $s4 + $s5 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -2723,8 +2723,8 @@ if361_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s2 = $s4 - $s5 = [$s5+76] + $s4 = $s5 + $s3 = [$s3+76] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2735,9 +2735,9 @@ if361_body: local[15] = $t7 local[16] = $t8 $a0 = $s6 - $a1 = $s2 - call $s5 - $s4 = $v0 + $a1 = $s4 + call $s3 + $s5 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -2747,13 +2747,13 @@ if361_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s3 = $s4 + $s3 = $s5 goto :if361_end if361_else: $s3 = 1 if361_end: - $s3 = 1 - $v0 = $s3 + $s5 = 1 + $v0 = $s5 $s0 = local[0] $s1 = local[1] $s2 = local[2] @@ -2909,8 +2909,8 @@ if378_else: $s5 = 0 if378_end: $s7 = $s7 - $s2 = [$s7+0] - $s3 = [$s2+32] + $s5 = [$s7+0] + $s2 = [$s5+32] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2921,8 +2921,8 @@ if378_end: local[15] = $t7 local[16] = $t8 $a0 = $s7 - call $s3 - $s2 = $v0 + call $s2 + $s5 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -2932,12 +2932,12 @@ if378_end: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s3 = $s2 - if0 $s3 goto :if389_else + $s2 = $s5 + if0 $s2 goto :if389_else if389_body: $s7 = $s7 - $s3 = [$s7+0] - $s2 = [$s3+16] + $s2 = [$s7+0] + $s5 = [$s2+16] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2948,8 +2948,8 @@ if389_body: local[15] = $t7 local[16] = $t8 $a0 = $s7 - call $s2 - $s3 = $v0 + call $s5 + $s2 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -2959,11 +2959,11 @@ if389_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - [$s6+4] = $s3 - $s3 = [$s6+4] - $s2 = [$s3+0] - $s7 = [$s2+80] - $s2 = $s6 + [$s6+4] = $s2 + $s2 = [$s6+4] + $s5 = [$s2+0] + $s7 = [$s5+80] + $s5 = $s6 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -2973,8 +2973,8 @@ if389_body: local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s3 - $a1 = $s2 + $a0 = $s2 + $a1 = $s5 call $s7 $s6 = $v0 $t0 = local[8] @@ -2991,8 +2991,8 @@ if389_body: if389_else: $s5 = 0 if389_end: - $s5 = 0 - $v0 = $s5 + $s6 = 0 + $v0 = $s6 $s0 = local[0] $s1 = local[1] $s2 = local[2] @@ -3097,8 +3097,8 @@ if401_else: $s5 = 0 if401_end: $s7 = $s7 - $s2 = [$s7+0] - $s3 = [$s2+20] + $s5 = [$s7+0] + $s2 = [$s5+20] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -3109,8 +3109,8 @@ if401_end: local[15] = $t7 local[16] = $t8 $a0 = $s7 - call $s3 - $s2 = $v0 + call $s2 + $s5 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -3120,11 +3120,11 @@ if401_end: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s3 = $s2 - PrintIntS($s3 ) + $s2 = $s5 + PrintIntS($s2 ) $s7 = $s7 - $s3 = [$s7+0] - $s2 = [$s3+32] + $s2 = [$s7+0] + $s5 = [$s2+32] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -3135,8 +3135,8 @@ if401_end: local[15] = $t7 local[16] = $t8 $a0 = $s7 - call $s2 - $s3 = $v0 + call $s5 + $s2 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -3146,12 +3146,12 @@ if401_end: $t6 = local[14] $t7 = local[15] $t8 = local[16] - $s2 = $s3 - if0 $s2 goto :if416_else + $s5 = $s2 + if0 $s5 goto :if416_else if416_body: $s7 = $s7 - $s2 = [$s7+0] - $s3 = [$s2+16] + $s5 = [$s7+0] + $s2 = [$s5+16] local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -3162,8 +3162,8 @@ if416_body: local[15] = $t7 local[16] = $t8 $a0 = $s7 - call $s3 - $s2 = $v0 + call $s2 + $s5 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -3173,11 +3173,11 @@ if416_body: $t6 = local[14] $t7 = local[15] $t8 = local[16] - [$s6+8] = $s2 - $s2 = [$s6+8] - $s3 = [$s2+0] - $s7 = [$s3+80] - $s3 = $s6 + [$s6+8] = $s5 + $s5 = [$s6+8] + $s2 = [$s5+0] + $s7 = [$s2+80] + $s2 = $s6 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -3187,8 +3187,8 @@ if416_body: local[14] = $t6 local[15] = $t7 local[16] = $t8 - $a0 = $s2 - $a1 = $s3 + $a0 = $s5 + $a1 = $s2 call $s7 $s6 = $v0 $t0 = local[8] @@ -3205,8 +3205,8 @@ if416_body: if416_else: $s5 = 0 if416_end: - $s5 = 0 - $v0 = $s5 + $s6 = 0 + $v0 = $s6 $s0 = local[0] $s1 = local[1] $s2 = local[2] diff --git a/output/ex41.vaporm b/output/ex41.vaporm index ad9726c..25cf1b2 100644 --- a/output/ex41.vaporm +++ b/output/ex41.vaporm @@ -85,8 +85,8 @@ while10_end: $s7 = $s3 goto :while5_test while5_end: - $s3 = $s6 - $v0 = $s3 + $s7 = $s6 + $v0 = $s7 $s0 = local[0] $s1 = local[1] $s2 = local[2] diff --git a/output/ex45.vaporm b/output/ex45.vaporm index 277d9ed..beeacaa 100644 --- a/output/ex45.vaporm +++ b/output/ex45.vaporm @@ -57,7 +57,7 @@ func A_run [in 0, out 0, local 17] local[5] = $s5 local[6] = $s6 local[7] = $s7 - $s6 = $a0 + $s7 = $a0 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -69,7 +69,7 @@ func A_run [in 0, out 0, local 17] local[16] = $t8 $a0 = 10 call :AllocArray - $s7 = $v0 + $s6 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -79,11 +79,11 @@ func A_run [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - [$s6+4] = $s7 - $s7 = [$s6+4] - $s6 = [$s7+0] - $s7 = $s6 - $v0 = $s7 + [$s7+4] = $s6 + $s6 = [$s7+4] + $s7 = [$s6+0] + $s6 = $s7 + $v0 = $s6 $s0 = local[0] $s1 = local[1] $s2 = local[2] diff --git a/output/ex47.vaporm b/output/ex47.vaporm index f5e4df1..503e646 100644 --- a/output/ex47.vaporm +++ b/output/ex47.vaporm @@ -85,8 +85,8 @@ func A_set [in 0, out 0, local 17] local[5] = $s5 local[6] = $s6 local[7] = $s7 - $s5 = $a0 - $s6 = $a1 + $s6 = $a0 + $s7 = $a1 local[8] = $t0 local[9] = $t1 local[10] = $t2 @@ -98,7 +98,7 @@ func A_set [in 0, out 0, local 17] local[16] = $t8 $a0 = 12 call :AllocArray - $s7 = $v0 + $s5 = $v0 $t0 = local[8] $t1 = local[9] $t2 = local[10] @@ -108,15 +108,15 @@ func A_set [in 0, out 0, local 17] $t6 = local[14] $t7 = local[15] $t8 = local[16] - [$s5+8] = $s7 - $s7 = [$s5+8] + [$s6+8] = $s5 + $s5 = [$s6+8] $s4 = MulS(5 4 ) $s4 = Add($s4 4 ) - $s4 = Add($s7 $s4 ) - [$s4+0] = $s6 - $s4 = [$s5+8] - $s5 = [$s4+0] - $s4 = $s5 + $s4 = Add($s5 $s4 ) + [$s4+0] = $s7 + $s4 = [$s6+8] + $s6 = [$s4+0] + $s4 = $s6 $v0 = $s4 $s0 = local[0] $s1 = local[1] diff --git a/vaporize/LIRDict.java b/vaporize/LIRDict.java index 4f3d3c1..50c79b0 100644 --- a/vaporize/LIRDict.java +++ b/vaporize/LIRDict.java @@ -1,5 +1,6 @@ package vaporize; +import cs132.vapor.ast.VCodeLabel; import cs132.vapor.ast.VFunction; import cs132.vapor.ast.VInstr; @@ -24,29 +25,29 @@ public class LIRDict { CFGNode n = cfg.getNode(s); int line = n.getInstruction().sourcePos.line; + // reaching String info = "L" + line; - for (String var : n.getReaching()) + for (String var : n.getDefinitions()) if (!this.contains(var)) { this.intervals.add(new LIRVar(var, line, line)); - MinimalLogger.info(String.format("Reaching on %s --- New var %s", - info, - var)); - } else { - this.getInterval(var).trySetLastUse(line); - MinimalLogger.info(String.format("Reaching on %s --- Updating var %s", - info, - var)); + MinimalLogger.info(String.format("Found def of %s at line %s", + var, + line)); + } + for (String var : n.getReaching()) + if (n.getLiveness().contains(var)) { + if (this.contains(var)) { + this.getInterval(var).trySetLastUse(line); + MinimalLogger.info(String.format("Var %s still live on %s", + var, + line)); + } else { + this.intervals.add(new LIRVar(var, line, line)); + MinimalLogger.info(String.format("Var %s still live on %s", + var, + line)); + } } - for (String var : n.getLiveness()) { - if (!this.contains(var)) - MinimalLogger.severe(String.format("%s was used before defined!", - var)); - MinimalLogger.info(String.format("Liveness on %s --- Updating var %s", - info, - var)); - this.getInterval(var).trySetLastUse(line); - } - } } @@ -83,4 +84,14 @@ public class LIRDict { return this.spilled_num; } + private int subOneLine(int i) { + int ret = i - 1; + + CFGNode n = cfg.getNode(new Integer(ret)); + if (n != null && n.getInstruction() instanceof VCodeLabel) + --ret; + + return ret; + } + } diff --git a/vaporize/LIRVisitor.java b/vaporize/LIRVisitor.java index da6abb6..821573c 100644 --- a/vaporize/LIRVisitor.java +++ b/vaporize/LIRVisitor.java @@ -45,14 +45,39 @@ public class LIRVisitor extends VInstr.VisitorPR<ControlFlowGraph, String, Runti this.curr = cfg.getNode(f.body[0]); // cascades downwards --- cfg.addEdges for (VVarRef.Local l : f.params) - cfg.addReaching(this.curr, l.ident.toString()); + cfg.addDefinition(this.curr, l.ident.toString()); for (VInstr s : f.body) s.accept(cfg, this); + int line = this.curr.getInstruction().sourcePos.line; + int stop = f.body[0].sourcePos.line; + MinimalLogger.info(String.format("Looking for liveness from final node %d to %d", + line, stop)); + for (int i = line; i >= stop; --i) { + this.curr = cfg.getNode(new Integer(i)); + for (CFGNode source : this.curr.getSources()) { + for (String var : this.curr.getLiveness()) { + if (!source.getDefinitions().contains(var)) { + // MinimalLogger.info(String.format("%s: %s added to liveness of %s.", + // this.curr, + // var, + // source)); + source.liveness.add(var); + } else { + // MinimalLogger.info(String.format("%s: %s was defined in %s.", + // this.curr, + // var, + // source)); + } + } + } + } + MinimalLogger.info(String.format("Spitting out reaching/liveness...")); for (CFGNode n : cfg.getNodes()) - MinimalLogger.info(String.format("%s ::: %s ::: %s", + MinimalLogger.info(String.format("%s ::: %s ::: %s ::: %s", n.toString(), + n.getDefinitions(), n.getReaching(), n.getLiveness())); @@ -96,11 +121,11 @@ public class LIRVisitor extends VInstr.VisitorPR<ControlFlowGraph, String, Runti n.sourcePos.toString())); /////////////////////////////////////////////////////////////// CFGNode curr = cfg.getNode(n); + cfg.addDefinition(curr, n.dest.toString()); + cfg.addReference(curr, ((VMemRef.Global) n.source).base.toString()); + this.dot_format += cfg.addEdge(this.curr, curr); this.curr = curr; - - cfg.addReaching(curr, n.dest.toString()); - cfg.addLiveness(curr, ((VMemRef.Global) n.source).base.toString()); /////////////////////////////////////////////////////////////// MinimalLogger.info(String.format("<-%s (\"%s\":%s)", n.getClass().getSimpleName(), @@ -116,11 +141,11 @@ public class LIRVisitor extends VInstr.VisitorPR<ControlFlowGraph, String, Runti n.sourcePos.toString())); /////////////////////////////////////////////////////////////// CFGNode curr = cfg.getNode(n); + cfg.addReference(curr, ((VMemRef.Global) n.dest).base.toString()); + cfg.addReference(curr, n.source.toString()); + this.dot_format += cfg.addEdge(this.curr, curr); this.curr = curr; - - cfg.addLiveness(curr, ((VMemRef.Global) n.dest).base.toString()); - cfg.addLiveness(curr, n.source.toString()); /////////////////////////////////////////////////////////////// MinimalLogger.info(String.format("<-%s (\"%s\":%s)", n.getClass().getSimpleName(), @@ -136,11 +161,11 @@ public class LIRVisitor extends VInstr.VisitorPR<ControlFlowGraph, String, Runti n.sourcePos.toString())); /////////////////////////////////////////////////////////////// CFGNode curr = cfg.getNode(n); + cfg.addDefinition(curr, n.dest.toString()); + cfg.addReference(curr, n.source.toString()); + this.dot_format += cfg.addEdge(this.curr, curr); this.curr = curr; - - cfg.addReaching(curr, n.dest.toString()); - cfg.addLiveness(curr, n.source.toString()); /////////////////////////////////////////////////////////////// MinimalLogger.info(String.format("<-%s (\"%s\":%s)", n.getClass().getSimpleName(), @@ -156,11 +181,11 @@ public class LIRVisitor extends VInstr.VisitorPR<ControlFlowGraph, String, Runti n.sourcePos.toString())); /////////////////////////////////////////////////////////////// CFGNode curr = cfg.getNode(n); + cfg.addReference(curr, n.value.toString()); + this.dot_format += cfg.addEdge(this.curr, curr); this.dot_format += cfg.addEdge(curr, cfg.getNode(new Integer(this.kettle .findLabelIndex(n.target.toString())))); - - cfg.addLiveness(curr, n.value.toString()); /////////////////////////////////////////////////////////////// MinimalLogger.info(String.format("<-%s (\"%s\":%s)", n.getClass().getSimpleName(), @@ -197,15 +222,15 @@ public class LIRVisitor extends VInstr.VisitorPR<ControlFlowGraph, String, Runti n.sourcePos.toString())); /////////////////////////////////////////////////////////////// CFGNode curr = cfg.getNode(n); - this.dot_format += cfg.addEdge(this.curr, curr); - this.curr = curr; - if (n.dest != null) - cfg.addReaching(curr, n.dest.toString()); + cfg.addReference(curr, n.dest.toString()); for (VOperand a : n.args) { - cfg.addLiveness(curr, a.toString()); + cfg.addReference(curr, a.toString()); } - cfg.addLiveness(curr, n.addr.toString()); + cfg.addReference(curr, n.addr.toString()); + + this.dot_format += cfg.addEdge(this.curr, curr); + this.curr = curr; /////////////////////////////////////////////////////////////// MinimalLogger.info(String.format("<-%s (\"%s\":%s)", n.getClass().getSimpleName(), @@ -221,14 +246,15 @@ public class LIRVisitor extends VInstr.VisitorPR<ControlFlowGraph, String, Runti n.sourcePos.toString())); /////////////////////////////////////////////////////////////// CFGNode curr = cfg.getNode(n); - this.dot_format += cfg.addEdge(this.curr, curr); - this.curr = curr; if (n.dest != null) - cfg.addReaching(curr, n.dest.toString()); + cfg.addDefinition(curr, n.dest.toString()); for (VOperand a : n.args) { - cfg.addLiveness(curr, a.toString()); + cfg.addReference(curr, a.toString()); } + + this.dot_format += cfg.addEdge(this.curr, curr); + this.curr = curr; /////////////////////////////////////////////////////////////// MinimalLogger.info(String.format("<-%s (\"%s\":%s)", n.getClass().getSimpleName(), @@ -244,11 +270,11 @@ public class LIRVisitor extends VInstr.VisitorPR<ControlFlowGraph, String, Runti n.sourcePos.toString())); /////////////////////////////////////////////////////////////// CFGNode curr = cfg.getNode(n); + if (n.value != null) + cfg.addReference(curr, n.value.toString()); + this.dot_format += cfg.addEdge(this.curr, curr); this.curr = curr; - - if (n.value != null) - cfg.addLiveness(curr, n.value.toString()); /////////////////////////////////////////////////////////////// MinimalLogger.info(String.format("<-%s (\"%s\":%s)", n.getClass().getSimpleName(), diff --git a/vaporize/VaporizeVisitor.java b/vaporize/VaporizeVisitor.java index aa462a5..55340f4 100644 --- a/vaporize/VaporizeVisitor.java +++ b/vaporize/VaporizeVisitor.java @@ -263,8 +263,7 @@ public class VaporizeVisitor extends VInstr.VisitorP<LIRDict, RuntimeException> d.getInterval(n.value.toString()).getAssignedRegister() : n.value.toString(); this.addVaporm(String.format(" $v0 = %s", - d.getInterval(((VVarRef.Local) n.value).ident) - .getAssignedRegister())); + reg)); } for (int j = 0; j < this.callee_save.length; ++j) { this.addVaporm(String.format(" %s = local[%s]", |