diff options
Diffstat (limited to 'base/LinkedList.names.vaporm')
| -rw-r--r-- | base/LinkedList.names.vaporm | 698 | 
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 +  | 
