move-stackless-bytecode 0.3.2

Move stackless bytecode
Documentation
============ initial translation from Move ================

[variant baseline]
public intrinsic fun vector::contains<#0>($t0|v: &vector<#0>, $t1|e: &#0): bool;


[variant baseline]
public intrinsic fun vector::index_of<#0>($t0|v: &vector<#0>, $t1|e: &#0): (bool, u64);


[variant baseline]
public intrinsic fun vector::append<#0>($t0|lhs: &mut vector<#0>, $t1|other: vector<#0>);


[variant baseline]
public native fun vector::borrow<#0>($t0|v: &vector<#0>, $t1|i: u64): &#0;


[variant baseline]
public native fun vector::borrow_mut<#0>($t0|v: &mut vector<#0>, $t1|i: u64): &mut #0;


[variant baseline]
public native fun vector::destroy_empty<#0>($t0|v: vector<#0>);


[variant baseline]
public native fun vector::empty<#0>(): vector<#0>;


[variant baseline]
public intrinsic fun vector::is_empty<#0>($t0|v: &vector<#0>): bool;


[variant baseline]
public native fun vector::length<#0>($t0|v: &vector<#0>): u64;


[variant baseline]
public native fun vector::pop_back<#0>($t0|v: &mut vector<#0>): #0;


[variant baseline]
public native fun vector::push_back<#0>($t0|v: &mut vector<#0>, $t1|e: #0);


[variant baseline]
public intrinsic fun vector::remove<#0>($t0|v: &mut vector<#0>, $t1|i: u64): #0;


[variant baseline]
public intrinsic fun vector::reverse<#0>($t0|v: &mut vector<#0>);


[variant baseline]
public fun vector::singleton<#0>($t0|e: #0): vector<#0> {
     var $t1|v: vector<#0>
     var $t2: vector<#0>
     var $t3: &mut vector<#0>
     var $t4: #0
     var $t5: vector<#0>
  0: $t2 := vector::empty<#0>()
  1: $t1 := $t2
  2: $t3 := borrow_local($t1)
  3: $t4 := move($t0)
  4: vector::push_back<#0>($t3, $t4)
  5: $t5 := move($t1)
  6: return $t5
}


[variant baseline]
public native fun vector::swap<#0>($t0|v: &mut vector<#0>, $t1|i: u64, $t2|j: u64);


[variant baseline]
public intrinsic fun vector::swap_remove<#0>($t0|v: &mut vector<#0>, $t1|i: u64): #0;


[variant baseline]
fun M::f() {
     var $t0|len: u64
     var $t1|v: vector<u8>
     var $t2: u8
     var $t3: u8
     var $t4: vector<u8>
     var $t5: &mut vector<u8>
     var $t6: &vector<u8>
     var $t7: u64
     var $t8: u64
     var $t9: u64
     var $t10: bool
     var $t11: u64
  0: $t2 := 0
  1: $t3 := 0
  2: $t4 := vector::empty<u8>()
  3: $t5 := borrow_local($t4)
  4: vector::push_back<u8>($t5, $t2)
  5: vector::push_back<u8>($t5, $t3)
  6: $t1 := $t4
  7: $t6 := borrow_local($t1)
  8: $t7 := vector::length<u8>($t6)
  9: $t0 := $t7
 10: $t8 := move($t0)
 11: $t9 := 1
 12: $t10 := ==($t8, $t9)
 13: if ($t10) goto 17 else goto 14
 14: label L1
 15: $t11 := 0
 16: abort($t11)
 17: label L0
 18: return ()
}