summaryrefslogtreecommitdiff
path: root/output/BubbleSort.opt.vaporm
diff options
context:
space:
mode:
Diffstat (limited to 'output/BubbleSort.opt.vaporm')
-rw-r--r--output/BubbleSort.opt.vaporm301
1 files changed, 301 insertions, 0 deletions
diff --git a/output/BubbleSort.opt.vaporm b/output/BubbleSort.opt.vaporm
new file mode 100644
index 0000000..41c6ac4
--- /dev/null
+++ b/output/BubbleSort.opt.vaporm
@@ -0,0 +1,301 @@
+const empty_BBS
+
+func Main [in 0, out 0, local 0]
+ $t0 = HeapAllocZ(8)
+ if $t0 goto :null1
+ Error("null pointer")
+null1:
+ $a0 = $t0
+ $a1 = 10
+ call :BBS.Start
+ $t0 = $v0
+ PrintIntS($t0)
+ ret
+
+func BBS.Start [in 0, out 0, local 1]
+ local[0] = $s0
+ $s0 = $a0
+ $t0 = $a1
+ $a0 = $s0
+ $a1 = $t0
+ call :BBS.Init
+ $a0 = $s0
+ call :BBS.Print
+ PrintIntS(99999)
+ $a0 = $s0
+ call :BBS.Sort
+ $a0 = $s0
+ call :BBS.Print
+ $v0 = 0
+ $s0 = local[0]
+ ret
+
+func BBS.Sort [in 0, out 0, local 0]
+ $t0 = $a0
+ $t1 = [$t0+4]
+ $t1 = Sub($t1 1)
+ $t2 = Sub(0 1)
+while1_top:
+ $t3 = LtS($t2 $t1)
+ if0 $t3 goto :while1_end
+ $t3 = 1
+while2_top:
+ $t4 = Add($t1 1)
+ $t4 = LtS($t3 $t4)
+ if0 $t4 goto :while2_end
+ $t4 = Sub($t3 1)
+ $t5 = [$t0]
+ if $t5 goto :null2
+ Error("null pointer")
+null2:
+ $t6 = [$t5]
+ $t6 = Lt($t4 $t6)
+ if $t6 goto :bounds1
+ Error("array index out of bounds")
+bounds1:
+ $t6 = MulS($t4 4)
+ $t6 = Add($t6 $t5)
+ $t6 = [$t6+4]
+ $t5 = [$t0]
+ if $t5 goto :null3
+ Error("null pointer")
+null3:
+ $t4 = [$t5]
+ $t4 = Lt($t3 $t4)
+ if $t4 goto :bounds2
+ Error("array index out of bounds")
+bounds2:
+ $t4 = MulS($t3 4)
+ $t4 = Add($t4 $t5)
+ $t4 = [$t4+4]
+ $t4 = LtS($t4 $t6)
+ if0 $t4 goto :if1_else
+ $t4 = Sub($t3 1)
+ $t6 = [$t0]
+ if $t6 goto :null4
+ Error("null pointer")
+null4:
+ $t5 = [$t6]
+ $t5 = Lt($t4 $t5)
+ if $t5 goto :bounds3
+ Error("array index out of bounds")
+bounds3:
+ $t5 = MulS($t4 4)
+ $t5 = Add($t5 $t6)
+ $t5 = [$t5+4]
+ $t6 = [$t0]
+ if $t6 goto :null5
+ Error("null pointer")
+null5:
+ $t7 = [$t6]
+ $t7 = Lt($t4 $t7)
+ if $t7 goto :bounds4
+ Error("array index out of bounds")
+bounds4:
+ $t7 = MulS($t4 4)
+ $t7 = Add($t7 $t6)
+ $t6 = [$t0]
+ if $t6 goto :null6
+ Error("null pointer")
+null6:
+ $t4 = [$t6]
+ $t4 = Lt($t3 $t4)
+ if $t4 goto :bounds5
+ Error("array index out of bounds")
+bounds5:
+ $t4 = MulS($t3 4)
+ $t4 = Add($t4 $t6)
+ $t4 = [$t4+4]
+ [$t7+4] = $t4
+ $t4 = [$t0]
+ if $t4 goto :null7
+ Error("null pointer")
+null7:
+ $t7 = [$t4]
+ $t7 = Lt($t3 $t7)
+ if $t7 goto :bounds6
+ Error("array index out of bounds")
+bounds6:
+ $t7 = MulS($t3 4)
+ $t7 = Add($t7 $t4)
+ [$t7+4] = $t5
+ goto :if1_end
+if1_else:
+if1_end:
+ $t3 = Add($t3 1)
+ goto :while2_top
+while2_end:
+ $t1 = Sub($t1 1)
+ goto :while1_top
+while1_end:
+ $v0 = 0
+ ret
+
+func BBS.Print [in 0, out 0, local 0]
+ $t0 = $a0
+ $t1 = 0
+while3_top:
+ $t2 = [$t0+4]
+ $t2 = LtS($t1 $t2)
+ if0 $t2 goto :while3_end
+ $t2 = [$t0]
+ if $t2 goto :null8
+ Error("null pointer")
+null8:
+ $t3 = [$t2]
+ $t3 = Lt($t1 $t3)
+ if $t3 goto :bounds7
+ Error("array index out of bounds")
+bounds7:
+ $t3 = MulS($t1 4)
+ $t3 = Add($t3 $t2)
+ $t3 = [$t3+4]
+ PrintIntS($t3)
+ $t1 = Add($t1 1)
+ goto :while3_top
+while3_end:
+ $v0 = 0
+ ret
+
+func BBS.Init [in 0, out 0, local 1]
+ local[0] = $s0
+ $s0 = $a0
+ $t0 = $a1
+ [$s0+4] = $t0
+ $a0 = $t0
+ call :AllocArray
+ $t0 = $v0
+ [$s0] = $t0
+ $t0 = [$s0]
+ if $t0 goto :null9
+ Error("null pointer")
+null9:
+ $t1 = [$t0]
+ $t1 = Lt(0 $t1)
+ if $t1 goto :bounds8
+ Error("array index out of bounds")
+bounds8:
+ $t1 = MulS(0 4)
+ $t1 = Add($t1 $t0)
+ [$t1+4] = 20
+ $t1 = [$s0]
+ if $t1 goto :null10
+ Error("null pointer")
+null10:
+ $t0 = [$t1]
+ $t0 = Lt(1 $t0)
+ if $t0 goto :bounds9
+ Error("array index out of bounds")
+bounds9:
+ $t0 = MulS(1 4)
+ $t0 = Add($t0 $t1)
+ [$t0+4] = 7
+ $t0 = [$s0]
+ if $t0 goto :null11
+ Error("null pointer")
+null11:
+ $t1 = [$t0]
+ $t1 = Lt(2 $t1)
+ if $t1 goto :bounds10
+ Error("array index out of bounds")
+bounds10:
+ $t1 = MulS(2 4)
+ $t1 = Add($t1 $t0)
+ [$t1+4] = 12
+ $t1 = [$s0]
+ if $t1 goto :null12
+ Error("null pointer")
+null12:
+ $t0 = [$t1]
+ $t0 = Lt(3 $t0)
+ if $t0 goto :bounds11
+ Error("array index out of bounds")
+bounds11:
+ $t0 = MulS(3 4)
+ $t0 = Add($t0 $t1)
+ [$t0+4] = 18
+ $t0 = [$s0]
+ if $t0 goto :null13
+ Error("null pointer")
+null13:
+ $t1 = [$t0]
+ $t1 = Lt(4 $t1)
+ if $t1 goto :bounds12
+ Error("array index out of bounds")
+bounds12:
+ $t1 = MulS(4 4)
+ $t1 = Add($t1 $t0)
+ [$t1+4] = 2
+ $t1 = [$s0]
+ if $t1 goto :null14
+ Error("null pointer")
+null14:
+ $t0 = [$t1]
+ $t0 = Lt(5 $t0)
+ if $t0 goto :bounds13
+ Error("array index out of bounds")
+bounds13:
+ $t0 = MulS(5 4)
+ $t0 = Add($t0 $t1)
+ [$t0+4] = 11
+ $t0 = [$s0]
+ if $t0 goto :null15
+ Error("null pointer")
+null15:
+ $t1 = [$t0]
+ $t1 = Lt(6 $t1)
+ if $t1 goto :bounds14
+ Error("array index out of bounds")
+bounds14:
+ $t1 = MulS(6 4)
+ $t1 = Add($t1 $t0)
+ [$t1+4] = 6
+ $t1 = [$s0]
+ if $t1 goto :null16
+ Error("null pointer")
+null16:
+ $t0 = [$t1]
+ $t0 = Lt(7 $t0)
+ if $t0 goto :bounds15
+ Error("array index out of bounds")
+bounds15:
+ $t0 = MulS(7 4)
+ $t0 = Add($t0 $t1)
+ [$t0+4] = 9
+ $t0 = [$s0]
+ if $t0 goto :null17
+ Error("null pointer")
+null17:
+ $t1 = [$t0]
+ $t1 = Lt(8 $t1)
+ if $t1 goto :bounds16
+ Error("array index out of bounds")
+bounds16:
+ $t1 = MulS(8 4)
+ $t1 = Add($t1 $t0)
+ [$t1+4] = 19
+ $t1 = [$s0]
+ if $t1 goto :null18
+ Error("null pointer")
+null18:
+ $t0 = [$t1]
+ $t0 = Lt(9 $t0)
+ if $t0 goto :bounds17
+ Error("array index out of bounds")
+bounds17:
+ $t0 = MulS(9 4)
+ $t0 = Add($t0 $t1)
+ [$t0+4] = 5
+ $v0 = 0
+ $s0 = local[0]
+ ret
+
+func AllocArray [in 0, out 0, local 0]
+ $t0 = $a0
+ $t1 = MulS($t0 4)
+ $t1 = Add($t1 4)
+ $t1 = HeapAllocZ($t1)
+ [$t1] = $t0
+ $v0 = $t1
+ ret
+