summaryrefslogtreecommitdiff
path: root/base/LinkedList.names.vaporm
diff options
context:
space:
mode:
Diffstat (limited to 'base/LinkedList.names.vaporm')
-rw-r--r--base/LinkedList.names.vaporm698
1 files changed, 698 insertions, 0 deletions
diff --git a/base/LinkedList.names.vaporm b/base/LinkedList.names.vaporm
new file mode 100644
index 0000000..a04d039
--- /dev/null
+++ b/base/LinkedList.names.vaporm
@@ -0,0 +1,698 @@
+const vmt_Element
+ :Element.Init
+ :Element.GetAge
+ :Element.GetSalary
+ :Element.GetMarried
+ :Element.Equal
+ :Element.Compare
+
+const vmt_List
+ :List.Init
+ :List.InitNew
+ :List.Insert
+ :List.SetNext
+ :List.Delete
+ :List.Search
+ :List.GetEnd
+ :List.GetElem
+ :List.GetNext
+ :List.Print
+
+const vmt_LL
+ :LL.Start
+
+func Main [in 0, out 0, local 0]
+ $t0{t.0} = HeapAllocZ(4)
+ [$t0{t.0}] = :vmt_LL
+ if $t0{t.0} goto :null1
+ Error("null pointer")
+null1:
+ $t1{t.1} = [$t0{t.0}]
+ $t1{t.1} = [$t1{t.1}]
+ $a0 = $t0{t.0}
+ call $t1{t.1}
+ $t1{t.2} = $v0
+ PrintIntS($t1{t.2})
+ ret
+
+func Element.Init [in 0, out 0, local 0]
+ $t0{this} = $a0
+ $t1{v_Age} = $a1
+ $t2{v_Salary} = $a2
+ $t3{v_Married} = $a3
+ [$t0{this}+4] = $t1{v_Age}
+ [$t0{this}+8] = $t2{v_Salary}
+ [$t0{this}+12] = $t3{v_Married}
+ $v0 = 1
+ ret
+
+func Element.GetAge [in 0, out 0, local 0]
+ $t0{this} = $a0
+ $t0{t.0} = [$t0{this}+4]
+ $v0 = $t0{t.0}
+ ret
+
+func Element.GetSalary [in 0, out 0, local 0]
+ $t0{this} = $a0
+ $t0{t.0} = [$t0{this}+8]
+ $v0 = $t0{t.0}
+ ret
+
+func Element.GetMarried [in 0, out 0, local 0]
+ $t0{this} = $a0
+ $t0{t.0} = [$t0{this}+12]
+ $v0 = $t0{t.0}
+ ret
+
+func Element.Equal [in 0, out 0, local 3]
+ local[0] = $s0
+ local[1] = $s1
+ local[2] = $s2
+ $s0{this} = $a0
+ $s1{other} = $a1
+ $s2{ret_val} = 1
+ if $s1{other} goto :null2
+ Error("null pointer")
+null2:
+ $t0{t.0} = [$s1{other}]
+ $t0{t.0} = [$t0{t.0}+4]
+ $a0 = $s1{other}
+ call $t0{t.0}
+ $t0{aux01} = $v0
+ $t1{t.1} = [$s0{this}]
+ $t1{t.1} = [$t1{t.1}+20]
+ $t2{t.2} = [$s0{this}+4]
+ $a0 = $s0{this}
+ $a1 = $t0{aux01}
+ $a2 = $t2{t.2}
+ call $t1{t.1}
+ $t2{t.3} = $v0
+ $t2{t.4} = Sub(1 $t2{t.3})
+ if0 $t2{t.4} goto :if1_else
+ $s2{ret_val} = 0
+ goto :if1_end
+if1_else:
+ if $s1{other} goto :null3
+ Error("null pointer")
+null3:
+ $t2{t.5} = [$s1{other}]
+ $t2{t.5} = [$t2{t.5}+8]
+ $a0 = $s1{other}
+ call $t2{t.5}
+ $t2{aux02} = $v0
+ $t1{t.6} = [$s0{this}]
+ $t1{t.6} = [$t1{t.6}+20]
+ $t0{t.7} = [$s0{this}+8]
+ $a0 = $s0{this}
+ $a1 = $t2{aux02}
+ $a2 = $t0{t.7}
+ call $t1{t.6}
+ $t0{t.8} = $v0
+ $t0{t.9} = Sub(1 $t0{t.8})
+ if0 $t0{t.9} goto :if2_else
+ $s2{ret_val} = 0
+ goto :if2_end
+if2_else:
+ $t0{t.10} = [$s0{this}+12]
+ if0 $t0{t.10} goto :if3_else
+ if $s1{other} goto :null4
+ Error("null pointer")
+null4:
+ $t0{t.11} = [$s1{other}]
+ $t0{t.11} = [$t0{t.11}+12]
+ $a0 = $s1{other}
+ call $t0{t.11}
+ $t0{t.12} = $v0
+ $t0{t.13} = Sub(1 $t0{t.12})
+ if0 $t0{t.13} goto :if4_else
+ $s2{ret_val} = 0
+ goto :if4_end
+if4_else:
+if4_end:
+ goto :if3_end
+if3_else:
+ if $s1{other} goto :null5
+ Error("null pointer")
+null5:
+ $t0{t.14} = [$s1{other}]
+ $t0{t.14} = [$t0{t.14}+12]
+ $a0 = $s1{other}
+ call $t0{t.14}
+ $t0{t.15} = $v0
+ if0 $t0{t.15} goto :if5_else
+ $s2{ret_val} = 0
+ goto :if5_end
+if5_else:
+if5_end:
+if3_end:
+if2_end:
+if1_end:
+ $v0 = $s2{ret_val}
+ $s0 = local[0]
+ $s1 = local[1]
+ $s2 = local[2]
+ ret
+
+func Element.Compare [in 0, out 0, local 0]
+ $t0{num1} = $a1
+ $t1{num2} = $a2
+ $t2{aux02} = Add($t1{num2} 1)
+ $t1{t.0} = LtS($t0{num1} $t1{num2})
+ if0 $t1{t.0} goto :if6_else
+ $t1{retval} = 0
+ goto :if6_end
+if6_else:
+ $t2{t.1} = LtS($t0{num1} $t2{aux02})
+ $t2{t.2} = Sub(1 $t2{t.1})
+ if0 $t2{t.2} goto :if7_else
+ $t1{retval} = 0
+ goto :if7_end
+if7_else:
+ $t1{retval} = 1
+if7_end:
+if6_end:
+ $v0 = $t1{retval}
+ ret
+
+func List.Init [in 0, out 0, local 0]
+ $t0{this} = $a0
+ [$t0{this}+12] = 1
+ $v0 = 1
+ ret
+
+func List.InitNew [in 0, out 0, local 0]
+ $t0{this} = $a0
+ $t1{v_elem} = $a1
+ $t2{v_next} = $a2
+ $t3{v_end} = $a3
+ [$t0{this}+12] = $t3{v_end}
+ [$t0{this}+4] = $t1{v_elem}
+ [$t0{this}+8] = $t2{v_next}
+ $v0 = 1
+ ret
+
+func List.Insert [in 0, out 0, local 1]
+ local[0] = $s0
+ $t0{this} = $a0
+ $t1{new_elem} = $a1
+ $t0{aux03} = $t0{this}
+ $t2{t.0} = HeapAllocZ(16)
+ [$t2{t.0}] = :vmt_List
+ $s0{aux02} = $t2{t.0}
+ if $s0{aux02} goto :null6
+ Error("null pointer")
+null6:
+ $t2{t.1} = [$s0{aux02}]
+ $t2{t.1} = [$t2{t.1}+4]
+ $a0 = $s0{aux02}
+ $a1 = $t1{new_elem}
+ $a2 = $t0{aux03}
+ $a3 = 0
+ call $t2{t.1}
+ $v0 = $s0{aux02}
+ $s0 = local[0]
+ ret
+
+func List.SetNext [in 0, out 0, local 0]
+ $t0{this} = $a0
+ $t1{v_next} = $a1
+ [$t0{this}+8] = $t1{v_next}
+ $v0 = 1
+ ret
+
+func List.Delete [in 0, out 0, local 9]
+ local[1] = $s0
+ local[2] = $s1
+ local[3] = $s2
+ local[4] = $s3
+ local[5] = $s4
+ local[6] = $s5
+ local[7] = $s6
+ local[8] = $s7
+ $t0{this} = $a0
+ $s0{e} = $a1
+ $s1{my_head} = $t0{this}
+ $s2{ret_val} = 0
+ $s3{aux04} = Sub(0 1)
+ $s4{aux01} = $t0{this}
+ $s5{prev} = $t0{this}
+ $s6{var_end} = [$t0{this}+12]
+ $s7{var_elem} = [$t0{this}+4]
+while1_top:
+ $t0{t.1} = Sub(1 $s6{var_end})
+ if0 $t0{t.1} goto :ss1_else
+ $t0{t.0} = Sub(1 $s2{ret_val})
+ goto :ss1_end
+ss1_else:
+ $t0{t.0} = 0
+ss1_end:
+ if0 $t0{t.0} goto :while1_end
+ if $s0{e} goto :null7
+ Error("null pointer")
+null7:
+ $t0{t.2} = [$s0{e}]
+ $t0{t.2} = [$t0{t.2}+16]
+ $a0 = $s0{e}
+ $a1 = $s7{var_elem}
+ call $t0{t.2}
+ $t0{t.3} = $v0
+ if0 $t0{t.3} goto :if8_else
+ $s2{ret_val} = 1
+ $t0{t.4} = LtS($s3{aux04} 0)
+ if0 $t0{t.4} goto :if9_else
+ if $s4{aux01} goto :null8
+ Error("null pointer")
+null8:
+ $t0{t.5} = [$s4{aux01}]
+ $t0{t.5} = [$t0{t.5}+32]
+ $a0 = $s4{aux01}
+ call $t0{t.5}
+ $s1{my_head} = $v0
+ goto :if9_end
+if9_else:
+ $t0{t.6} = Sub(0 555)
+ PrintIntS($t0{t.6})
+ if $s5{prev} goto :null9
+ Error("null pointer")
+null9:
+ $v0 = [$s5{prev}]
+ local[0]{t.7} = $v0
+ $v0 = local[0]{t.7}
+ $v0 = [$v0+12]
+ local[0]{t.7} = $v0
+ if $s4{aux01} goto :null10
+ Error("null pointer")
+null10:
+ $t0{t.8} = [$s4{aux01}]
+ $t0{t.8} = [$t0{t.8}+32]
+ $a0 = $s4{aux01}
+ call $t0{t.8}
+ $t0{t.9} = $v0
+ $a0 = $s5{prev}
+ $a1 = $t0{t.9}
+ $v0 = local[0]{t.7}
+ call $v0
+ $t0{t.10} = Sub(0 555)
+ PrintIntS($t0{t.10})
+if9_end:
+ goto :if8_end
+if8_else:
+if8_end:
+ $t0{t.11} = Sub(1 $s2{ret_val})
+ if0 $t0{t.11} goto :if10_else
+ $s5{prev} = $s4{aux01}
+ if $s4{aux01} goto :null11
+ Error("null pointer")
+null11:
+ $t0{t.12} = [$s4{aux01}]
+ $t0{t.12} = [$t0{t.12}+32]
+ $a0 = $s4{aux01}
+ call $t0{t.12}
+ $s4{aux01} = $v0
+ if $s4{aux01} goto :null12
+ Error("null pointer")
+null12:
+ $t0{t.13} = [$s4{aux01}]
+ $t0{t.13} = [$t0{t.13}+24]
+ $a0 = $s4{aux01}
+ call $t0{t.13}
+ $s6{var_end} = $v0
+ if $s4{aux01} goto :null13
+ Error("null pointer")
+null13:
+ $t0{t.14} = [$s4{aux01}]
+ $t0{t.14} = [$t0{t.14}+28]
+ $a0 = $s4{aux01}
+ call $t0{t.14}
+ $s7{var_elem} = $v0
+ $s3{aux04} = 1
+ goto :if10_end
+if10_else:
+if10_end:
+ goto :while1_top
+while1_end:
+ $v0 = $s1{my_head}
+ $s0 = local[1]
+ $s1 = local[2]
+ $s2 = local[3]
+ $s3 = local[4]
+ $s4 = local[5]
+ $s5 = local[6]
+ $s6 = local[7]
+ $s7 = local[8]
+ ret
+
+func List.Search [in 0, out 0, local 4]
+ local[0] = $s0
+ local[1] = $s1
+ local[2] = $s2
+ local[3] = $s3
+ $t0{this} = $a0
+ $s0{e} = $a1
+ $s1{int_ret_val} = 0
+ $s2{aux01} = $t0{this}
+ $s3{var_end} = [$t0{this}+12]
+ $t0{var_elem} = [$t0{this}+4]
+while2_top:
+ $t1{t.0} = Sub(1 $s3{var_end})
+ if0 $t1{t.0} goto :while2_end
+ if $s0{e} goto :null14
+ Error("null pointer")
+null14:
+ $t1{t.1} = [$s0{e}]
+ $t1{t.1} = [$t1{t.1}+16]
+ $a0 = $s0{e}
+ $a1 = $t0{var_elem}
+ call $t1{t.1}
+ $t1{t.2} = $v0
+ if0 $t1{t.2} goto :if11_else
+ $s1{int_ret_val} = 1
+ goto :if11_end
+if11_else:
+if11_end:
+ if $s2{aux01} goto :null15
+ Error("null pointer")
+null15:
+ $t1{t.3} = [$s2{aux01}]
+ $t1{t.3} = [$t1{t.3}+32]
+ $a0 = $s2{aux01}
+ call $t1{t.3}
+ $s2{aux01} = $v0
+ if $s2{aux01} goto :null16
+ Error("null pointer")
+null16:
+ $t1{t.4} = [$s2{aux01}]
+ $t1{t.4} = [$t1{t.4}+24]
+ $a0 = $s2{aux01}
+ call $t1{t.4}
+ $s3{var_end} = $v0
+ if $s2{aux01} goto :null17
+ Error("null pointer")
+null17:
+ $t1{t.5} = [$s2{aux01}]
+ $t1{t.5} = [$t1{t.5}+28]
+ $a0 = $s2{aux01}
+ call $t1{t.5}
+ $t0{var_elem} = $v0
+ goto :while2_top
+while2_end:
+ $v0 = $s1{int_ret_val}
+ $s0 = local[0]
+ $s1 = local[1]
+ $s2 = local[2]
+ $s3 = local[3]
+ ret
+
+func List.GetEnd [in 0, out 0, local 0]
+ $t0{this} = $a0
+ $t0{t.0} = [$t0{this}+12]
+ $v0 = $t0{t.0}
+ ret
+
+func List.GetElem [in 0, out 0, local 0]
+ $t0{this} = $a0
+ $t0{t.0} = [$t0{this}+4]
+ $v0 = $t0{t.0}
+ ret
+
+func List.GetNext [in 0, out 0, local 0]
+ $t0{this} = $a0
+ $t0{t.0} = [$t0{this}+8]
+ $v0 = $t0{t.0}
+ ret
+
+func List.Print [in 0, out 0, local 2]
+ local[0] = $s0
+ local[1] = $s1
+ $t0{this} = $a0
+ $s0{aux01} = $t0{this}
+ $s1{var_end} = [$t0{this}+12]
+ $t0{var_elem} = [$t0{this}+4]
+while3_top:
+ $t1{t.0} = Sub(1 $s1{var_end})
+ if0 $t1{t.0} goto :while3_end
+ if $t0{var_elem} goto :null18
+ Error("null pointer")
+null18:
+ $t1{t.1} = [$t0{var_elem}]
+ $t1{t.1} = [$t1{t.1}+4]
+ $a0 = $t0{var_elem}
+ call $t1{t.1}
+ $t1{t.2} = $v0
+ PrintIntS($t1{t.2})
+ if $s0{aux01} goto :null19
+ Error("null pointer")
+null19:
+ $t1{t.3} = [$s0{aux01}]
+ $t1{t.3} = [$t1{t.3}+32]
+ $a0 = $s0{aux01}
+ call $t1{t.3}
+ $s0{aux01} = $v0
+ if $s0{aux01} goto :null20
+ Error("null pointer")
+null20:
+ $t1{t.4} = [$s0{aux01}]
+ $t1{t.4} = [$t1{t.4}+24]
+ $a0 = $s0{aux01}
+ call $t1{t.4}
+ $s1{var_end} = $v0
+ if $s0{aux01} goto :null21
+ Error("null pointer")
+null21:
+ $t1{t.5} = [$s0{aux01}]
+ $t1{t.5} = [$t1{t.5}+28]
+ $a0 = $s0{aux01}
+ call $t1{t.5}
+ $t0{var_elem} = $v0
+ goto :while3_top
+while3_end:
+ $v0 = 1
+ $s0 = local[0]
+ $s1 = local[1]
+ ret
+
+func LL.Start [in 0, out 0, local 4]
+ local[0] = $s0
+ local[1] = $s1
+ local[2] = $s2
+ local[3] = $s3
+ $t0{t.0} = HeapAllocZ(16)
+ [$t0{t.0}] = :vmt_List
+ $s0{last_elem} = $t0{t.0}
+ if $s0{last_elem} goto :null22
+ Error("null pointer")
+null22:
+ $t0{t.1} = [$s0{last_elem}]
+ $t0{t.1} = [$t0{t.1}]
+ $a0 = $s0{last_elem}
+ call $t0{t.1}
+ $s0{head} = $s0{last_elem}
+ if $s0{head} goto :null23
+ Error("null pointer")
+null23:
+ $t0{t.2} = [$s0{head}]
+ $t0{t.2} = [$t0{t.2}]
+ $a0 = $s0{head}
+ call $t0{t.2}
+ if $s0{head} goto :null24
+ Error("null pointer")
+null24:
+ $t0{t.3} = [$s0{head}]
+ $t0{t.3} = [$t0{t.3}+36]
+ $a0 = $s0{head}
+ call $t0{t.3}
+ $t0{t.4} = HeapAllocZ(16)
+ [$t0{t.4}] = :vmt_Element
+ $s1{el01} = $t0{t.4}
+ if $s1{el01} goto :null25
+ Error("null pointer")
+null25:
+ $t0{t.5} = [$s1{el01}]
+ $t0{t.5} = [$t0{t.5}]
+ $a0 = $s1{el01}
+ $a1 = 25
+ $a2 = 37000
+ $a3 = 0
+ call $t0{t.5}
+ if $s0{head} goto :null26
+ Error("null pointer")
+null26:
+ $t0{t.6} = [$s0{head}]
+ $t0{t.6} = [$t0{t.6}+8]
+ $a0 = $s0{head}
+ $a1 = $s1{el01}
+ call $t0{t.6}
+ $s0{head} = $v0
+ if $s0{head} goto :null27
+ Error("null pointer")
+null27:
+ $t0{t.7} = [$s0{head}]
+ $t0{t.7} = [$t0{t.7}+36]
+ $a0 = $s0{head}
+ call $t0{t.7}
+ PrintIntS(10000000)
+ $t0{t.8} = HeapAllocZ(16)
+ [$t0{t.8}] = :vmt_Element
+ $s1{el01} = $t0{t.8}
+ if $s1{el01} goto :null28
+ Error("null pointer")
+null28:
+ $t0{t.9} = [$s1{el01}]
+ $t0{t.9} = [$t0{t.9}]
+ $a0 = $s1{el01}
+ $a1 = 39
+ $a2 = 42000
+ $a3 = 1
+ call $t0{t.9}
+ $s2{el02} = $s1{el01}
+ if $s0{head} goto :null29
+ Error("null pointer")
+null29:
+ $t0{t.10} = [$s0{head}]
+ $t0{t.10} = [$t0{t.10}+8]
+ $a0 = $s0{head}
+ $a1 = $s1{el01}
+ call $t0{t.10}
+ $s0{head} = $v0
+ if $s0{head} goto :null30
+ Error("null pointer")
+null30:
+ $t0{t.11} = [$s0{head}]
+ $t0{t.11} = [$t0{t.11}+36]
+ $a0 = $s0{head}
+ call $t0{t.11}
+ PrintIntS(10000000)
+ $t0{t.12} = HeapAllocZ(16)
+ [$t0{t.12}] = :vmt_Element
+ $s1{el01} = $t0{t.12}
+ if $s1{el01} goto :null31
+ Error("null pointer")
+null31:
+ $t0{t.13} = [$s1{el01}]
+ $t0{t.13} = [$t0{t.13}]
+ $a0 = $s1{el01}
+ $a1 = 22
+ $a2 = 34000
+ $a3 = 0
+ call $t0{t.13}
+ if $s0{head} goto :null32
+ Error("null pointer")
+null32:
+ $t0{t.14} = [$s0{head}]
+ $t0{t.14} = [$t0{t.14}+8]
+ $a0 = $s0{head}
+ $a1 = $s1{el01}
+ call $t0{t.14}
+ $s0{head} = $v0
+ if $s0{head} goto :null33
+ Error("null pointer")
+null33:
+ $t0{t.15} = [$s0{head}]
+ $t0{t.15} = [$t0{t.15}+36]
+ $a0 = $s0{head}
+ call $t0{t.15}
+ $t0{t.16} = HeapAllocZ(16)
+ [$t0{t.16}] = :vmt_Element
+ $s3{el03} = $t0{t.16}
+ if $s3{el03} goto :null34
+ Error("null pointer")
+null34:
+ $t0{t.17} = [$s3{el03}]
+ $t0{t.17} = [$t0{t.17}]
+ $a0 = $s3{el03}
+ $a1 = 27
+ $a2 = 34000
+ $a3 = 0
+ call $t0{t.17}
+ if $s0{head} goto :null35
+ Error("null pointer")
+null35:
+ $t0{t.18} = [$s0{head}]
+ $t0{t.18} = [$t0{t.18}+20]
+ $a0 = $s0{head}
+ $a1 = $s2{el02}
+ call $t0{t.18}
+ $t0{t.19} = $v0
+ PrintIntS($t0{t.19})
+ if $s0{head} goto :null36
+ Error("null pointer")
+null36:
+ $t0{t.20} = [$s0{head}]
+ $t0{t.20} = [$t0{t.20}+20]
+ $a0 = $s0{head}
+ $a1 = $s3{el03}
+ call $t0{t.20}
+ $t0{t.21} = $v0
+ PrintIntS($t0{t.21})
+ PrintIntS(10000000)
+ $t0{t.22} = HeapAllocZ(16)
+ [$t0{t.22}] = :vmt_Element
+ $s1{el01} = $t0{t.22}
+ if $s1{el01} goto :null37
+ Error("null pointer")
+null37:
+ $t0{t.23} = [$s1{el01}]
+ $t0{t.23} = [$t0{t.23}]
+ $a0 = $s1{el01}
+ $a1 = 28
+ $a2 = 35000
+ $a3 = 0
+ call $t0{t.23}
+ if $s0{head} goto :null38
+ Error("null pointer")
+null38:
+ $t0{t.24} = [$s0{head}]
+ $t0{t.24} = [$t0{t.24}+8]
+ $a0 = $s0{head}
+ $a1 = $s1{el01}
+ call $t0{t.24}
+ $s0{head} = $v0
+ if $s0{head} goto :null39
+ Error("null pointer")
+null39:
+ $t0{t.25} = [$s0{head}]
+ $t0{t.25} = [$t0{t.25}+36]
+ $a0 = $s0{head}
+ call $t0{t.25}
+ PrintIntS(2220000)
+ if $s0{head} goto :null40
+ Error("null pointer")
+null40:
+ $t0{t.26} = [$s0{head}]
+ $t0{t.26} = [$t0{t.26}+16]
+ $a0 = $s0{head}
+ $a1 = $s2{el02}
+ call $t0{t.26}
+ $s0{head} = $v0
+ if $s0{head} goto :null41
+ Error("null pointer")
+null41:
+ $t0{t.27} = [$s0{head}]
+ $t0{t.27} = [$t0{t.27}+36]
+ $a0 = $s0{head}
+ call $t0{t.27}
+ PrintIntS(33300000)
+ if $s0{head} goto :null42
+ Error("null pointer")
+null42:
+ $t0{t.28} = [$s0{head}]
+ $t0{t.28} = [$t0{t.28}+16]
+ $a0 = $s0{head}
+ $a1 = $s1{el01}
+ call $t0{t.28}
+ $s0{head} = $v0
+ if $s0{head} goto :null43
+ Error("null pointer")
+null43:
+ $t0{t.29} = [$s0{head}]
+ $t0{t.29} = [$t0{t.29}+36]
+ $a0 = $s0{head}
+ call $t0{t.29}
+ PrintIntS(44440000)
+ $v0 = 0
+ $s0 = local[0]
+ $s1 = local[1]
+ $s2 = local[2]
+ $s3 = local[3]
+ ret
+