Search by name, SuiNS, address, digest, object ID, coin type or checkpoint.

API

big_vector

Module0x0e73…f748
Move path
0x2c8d…4809::big_vector
Functions
430 public, 0 entry
Structs
3
Friend modules
bookorder_query
big_vector

Bytecode2605 lines

The on-chain disassembly. Offsets are bytecode positions within each function.

// Move bytecode v7
module 2c8d603bc51326b8c13cef9dd07031a408a48dddb541963357661df5d3204809.big_vector {
use 2c8d603bc51326b8c13cef9dd07031a408a48dddb541963357661df5d3204809::utils;
use 0000000000000000000000000000000000000000000000000000000000000001::vector;
use 0000000000000000000000000000000000000000000000000000000000000002::dynamic_field;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
 
struct BigVector<phantom Ty0: store> has store, key {
id: UID,
depth: u8,
length: u64,
max_slice_size: u64,
max_fan_out: u64,
root_id: u64,
last_id: u64
}
 
struct Slice<Ty0: store> has drop, store {
prev: u64,
next: u64,
keys: vector<u128>,
vals: vector<Ty0>
}
 
struct SliceRef has copy, drop, store {
ix: u64
}
 
public(friend) empty<Ty0: store>(Arg0: u64, Arg1: u64, Arg2: &mut TxContext): BigVector<Ty0> {
B0:
0LdConst[2](u64: 2)
1CopyLoc[0](Arg0: u64)
2Le
3BrFalse(5)
B1:
4Branch(9)
B2:
5MoveLoc[2](Arg2: &mut TxContext)
6Pop
7LdConst[0](u64: 0)
8Abort
B3:
9CopyLoc[0](Arg0: u64)
10LdConst[11](u64: 262144)
11Le
12BrFalse(14)
B4:
13Branch(18)
B5:
14MoveLoc[2](Arg2: &mut TxContext)
15Pop
16LdConst[1](u64: 1)
17Abort
B6:
18LdConst[4](u64: 4)
19CopyLoc[1](Arg1: u64)
20Le
21BrFalse(23)
B7:
22Branch(27)
B8:
23MoveLoc[2](Arg2: &mut TxContext)
24Pop
25LdConst[2](u64: 2)
26Abort
B9:
27CopyLoc[1](Arg1: u64)
28LdConst[10](u64: 4096)
29Le
30BrFalse(32)
B10:
31Branch(36)
B11:
32MoveLoc[2](Arg2: &mut TxContext)
33Pop
34LdConst[3](u64: 3)
35Abort
B12:
36MoveLoc[2](Arg2: &mut TxContext)
37Call object::new(&mut TxContext): UID
38LdU8(0)
39LdU64(0)
40MoveLoc[0](Arg0: u64)
41MoveLoc[1](Arg1: u64)
42LdConst[0](u64: 0)
43LdConst[0](u64: 0)
44PackGeneric[0](BigVector<Ty0>)
45Ret
}
 
public(friend) destroy_empty<Ty0: store>(Arg0: BigVector<Ty0>) {
L1: loc0: UID
L2: loc1: u64
B0:
0MoveLoc[0](Arg0: BigVector<Ty0>)
1UnpackGeneric[0](BigVector<Ty0>)
2Pop
3Pop
4Pop
5Pop
6StLoc[2](loc1: u64)
7Pop
8StLoc[1](loc0: UID)
9MoveLoc[2](loc1: u64)
10LdU64(0)
11Eq
12BrFalse(14)
B1:
13Branch(16)
B2:
14LdConst[4](u64: 4)
15Abort
B3:
16MoveLoc[1](loc0: UID)
17Call object::delete(UID)
18Ret
}
 
public(friend) is_empty<Ty0: store>(Arg0: &BigVector<Ty0>): bool {
B0:
0MoveLoc[0](Arg0: &BigVector<Ty0>)
1ImmBorrowFieldGeneric[0](BigVector.length: u64)
2ReadRef
3LdU64(0)
4Eq
5Ret
}
 
public(friend) length<Ty0: store>(Arg0: &BigVector<Ty0>): u64 {
B0:
0MoveLoc[0](Arg0: &BigVector<Ty0>)
1ImmBorrowFieldGeneric[0](BigVector.length: u64)
2ReadRef
3Ret
}
 
public(friend) depth<Ty0: store>(Arg0: &BigVector<Ty0>): u8 {
B0:
0MoveLoc[0](Arg0: &BigVector<Ty0>)
1ImmBorrowFieldGeneric[1](BigVector.depth: u8)
2ReadRef
3Ret
}
 
public(friend) borrow<Ty0: store>(Arg0: &BigVector<Ty0>, Arg1: u128): &Ty0 {
L2: loc0: u64
L3: loc1: SliceRef
B0:
0CopyLoc[0](Arg0: &BigVector<Ty0>)
1MoveLoc[1](Arg1: u128)
2Call slice_around<Ty0>(&BigVector<Ty0>, u128): SliceRef * u64
3StLoc[2](loc0: u64)
4StLoc[3](loc1: SliceRef)
5MoveLoc[0](Arg0: &BigVector<Ty0>)
6MoveLoc[3](loc1: SliceRef)
7Call borrow_slice<Ty0>(&BigVector<Ty0>, SliceRef): &Slice<Ty0>
8MoveLoc[2](loc0: u64)
9Call slice_borrow<Ty0>(&Slice<Ty0>, u64): &Ty0
10Ret
}
 
public(friend) borrow_mut<Ty0: store>(Arg0: &mut BigVector<Ty0>, Arg1: u128): &mut Ty0 {
L2: loc0: u64
L3: loc1: SliceRef
B0:
0CopyLoc[0](Arg0: &mut BigVector<Ty0>)
1FreezeRef
2MoveLoc[1](Arg1: u128)
3Call slice_around<Ty0>(&BigVector<Ty0>, u128): SliceRef * u64
4StLoc[2](loc0: u64)
5StLoc[3](loc1: SliceRef)
6MoveLoc[0](Arg0: &mut BigVector<Ty0>)
7MoveLoc[3](loc1: SliceRef)
8Call borrow_slice_mut<Ty0>(&mut BigVector<Ty0>, SliceRef): &mut Slice<Ty0>
9MoveLoc[2](loc0: u64)
10Call slice_borrow_mut<Ty0>(&mut Slice<Ty0>, u64): &mut Ty0
11Ret
}
 
public(friend) insert<Ty0: store>(Arg0: &mut BigVector<Ty0>, Arg1: u128, Arg2: Ty0) {
L3: loc0: u8
L4: loc1: u128
L5: loc2: u64
L6: loc3: u64
B0:
0CopyLoc[0](Arg0: &mut BigVector<Ty0>)
1ImmBorrowFieldGeneric[0](BigVector.length: u64)
2ReadRef
3LdU64(1)
4Add
5CopyLoc[0](Arg0: &mut BigVector<Ty0>)
6MutBorrowFieldGeneric[0](BigVector.length: u64)
7WriteRef
8CopyLoc[0](Arg0: &mut BigVector<Ty0>)
9ImmBorrowFieldGeneric[2](BigVector.root_id: u64)
10ReadRef
11LdConst[0](u64: 0)
12Eq
13BrFalse(23)
B1:
14CopyLoc[0](Arg0: &mut BigVector<Ty0>)
15MoveLoc[1](Arg1: u128)
16MoveLoc[2](Arg2: Ty0)
17Call singleton<Ty0>(u128, Ty0): Slice<Ty0>
18Call alloc<Ty0, Ty0>(&mut BigVector<Ty0>, Slice<Ty0>): u64
19MoveLoc[0](Arg0: &mut BigVector<Ty0>)
20MutBorrowFieldGeneric[2](BigVector.root_id: u64)
21WriteRef
22Ret
B2:
23CopyLoc[0](Arg0: &mut BigVector<Ty0>)
24ImmBorrowFieldGeneric[2](BigVector.root_id: u64)
25ReadRef
26CopyLoc[0](Arg0: &mut BigVector<Ty0>)
27ImmBorrowFieldGeneric[1](BigVector.depth: u8)
28ReadRef
29StLoc[3](loc0: u8)
30StLoc[6](loc3: u64)
31CopyLoc[0](Arg0: &mut BigVector<Ty0>)
32CopyLoc[6](loc3: u64)
33MoveLoc[3](loc0: u8)
34MoveLoc[1](Arg1: u128)
35MoveLoc[2](Arg2: Ty0)
36Call slice_insert<Ty0>(&mut BigVector<Ty0>, u64, u8, u128, Ty0): u128 * u64
37StLoc[5](loc2: u64)
38StLoc[4](loc1: u128)
39CopyLoc[5](loc2: u64)
40LdConst[0](u64: 0)
41Neq
42BrFalse(61)
B3:
43CopyLoc[0](Arg0: &mut BigVector<Ty0>)
44MoveLoc[4](loc1: u128)
45MoveLoc[6](loc3: u64)
46MoveLoc[5](loc2: u64)
47Call branch(u128, u64, u64): Slice<u64>
48Call alloc<Ty0, u64>(&mut BigVector<Ty0>, Slice<u64>): u64
49CopyLoc[0](Arg0: &mut BigVector<Ty0>)
50MutBorrowFieldGeneric[2](BigVector.root_id: u64)
51WriteRef
52CopyLoc[0](Arg0: &mut BigVector<Ty0>)
53ImmBorrowFieldGeneric[1](BigVector.depth: u8)
54ReadRef
55LdU8(1)
56Add
57MoveLoc[0](Arg0: &mut BigVector<Ty0>)
58MutBorrowFieldGeneric[1](BigVector.depth: u8)
59WriteRef
60Branch(63)
B4:
61MoveLoc[0](Arg0: &mut BigVector<Ty0>)
62Pop
B5:
63Ret
}
 
public(friend) remove<Ty0: store>(Arg0: &mut BigVector<Ty0>, Arg1: u128): Ty0 {
L2: loc0: u8
L3: loc1: u8
L4: loc2: Slice<u64>
L5: loc3: u64
L6: loc4: Ty0
L7: loc5: vector<Ty0>
B0:
0CopyLoc[0](Arg0: &mut BigVector<Ty0>)
1ImmBorrowFieldGeneric[2](BigVector.root_id: u64)
2ReadRef
3LdConst[0](u64: 0)
4Eq
5BrFalse(10)
B1:
6MoveLoc[0](Arg0: &mut BigVector<Ty0>)
7Pop
8LdConst[5](u64: 5)
9Abort
B2:
10CopyLoc[0](Arg0: &mut BigVector<Ty0>)
11ImmBorrowFieldGeneric[0](BigVector.length: u64)
12ReadRef
13LdU64(1)
14Sub
15CopyLoc[0](Arg0: &mut BigVector<Ty0>)
16MutBorrowFieldGeneric[0](BigVector.length: u64)
17WriteRef
18CopyLoc[0](Arg0: &mut BigVector<Ty0>)
19ImmBorrowFieldGeneric[2](BigVector.root_id: u64)
20ReadRef
21CopyLoc[0](Arg0: &mut BigVector<Ty0>)
22ImmBorrowFieldGeneric[1](BigVector.depth: u8)
23ReadRef
24StLoc[2](loc0: u8)
25StLoc[5](loc3: u64)
26CopyLoc[0](Arg0: &mut BigVector<Ty0>)
27LdConst[0](u64: 0)
28LdU128(0)
29CopyLoc[5](loc3: u64)
30LdU128(0)
31LdConst[0](u64: 0)
32MoveLoc[2](loc0: u8)
33MoveLoc[1](Arg1: u128)
34Call slice_remove<Ty0>(&mut BigVector<Ty0>, u64, u128, u64, u128, u64, u8, u128): Ty0 * u8 * u128
35Pop
36StLoc[3](loc1: u8)
37StLoc[6](loc4: Ty0)
38MoveLoc[3](loc1: u8)
39LdConst[13](u8: 1)
40Eq
41BrFalse(84)
B3:
42CopyLoc[0](Arg0: &mut BigVector<Ty0>)
43ImmBorrowFieldGeneric[1](BigVector.depth: u8)
44ReadRef
45LdU8(0)
46Eq
47BrFalse(64)
B4:
48CopyLoc[0](Arg0: &mut BigVector<Ty0>)
49MutBorrowFieldGeneric[3](BigVector.id: UID)
50MoveLoc[5](loc3: u64)
51Call dynamic_field::remove<u64, Slice<Ty0>>(&mut UID, u64): Slice<Ty0>
52UnpackGeneric[1](Slice<Ty0>)
53StLoc[7](loc5: vector<Ty0>)
54Pop
55Pop
56Pop
57MoveLoc[7](loc5: vector<Ty0>)
58VecUnpack(12, 0)
59LdConst[0](u64: 0)
60MoveLoc[0](Arg0: &mut BigVector<Ty0>)
61MutBorrowFieldGeneric[2](BigVector.root_id: u64)
62WriteRef
63Branch(86)
B5:
64CopyLoc[0](Arg0: &mut BigVector<Ty0>)
65MutBorrowFieldGeneric[3](BigVector.id: UID)
66MoveLoc[5](loc3: u64)
67Call dynamic_field::remove<u64, Slice<u64>>(&mut UID, u64): Slice<u64>
68StLoc[4](loc2: Slice<u64>)
69MutBorrowLoc[4](loc2: Slice<u64>)
70MutBorrowFieldGeneric[4](Slice.vals: vector<u64>)
71VecPopBack(5)
72CopyLoc[0](Arg0: &mut BigVector<Ty0>)
73MutBorrowFieldGeneric[2](BigVector.root_id: u64)
74WriteRef
75CopyLoc[0](Arg0: &mut BigVector<Ty0>)
76ImmBorrowFieldGeneric[1](BigVector.depth: u8)
77ReadRef
78LdU8(1)
79Sub
80MoveLoc[0](Arg0: &mut BigVector<Ty0>)
81MutBorrowFieldGeneric[1](BigVector.depth: u8)
82WriteRef
83Branch(86)
B6:
84MoveLoc[0](Arg0: &mut BigVector<Ty0>)
85Pop
B7:
86MoveLoc[6](loc4: Ty0)
87Ret
}
 
public(friend) slice_around<Ty0: store>(Arg0: &BigVector<Ty0>, Arg1: u128): SliceRef * u64 {
L2: loc0: u64
L3: loc1: &Slice<Ty0>
L4: loc2: u64
B0:
0CopyLoc[0](Arg0: &BigVector<Ty0>)
1ImmBorrowFieldGeneric[2](BigVector.root_id: u64)
2ReadRef
3LdConst[0](u64: 0)
4Eq
5BrFalse(10)
B1:
6MoveLoc[0](Arg0: &BigVector<Ty0>)
7Pop
8LdConst[5](u64: 5)
9Abort
B2:
10MoveLoc[0](Arg0: &BigVector<Ty0>)
11CopyLoc[1](Arg1: u128)
12Call find_leaf<Ty0>(&BigVector<Ty0>, u128): u64 * &Slice<Ty0> * u64
13StLoc[4](loc2: u64)
14StLoc[3](loc1: &Slice<Ty0>)
15StLoc[2](loc0: u64)
16CopyLoc[4](loc2: u64)
17CopyLoc[3](loc1: &Slice<Ty0>)
18ImmBorrowFieldGeneric[5](Slice.keys: vector<u128>)
19VecLen(22)
20Ge
21BrFalse(26)
B3:
22MoveLoc[3](loc1: &Slice<Ty0>)
23Pop
24LdConst[5](u64: 5)
25Abort
B4:
26MoveLoc[1](Arg1: u128)
27MoveLoc[3](loc1: &Slice<Ty0>)
28ImmBorrowFieldGeneric[5](Slice.keys: vector<u128>)
29CopyLoc[4](loc2: u64)
30VecImmBorrow(22)
31ReadRef
32Neq
33BrFalse(36)
B5:
34LdConst[5](u64: 5)
35Abort
B6:
36MoveLoc[2](loc0: u64)
37Pack[2](SliceRef)
38MoveLoc[4](loc2: u64)
39Ret
}
 
public(friend) slice_following<Ty0: store>(Arg0: &BigVector<Ty0>, Arg1: u128): SliceRef * u64 {
L2: loc0: SliceRef
L3: loc1: u64
L4: loc2: u64
L5: loc3: &Slice<Ty0>
L6: loc4: u64
B0:
0CopyLoc[0](Arg0: &BigVector<Ty0>)
1ImmBorrowFieldGeneric[2](BigVector.root_id: u64)
2ReadRef
3LdConst[0](u64: 0)
4Eq
5BrFalse(12)
B1:
6MoveLoc[0](Arg0: &BigVector<Ty0>)
7Pop
8LdConst[0](u64: 0)
9Pack[2](SliceRef)
10LdU64(0)
11Ret
B2:
12MoveLoc[0](Arg0: &BigVector<Ty0>)
13MoveLoc[1](Arg1: u128)
14Call find_leaf<Ty0>(&BigVector<Ty0>, u128): u64 * &Slice<Ty0> * u64
15StLoc[6](loc4: u64)
16StLoc[5](loc3: &Slice<Ty0>)
17StLoc[4](loc2: u64)
18CopyLoc[6](loc4: u64)
19CopyLoc[5](loc3: &Slice<Ty0>)
20ImmBorrowFieldGeneric[5](Slice.keys: vector<u128>)
21VecLen(22)
22Ge
23BrFalse(30)
B3:
24MoveLoc[5](loc3: &Slice<Ty0>)
25Call slice_next<Ty0>(&Slice<Ty0>): SliceRef
26LdU64(0)
27StLoc[3](loc1: u64)
28StLoc[2](loc0: SliceRef)
29Branch(37)
B4:
30MoveLoc[5](loc3: &Slice<Ty0>)
31Pop
32MoveLoc[4](loc2: u64)
33Pack[2](SliceRef)
34MoveLoc[6](loc4: u64)
35StLoc[3](loc1: u64)
36StLoc[2](loc0: SliceRef)
B5:
37MoveLoc[2](loc0: SliceRef)
38MoveLoc[3](loc1: u64)
39Ret
}
 
public(friend) slice_before<Ty0: store>(Arg0: &BigVector<Ty0>, Arg1: u128): SliceRef * u64 {
L2: loc0: SliceRef
L3: loc1: u64
L4: loc2: SliceRef
L5: loc3: u64
L6: loc4: u64
L7: loc5: &Slice<Ty0>
L8: loc6: u64
L9: loc7: SliceRef
L10: loc8: &Slice<Ty0>
B0:
0CopyLoc[0](Arg0: &BigVector<Ty0>)
1ImmBorrowFieldGeneric[2](BigVector.root_id: u64)
2ReadRef
3LdConst[0](u64: 0)
4Eq
5BrFalse(12)
B1:
6MoveLoc[0](Arg0: &BigVector<Ty0>)
7Pop
8LdConst[0](u64: 0)
9Pack[2](SliceRef)
10LdU64(0)
11Ret
B2:
12CopyLoc[0](Arg0: &BigVector<Ty0>)
13MoveLoc[1](Arg1: u128)
14Call find_leaf<Ty0>(&BigVector<Ty0>, u128): u64 * &Slice<Ty0> * u64
15StLoc[8](loc6: u64)
16StLoc[7](loc5: &Slice<Ty0>)
17StLoc[6](loc4: u64)
18CopyLoc[8](loc6: u64)
19LdU64(0)
20Eq
21BrFalse(53)
B3:
22MoveLoc[7](loc5: &Slice<Ty0>)
23Call slice_prev<Ty0>(&Slice<Ty0>): SliceRef
24StLoc[9](loc7: SliceRef)
25ImmBorrowLoc[9](loc7: SliceRef)
26Call slice_is_null(&SliceRef): bool
27BrFalse(36)
B4:
28MoveLoc[0](Arg0: &BigVector<Ty0>)
29Pop
30LdConst[0](u64: 0)
31Pack[2](SliceRef)
32LdU64(0)
33StLoc[3](loc1: u64)
34StLoc[2](loc0: SliceRef)
35Branch(48)
B5:
36MoveLoc[0](Arg0: &BigVector<Ty0>)
37CopyLoc[9](loc7: SliceRef)
38Call borrow_slice<Ty0>(&BigVector<Ty0>, SliceRef): &Slice<Ty0>
39StLoc[10](loc8: &Slice<Ty0>)
40MoveLoc[9](loc7: SliceRef)
41MoveLoc[10](loc8: &Slice<Ty0>)
42ImmBorrowFieldGeneric[5](Slice.keys: vector<u128>)
43VecLen(22)
44LdU64(1)
45Sub
46StLoc[3](loc1: u64)
47StLoc[2](loc0: SliceRef)
B6:
48MoveLoc[2](loc0: SliceRef)
49MoveLoc[3](loc1: u64)
50StLoc[5](loc3: u64)
51StLoc[4](loc2: SliceRef)
52Branch(64)
B7:
53MoveLoc[0](Arg0: &BigVector<Ty0>)
54Pop
55MoveLoc[7](loc5: &Slice<Ty0>)
56Pop
57MoveLoc[6](loc4: u64)
58Pack[2](SliceRef)
59MoveLoc[8](loc6: u64)
60LdU64(1)
61Sub
62StLoc[5](loc3: u64)
63StLoc[4](loc2: SliceRef)
B8:
64MoveLoc[4](loc2: SliceRef)
65MoveLoc[5](loc3: u64)
66Ret
}
 
public(friend) min_slice<Ty0: store>(Arg0: &BigVector<Ty0>): SliceRef * u64 {
L1: loc0: u64
B0:
0CopyLoc[0](Arg0: &BigVector<Ty0>)
1ImmBorrowFieldGeneric[2](BigVector.root_id: u64)
2ReadRef
3LdConst[0](u64: 0)
4Eq
5BrFalse(12)
B1:
6MoveLoc[0](Arg0: &BigVector<Ty0>)
7Pop
8LdConst[0](u64: 0)
9Pack[2](SliceRef)
10LdU64(0)
11Ret
B2:
12MoveLoc[0](Arg0: &BigVector<Ty0>)
13Call find_min_leaf<Ty0>(&BigVector<Ty0>): u64 * &Slice<Ty0> * u64
14StLoc[1](loc0: u64)
15Pop
16Pack[2](SliceRef)
17MoveLoc[1](loc0: u64)
18Ret
}
 
public(friend) max_slice<Ty0: store>(Arg0: &BigVector<Ty0>): SliceRef * u64 {
L1: loc0: u64
B0:
0CopyLoc[0](Arg0: &BigVector<Ty0>)
1ImmBorrowFieldGeneric[2](BigVector.root_id: u64)
2ReadRef
3LdConst[0](u64: 0)
4Eq
5BrFalse(12)
B1:
6MoveLoc[0](Arg0: &BigVector<Ty0>)
7Pop
8LdConst[0](u64: 0)
9Pack[2](SliceRef)
10LdU64(0)
11Ret
B2:
12MoveLoc[0](Arg0: &BigVector<Ty0>)
13Call find_max_leaf<Ty0>(&BigVector<Ty0>): u64 * &Slice<Ty0> * u64
14StLoc[1](loc0: u64)
15Pop
16Pack[2](SliceRef)
17MoveLoc[1](loc0: u64)
18Ret
}
 
public(friend) next_slice<Ty0: store>(Arg0: &BigVector<Ty0>, Arg1: SliceRef, Arg2: u64): SliceRef * u64 {
L3: loc0: SliceRef
L4: loc1: u64
L5: loc2: &Slice<Ty0>
B0:
0MoveLoc[0](Arg0: &BigVector<Ty0>)
1CopyLoc[1](Arg1: SliceRef)
2Call borrow_slice<Ty0>(&BigVector<Ty0>, SliceRef): &Slice<Ty0>
3StLoc[5](loc2: &Slice<Ty0>)
4CopyLoc[2](Arg2: u64)
5LdU64(1)
6Add
7CopyLoc[5](loc2: &Slice<Ty0>)
8ImmBorrowFieldGeneric[6](Slice.vals: vector<Ty0>)
9VecLen(12)
10Lt
11BrFalse(21)
B1:
12MoveLoc[5](loc2: &Slice<Ty0>)
13Pop
14MoveLoc[1](Arg1: SliceRef)
15MoveLoc[2](Arg2: u64)
16LdU64(1)
17Add
18StLoc[4](loc1: u64)
19StLoc[3](loc0: SliceRef)
20Branch(26)
B2:
21MoveLoc[5](loc2: &Slice<Ty0>)
22Call slice_next<Ty0>(&Slice<Ty0>): SliceRef
23LdU64(0)
24StLoc[4](loc1: u64)
25StLoc[3](loc0: SliceRef)
B3:
26MoveLoc[3](loc0: SliceRef)
27MoveLoc[4](loc1: u64)
28Ret
}
 
public(friend) prev_slice<Ty0: store>(Arg0: &BigVector<Ty0>, Arg1: SliceRef, Arg2: u64): SliceRef * u64 {
L3: loc0: SliceRef
L4: loc1: u64
L5: loc2: u64
L6: loc3: SliceRef
L7: loc4: &Slice<Ty0>
B0:
0CopyLoc[0](Arg0: &BigVector<Ty0>)
1CopyLoc[1](Arg1: SliceRef)
2Call borrow_slice<Ty0>(&BigVector<Ty0>, SliceRef): &Slice<Ty0>
3StLoc[7](loc4: &Slice<Ty0>)
4CopyLoc[2](Arg2: u64)
5LdU64(0)
6Gt
7BrFalse(19)
B1:
8MoveLoc[7](loc4: &Slice<Ty0>)
9Pop
10MoveLoc[0](Arg0: &BigVector<Ty0>)
11Pop
12MoveLoc[1](Arg1: SliceRef)
13MoveLoc[2](Arg2: u64)
14LdU64(1)
15Sub
16StLoc[4](loc1: u64)
17StLoc[3](loc0: SliceRef)
18Branch(43)
B2:
19LdU64(0)
20StLoc[5](loc2: u64)
21MoveLoc[7](loc4: &Slice<Ty0>)
22Call slice_prev<Ty0>(&Slice<Ty0>): SliceRef
23StLoc[6](loc3: SliceRef)
24ImmBorrowLoc[6](loc3: SliceRef)
25Call slice_is_null(&SliceRef): bool
26Not
27BrFalse(37)
B3:
28MoveLoc[0](Arg0: &BigVector<Ty0>)
29CopyLoc[6](loc3: SliceRef)
30Call borrow_slice<Ty0>(&BigVector<Ty0>, SliceRef): &Slice<Ty0>
31ImmBorrowFieldGeneric[6](Slice.vals: vector<Ty0>)
32VecLen(12)
33LdU64(1)
34Sub
35StLoc[5](loc2: u64)
36Branch(39)
B4:
37MoveLoc[0](Arg0: &BigVector<Ty0>)
38Pop
B5:
39MoveLoc[6](loc3: SliceRef)
40MoveLoc[5](loc2: u64)
41StLoc[4](loc1: u64)
42StLoc[3](loc0: SliceRef)
B6:
43MoveLoc[3](loc0: SliceRef)
44MoveLoc[4](loc1: u64)
45Ret
}
 
public(friend) borrow_slice<Ty0: store>(Arg0: &BigVector<Ty0>, Arg1: SliceRef): &Slice<Ty0> {
B0:
0MoveLoc[0](Arg0: &BigVector<Ty0>)
1ImmBorrowFieldGeneric[3](BigVector.id: UID)
2ImmBorrowLoc[1](Arg1: SliceRef)
3ImmBorrowField[6](SliceRef.ix: u64)
4ReadRef
5Call dynamic_field::borrow<u64, Slice<Ty0>>(&UID, u64): &Slice<Ty0>
6Ret
}
 
public(friend) borrow_slice_mut<Ty0: store>(Arg0: &mut BigVector<Ty0>, Arg1: SliceRef): &mut Slice<Ty0> {
B0:
0MoveLoc[0](Arg0: &mut BigVector<Ty0>)
1MutBorrowFieldGeneric[3](BigVector.id: UID)
2ImmBorrowLoc[1](Arg1: SliceRef)
3ImmBorrowField[6](SliceRef.ix: u64)
4ReadRef
5Call dynamic_field::borrow_mut<u64, Slice<Ty0>>(&mut UID, u64): &mut Slice<Ty0>
6Ret
}
 
public(friend) slice_is_null(Arg0: &SliceRef): bool {
B0:
0MoveLoc[0](Arg0: &SliceRef)
1ImmBorrowField[6](SliceRef.ix: u64)
2ReadRef
3LdConst[0](u64: 0)
4Eq
5Ret
}
 
public(friend) slice_is_leaf<Ty0: store>(Arg0: &Slice<Ty0>): bool {
B0:
0CopyLoc[0](Arg0: &Slice<Ty0>)
1ImmBorrowFieldGeneric[6](Slice.vals: vector<Ty0>)
2VecLen(12)
3MoveLoc[0](Arg0: &Slice<Ty0>)
4ImmBorrowFieldGeneric[5](Slice.keys: vector<u128>)
5VecLen(22)
6Eq
7Ret
}
 
public(friend) slice_next<Ty0: store>(Arg0: &Slice<Ty0>): SliceRef {
B0:
0MoveLoc[0](Arg0: &Slice<Ty0>)
1ImmBorrowFieldGeneric[7](Slice.next: u64)
2ReadRef
3Pack[2](SliceRef)
4Ret
}
 
public(friend) slice_prev<Ty0: store>(Arg0: &Slice<Ty0>): SliceRef {
B0:
0MoveLoc[0](Arg0: &Slice<Ty0>)
1ImmBorrowFieldGeneric[8](Slice.prev: u64)
2ReadRef
3Pack[2](SliceRef)
4Ret
}
 
public(friend) slice_length<Ty0: store>(Arg0: &Slice<Ty0>): u64 {
B0:
0MoveLoc[0](Arg0: &Slice<Ty0>)
1ImmBorrowFieldGeneric[6](Slice.vals: vector<Ty0>)
2VecLen(12)
3Ret
}
 
public(friend) slice_key<Ty0: store>(Arg0: &Slice<Ty0>, Arg1: u64): u128 {
B0:
0MoveLoc[0](Arg0: &Slice<Ty0>)
1ImmBorrowFieldGeneric[5](Slice.keys: vector<u128>)
2MoveLoc[1](Arg1: u64)
3VecImmBorrow(22)
4ReadRef
5Ret
}
 
public(friend) slice_borrow<Ty0: store>(Arg0: &Slice<Ty0>, Arg1: u64): &Ty0 {
B0:
0MoveLoc[0](Arg0: &Slice<Ty0>)
1ImmBorrowFieldGeneric[6](Slice.vals: vector<Ty0>)
2MoveLoc[1](Arg1: u64)
3VecImmBorrow(12)
4Ret
}
 
public(friend) slice_borrow_mut<Ty0: store>(Arg0: &mut Slice<Ty0>, Arg1: u64): &mut Ty0 {
B0:
0MoveLoc[0](Arg0: &mut Slice<Ty0>)
1MutBorrowFieldGeneric[6](Slice.vals: vector<Ty0>)
2MoveLoc[1](Arg1: u64)
3VecMutBorrow(12)
4Ret
}
 
alloc<Ty0: store, Ty1: store>(Arg0: &mut BigVector<Ty0>, Arg1: Slice<Ty1>): u64 {
L2: loc0: u64
L3: loc1: u64
L4: loc2: &mut Slice<Ty1>
L5: loc3: u64
L6: loc4: &mut Slice<Ty1>
B0:
0ImmBorrowLoc[1](Arg1: Slice<Ty1>)
1ImmBorrowFieldGeneric[9](Slice.prev: u64)
2ReadRef
3StLoc[5](loc3: u64)
4ImmBorrowLoc[1](Arg1: Slice<Ty1>)
5ImmBorrowFieldGeneric[10](Slice.next: u64)
6ReadRef
7StLoc[3](loc1: u64)
8CopyLoc[0](Arg0: &mut BigVector<Ty0>)
9ImmBorrowFieldGeneric[11](BigVector.last_id: u64)
10ReadRef
11LdU64(1)
12Add
13CopyLoc[0](Arg0: &mut BigVector<Ty0>)
14MutBorrowFieldGeneric[11](BigVector.last_id: u64)
15WriteRef
16CopyLoc[0](Arg0: &mut BigVector<Ty0>)
17MutBorrowFieldGeneric[3](BigVector.id: UID)
18CopyLoc[0](Arg0: &mut BigVector<Ty0>)
19ImmBorrowFieldGeneric[11](BigVector.last_id: u64)
20ReadRef
21MoveLoc[1](Arg1: Slice<Ty1>)
22Call dynamic_field::add<u64, Slice<Ty1>>(&mut UID, u64, Slice<Ty1>)
23CopyLoc[0](Arg0: &mut BigVector<Ty0>)
24ImmBorrowFieldGeneric[11](BigVector.last_id: u64)
25ReadRef
26StLoc[2](loc0: u64)
27CopyLoc[5](loc3: u64)
28LdConst[0](u64: 0)
29Neq
30BrFalse(40)
B1:
31CopyLoc[0](Arg0: &mut BigVector<Ty0>)
32MutBorrowFieldGeneric[3](BigVector.id: UID)
33MoveLoc[5](loc3: u64)
34Call dynamic_field::borrow_mut<u64, Slice<Ty1>>(&mut UID, u64): &mut Slice<Ty1>
35StLoc[6](loc4: &mut Slice<Ty1>)
36CopyLoc[2](loc0: u64)
37MoveLoc[6](loc4: &mut Slice<Ty1>)
38MutBorrowFieldGeneric[10](Slice.next: u64)
39WriteRef
B2:
40CopyLoc[3](loc1: u64)
41LdConst[0](u64: 0)
42Neq
43BrFalse(54)
B3:
44MoveLoc[0](Arg0: &mut BigVector<Ty0>)
45MutBorrowFieldGeneric[3](BigVector.id: UID)
46MoveLoc[3](loc1: u64)
47Call dynamic_field::borrow_mut<u64, Slice<Ty1>>(&mut UID, u64): &mut Slice<Ty1>
48StLoc[4](loc2: &mut Slice<Ty1>)
49CopyLoc[2](loc0: u64)
50MoveLoc[4](loc2: &mut Slice<Ty1>)
51MutBorrowFieldGeneric[9](Slice.prev: u64)
52WriteRef
53Branch(56)
B4:
54MoveLoc[0](Arg0: &mut BigVector<Ty0>)
55Pop
B5:
56MoveLoc[2](loc0: u64)
57Ret
}
 
singleton<Ty0: store>(Arg0: u128, Arg1: Ty0): Slice<Ty0> {
B0:
0LdConst[0](u64: 0)
1LdConst[0](u64: 0)
2MoveLoc[0](Arg0: u128)
3VecPack(22, 1)
4MoveLoc[1](Arg1: Ty0)
5VecPack(12, 1)
6PackGeneric[1](Slice<Ty0>)
7Ret
}
 
branch(Arg0: u128, Arg1: u64, Arg2: u64): Slice<u64> {
B0:
0LdConst[0](u64: 0)
1LdConst[0](u64: 0)
2MoveLoc[0](Arg0: u128)
3VecPack(22, 1)
4MoveLoc[1](Arg1: u64)
5MoveLoc[2](Arg2: u64)
6VecPack(5, 2)
7PackGeneric[2](Slice<u64>)
8Ret
}
 
drop_slice<Ty0: drop + store>(Arg0: &mut UID, Arg1: u8, Arg2: u64) {
L3: loc0: Slice<u64>
B0:
0CopyLoc[2](Arg2: u64)
1LdConst[0](u64: 0)
2Eq
3BrFalse(7)
B1:
4MoveLoc[0](Arg0: &mut UID)
5Pop
6Ret
B2:
7CopyLoc[1](Arg1: u8)
8LdU8(0)
9Eq
10BrFalse(16)
B3:
11MoveLoc[0](Arg0: &mut UID)
12MoveLoc[2](Arg2: u64)
13Call dynamic_field::remove<u64, Slice<Ty0>>(&mut UID, u64): Slice<Ty0>
14Pop
15Branch(37)
B4:
16CopyLoc[0](Arg0: &mut UID)
17MoveLoc[2](Arg2: u64)
18Call dynamic_field::remove<u64, Slice<u64>>(&mut UID, u64): Slice<u64>
19StLoc[3](loc0: Slice<u64>)
B5:
20ImmBorrowLoc[3](loc0: Slice<u64>)
21ImmBorrowFieldGeneric[4](Slice.vals: vector<u64>)
22Call vector::is_empty<u64>(&vector<u64>): bool
23Not
24BrFalse(35)
B6:
25Branch(26)
B7:
26CopyLoc[0](Arg0: &mut UID)
27CopyLoc[1](Arg1: u8)
28LdU8(1)
29Sub
30MutBorrowLoc[3](loc0: Slice<u64>)
31MutBorrowFieldGeneric[4](Slice.vals: vector<u64>)
32VecPopBack(5)
33Call drop_slice<Ty0>(&mut UID, u8, u64)
34Branch(20)
B8:
35MoveLoc[0](Arg0: &mut UID)
36Pop
B9:
37Ret
}
 
find_leaf<Ty0: store>(Arg0: &BigVector<Ty0>, Arg1: u128): u64 * &Slice<Ty0> * u64 {
L2: loc0: u8
L3: loc1: &Slice<Ty0>
L4: loc2: &Slice<u64>
L5: loc3: u64
L6: loc4: u64
L7: loc5: u64
B0:
0CopyLoc[0](Arg0: &BigVector<Ty0>)
1ImmBorrowFieldGeneric[2](BigVector.root_id: u64)
2ReadRef
3CopyLoc[0](Arg0: &BigVector<Ty0>)
4ImmBorrowFieldGeneric[1](BigVector.depth: u8)
5ReadRef
6StLoc[2](loc0: u8)
7StLoc[7](loc5: u64)
B1:
8CopyLoc[2](loc0: u8)
9LdU8(0)
10Gt
11BrFalse(33)
B2:
12Branch(13)
B3:
13CopyLoc[0](Arg0: &BigVector<Ty0>)
14ImmBorrowFieldGeneric[3](BigVector.id: UID)
15MoveLoc[7](loc5: u64)
16Call dynamic_field::borrow<u64, Slice<u64>>(&UID, u64): &Slice<u64>
17StLoc[4](loc2: &Slice<u64>)
18CopyLoc[4](loc2: &Slice<u64>)
19CopyLoc[1](Arg1: u128)
20Call slice_bisect_right<u64>(&Slice<u64>, u128): u64
21StLoc[5](loc3: u64)
22MoveLoc[4](loc2: &Slice<u64>)
23ImmBorrowFieldGeneric[4](Slice.vals: vector<u64>)
24MoveLoc[5](loc3: u64)
25VecImmBorrow(5)
26ReadRef
27StLoc[7](loc5: u64)
28MoveLoc[2](loc0: u8)
29LdU8(1)
30Sub
31StLoc[2](loc0: u8)
32Branch(8)
B4:
33MoveLoc[0](Arg0: &BigVector<Ty0>)
34ImmBorrowFieldGeneric[3](BigVector.id: UID)
35CopyLoc[7](loc5: u64)
36Call dynamic_field::borrow<u64, Slice<Ty0>>(&UID, u64): &Slice<Ty0>
37StLoc[3](loc1: &Slice<Ty0>)
38CopyLoc[3](loc1: &Slice<Ty0>)
39MoveLoc[1](Arg1: u128)
40Call slice_bisect_left<Ty0>(&Slice<Ty0>, u128): u64
41StLoc[6](loc4: u64)
42MoveLoc[7](loc5: u64)
43MoveLoc[3](loc1: &Slice<Ty0>)
44MoveLoc[6](loc4: u64)
45Ret
}
 
find_min_leaf<Ty0: store>(Arg0: &BigVector<Ty0>): u64 * &Slice<Ty0> * u64 {
L1: loc0: u8
L2: loc1: &Slice<Ty0>
L3: loc2: u64
B0:
0CopyLoc[0](Arg0: &BigVector<Ty0>)
1ImmBorrowFieldGeneric[2](BigVector.root_id: u64)
2ReadRef
3CopyLoc[0](Arg0: &BigVector<Ty0>)
4ImmBorrowFieldGeneric[1](BigVector.depth: u8)
5ReadRef
6StLoc[1](loc0: u8)
7StLoc[3](loc2: u64)
B1:
8CopyLoc[1](loc0: u8)
9LdU8(0)
10Gt
11BrFalse(27)
B2:
12Branch(13)
B3:
13CopyLoc[0](Arg0: &BigVector<Ty0>)
14ImmBorrowFieldGeneric[3](BigVector.id: UID)
15MoveLoc[3](loc2: u64)
16Call dynamic_field::borrow<u64, Slice<u64>>(&UID, u64): &Slice<u64>
17ImmBorrowFieldGeneric[4](Slice.vals: vector<u64>)
18LdU64(0)
19VecImmBorrow(5)
20ReadRef
21StLoc[3](loc2: u64)
22MoveLoc[1](loc0: u8)
23LdU8(1)
24Sub
25StLoc[1](loc0: u8)
26Branch(8)
B4:
27MoveLoc[0](Arg0: &BigVector<Ty0>)
28ImmBorrowFieldGeneric[3](BigVector.id: UID)
29CopyLoc[3](loc2: u64)
30Call dynamic_field::borrow<u64, Slice<Ty0>>(&UID, u64): &Slice<Ty0>
31StLoc[2](loc1: &Slice<Ty0>)
32MoveLoc[3](loc2: u64)
33MoveLoc[2](loc1: &Slice<Ty0>)
34LdU64(0)
35Ret
}
 
find_max_leaf<Ty0: store>(Arg0: &BigVector<Ty0>): u64 * &Slice<Ty0> * u64 {
L1: loc0: u8
L2: loc1: &Slice<Ty0>
L3: loc2: &Slice<u64>
L4: loc3: u64
B0:
0CopyLoc[0](Arg0: &BigVector<Ty0>)
1ImmBorrowFieldGeneric[2](BigVector.root_id: u64)
2ReadRef
3CopyLoc[0](Arg0: &BigVector<Ty0>)
4ImmBorrowFieldGeneric[1](BigVector.depth: u8)
5ReadRef
6StLoc[1](loc0: u8)
7StLoc[4](loc3: u64)
B1:
8CopyLoc[1](loc0: u8)
9LdU8(0)
10Gt
11BrFalse(31)
B2:
12Branch(13)
B3:
13CopyLoc[0](Arg0: &BigVector<Ty0>)
14ImmBorrowFieldGeneric[3](BigVector.id: UID)
15MoveLoc[4](loc3: u64)
16Call dynamic_field::borrow<u64, Slice<u64>>(&UID, u64): &Slice<u64>
17StLoc[3](loc2: &Slice<u64>)
18CopyLoc[3](loc2: &Slice<u64>)
19ImmBorrowFieldGeneric[4](Slice.vals: vector<u64>)
20MoveLoc[3](loc2: &Slice<u64>)
21ImmBorrowFieldGeneric[12](Slice.keys: vector<u128>)
22VecLen(22)
23VecImmBorrow(5)
24ReadRef
25StLoc[4](loc3: u64)
26MoveLoc[1](loc0: u8)
27LdU8(1)
28Sub
29StLoc[1](loc0: u8)
30Branch(8)
B4:
31MoveLoc[0](Arg0: &BigVector<Ty0>)
32ImmBorrowFieldGeneric[3](BigVector.id: UID)
33CopyLoc[4](loc3: u64)
34Call dynamic_field::borrow<u64, Slice<Ty0>>(&UID, u64): &Slice<Ty0>
35StLoc[2](loc1: &Slice<Ty0>)
36MoveLoc[4](loc3: u64)
37CopyLoc[2](loc1: &Slice<Ty0>)
38MoveLoc[2](loc1: &Slice<Ty0>)
39ImmBorrowFieldGeneric[5](Slice.keys: vector<u128>)
40VecLen(22)
41LdU64(1)
42Sub
43Ret
}
 
slice_bisect_left<Ty0: store>(Arg0: &Slice<Ty0>, Arg1: u128): u64 {
L2: loc0: u64
L3: loc1: u64
L4: loc2: u64
B0:
0LdU64(0)
1CopyLoc[0](Arg0: &Slice<Ty0>)
2ImmBorrowFieldGeneric[5](Slice.keys: vector<u128>)
3VecLen(22)
4StLoc[2](loc0: u64)
5StLoc[3](loc1: u64)
B1:
6CopyLoc[3](loc1: u64)
7CopyLoc[2](loc0: u64)
8Lt
9BrFalse(35)
B2:
10Branch(11)
B3:
11CopyLoc[2](loc0: u64)
12CopyLoc[3](loc1: u64)
13Sub
14LdU64(2)
15Div
16CopyLoc[3](loc1: u64)
17Add
18StLoc[4](loc2: u64)
19CopyLoc[1](Arg1: u128)
20CopyLoc[0](Arg0: &Slice<Ty0>)
21ImmBorrowFieldGeneric[5](Slice.keys: vector<u128>)
22CopyLoc[4](loc2: u64)
23VecImmBorrow(22)
24ReadRef
25Le
26BrFalse(30)
B4:
27MoveLoc[4](loc2: u64)
28StLoc[2](loc0: u64)
29Branch(6)
B5:
30MoveLoc[4](loc2: u64)
31LdU64(1)
32Add
33StLoc[3](loc1: u64)
34Branch(6)
B6:
35MoveLoc[0](Arg0: &Slice<Ty0>)
36Pop
37MoveLoc[3](loc1: u64)
38Ret
}
 
slice_bisect_right<Ty0: store>(Arg0: &Slice<Ty0>, Arg1: u128): u64 {
L2: loc0: u64
L3: loc1: u64
L4: loc2: u64
B0:
0LdU64(0)
1CopyLoc[0](Arg0: &Slice<Ty0>)
2ImmBorrowFieldGeneric[5](Slice.keys: vector<u128>)
3VecLen(22)
4StLoc[2](loc0: u64)
5StLoc[3](loc1: u64)
B1:
6CopyLoc[3](loc1: u64)
7CopyLoc[2](loc0: u64)
8Lt
9BrFalse(35)
B2:
10Branch(11)
B3:
11CopyLoc[2](loc0: u64)
12CopyLoc[3](loc1: u64)
13Sub
14LdU64(2)
15Div
16CopyLoc[3](loc1: u64)
17Add
18StLoc[4](loc2: u64)
19CopyLoc[1](Arg1: u128)
20CopyLoc[0](Arg0: &Slice<Ty0>)
21ImmBorrowFieldGeneric[5](Slice.keys: vector<u128>)
22CopyLoc[4](loc2: u64)
23VecImmBorrow(22)
24ReadRef
25Lt
26BrFalse(30)
B4:
27MoveLoc[4](loc2: u64)
28StLoc[2](loc0: u64)
29Branch(6)
B5:
30MoveLoc[4](loc2: u64)
31LdU64(1)
32Add
33StLoc[3](loc1: u64)
34Branch(6)
B6:
35MoveLoc[0](Arg0: &Slice<Ty0>)
36Pop
37MoveLoc[3](loc1: u64)
38Ret
}
 
slice_insert<Ty0: store>(Arg0: &mut BigVector<Ty0>, Arg1: u64, Arg2: u8, Arg3: u128, Arg4: Ty0): u128 * u64 {
L5: loc0: u128
L6: loc1: u64
B0:
0CopyLoc[2](Arg2: u8)
1LdU8(0)
2Eq
3BrFalse(12)
B1:
4MoveLoc[0](Arg0: &mut BigVector<Ty0>)
5MoveLoc[1](Arg1: u64)
6MoveLoc[3](Arg3: u128)
7MoveLoc[4](Arg4: Ty0)
8Call leaf_insert<Ty0>(&mut BigVector<Ty0>, u64, u128, Ty0): u128 * u64
9StLoc[6](loc1: u64)
10StLoc[5](loc0: u128)
11Branch(22)
B2:
12MoveLoc[0](Arg0: &mut BigVector<Ty0>)
13MoveLoc[1](Arg1: u64)
14MoveLoc[2](Arg2: u8)
15LdU8(1)
16Sub
17MoveLoc[3](Arg3: u128)
18MoveLoc[4](Arg4: Ty0)
19Call node_insert<Ty0>(&mut BigVector<Ty0>, u64, u8, u128, Ty0): u128 * u64
20StLoc[6](loc1: u64)
21StLoc[5](loc0: u128)
B3:
22MoveLoc[5](loc0: u128)
23MoveLoc[6](loc1: u64)
24Ret
}
 
leaf_insert<Ty0: store>(Arg0: &mut BigVector<Ty0>, Arg1: u64, Arg2: u128, Arg3: Ty0): u128 * u64 {
L4: loc0: bool
L5: loc1: &mut Slice<Ty0>
L6: loc2: Slice<Ty0>
L7: loc3: u64
L8: loc4: u128
L9: loc5: u64
B0:
0CopyLoc[0](Arg0: &mut BigVector<Ty0>)
1MutBorrowFieldGeneric[3](BigVector.id: UID)
2CopyLoc[1](Arg1: u64)
3Call dynamic_field::borrow_mut<u64, Slice<Ty0>>(&mut UID, u64): &mut Slice<Ty0>
4StLoc[5](loc1: &mut Slice<Ty0>)
5CopyLoc[5](loc1: &mut Slice<Ty0>)
6FreezeRef
7CopyLoc[2](Arg2: u128)
8Call slice_bisect_left<Ty0>(&Slice<Ty0>, u128): u64
9StLoc[7](loc3: u64)
10CopyLoc[7](loc3: u64)
11CopyLoc[5](loc1: &mut Slice<Ty0>)
12ImmBorrowFieldGeneric[5](Slice.keys: vector<u128>)
13VecLen(22)
14Lt
15BrFalse(25)
B1:
16CopyLoc[2](Arg2: u128)
17CopyLoc[5](loc1: &mut Slice<Ty0>)
18ImmBorrowFieldGeneric[5](Slice.keys: vector<u128>)
19CopyLoc[7](loc3: u64)
20VecImmBorrow(22)
21ReadRef
22Eq
23StLoc[4](loc0: bool)
24Branch(27)
B2:
25LdFalse
26StLoc[4](loc0: bool)
B3:
27MoveLoc[4](loc0: bool)
28BrFalse(35)
B4:
29MoveLoc[0](Arg0: &mut BigVector<Ty0>)
30Pop
31MoveLoc[5](loc1: &mut Slice<Ty0>)
32Pop
33LdConst[6](u64: 6)
34Abort
B5:
35CopyLoc[5](loc1: &mut Slice<Ty0>)
36ImmBorrowFieldGeneric[5](Slice.keys: vector<u128>)
37VecLen(22)
38CopyLoc[0](Arg0: &mut BigVector<Ty0>)
39ImmBorrowFieldGeneric[13](BigVector.max_slice_size: u64)
40ReadRef
41Lt
42BrFalse(58)
B6:
43MoveLoc[0](Arg0: &mut BigVector<Ty0>)
44Pop
45CopyLoc[5](loc1: &mut Slice<Ty0>)
46MutBorrowFieldGeneric[5](Slice.keys: vector<u128>)
47MoveLoc[2](Arg2: u128)
48CopyLoc[7](loc3: u64)
49Call vector::insert<u128>(&mut vector<u128>, u128, u64)
50MoveLoc[5](loc1: &mut Slice<Ty0>)
51MutBorrowFieldGeneric[6](Slice.vals: vector<Ty0>)
52MoveLoc[3](Arg3: Ty0)
53MoveLoc[7](loc3: u64)
54Call vector::insert<Ty0>(&mut vector<Ty0>, Ty0, u64)
55LdU128(0)
56LdConst[0](u64: 0)
57Ret
B7:
58CopyLoc[5](loc1: &mut Slice<Ty0>)
59ImmBorrowFieldGeneric[6](Slice.vals: vector<Ty0>)
60VecLen(12)
61LdU64(2)
62Div
63StLoc[9](loc5: u64)
64MoveLoc[1](Arg1: u64)
65CopyLoc[5](loc1: &mut Slice<Ty0>)
66ImmBorrowFieldGeneric[7](Slice.next: u64)
67ReadRef
68CopyLoc[5](loc1: &mut Slice<Ty0>)
69MutBorrowFieldGeneric[5](Slice.keys: vector<u128>)
70CopyLoc[9](loc5: u64)
71Call utils::pop_until<u128>(&mut vector<u128>, u64): vector<u128>
72CopyLoc[5](loc1: &mut Slice<Ty0>)
73MutBorrowFieldGeneric[6](Slice.vals: vector<Ty0>)
74CopyLoc[9](loc5: u64)
75Call utils::pop_until<Ty0>(&mut vector<Ty0>, u64): vector<Ty0>
76PackGeneric[1](Slice<Ty0>)
77StLoc[6](loc2: Slice<Ty0>)
78ImmBorrowLoc[6](loc2: Slice<Ty0>)
79ImmBorrowFieldGeneric[5](Slice.keys: vector<u128>)
80LdU64(0)
81VecImmBorrow(22)
82ReadRef
83StLoc[8](loc4: u128)
84CopyLoc[2](Arg2: u128)
85CopyLoc[8](loc4: u128)
86Lt
87BrFalse(99)
B8:
88CopyLoc[5](loc1: &mut Slice<Ty0>)
89MutBorrowFieldGeneric[5](Slice.keys: vector<u128>)
90MoveLoc[2](Arg2: u128)
91CopyLoc[7](loc3: u64)
92Call vector::insert<u128>(&mut vector<u128>, u128, u64)
93MoveLoc[5](loc1: &mut Slice<Ty0>)
94MutBorrowFieldGeneric[6](Slice.vals: vector<Ty0>)
95MoveLoc[3](Arg3: Ty0)
96MoveLoc[7](loc3: u64)
97Call vector::insert<Ty0>(&mut vector<Ty0>, Ty0, u64)
98Branch(115)
B9:
99MoveLoc[5](loc1: &mut Slice<Ty0>)
100Pop
101MutBorrowLoc[6](loc2: Slice<Ty0>)
102MutBorrowFieldGeneric[5](Slice.keys: vector<u128>)
103MoveLoc[2](Arg2: u128)
104CopyLoc[7](loc3: u64)
105CopyLoc[9](loc5: u64)
106Sub
107Call vector::insert<u128>(&mut vector<u128>, u128, u64)
108MutBorrowLoc[6](loc2: Slice<Ty0>)
109MutBorrowFieldGeneric[6](Slice.vals: vector<Ty0>)
110MoveLoc[3](Arg3: Ty0)
111MoveLoc[7](loc3: u64)
112MoveLoc[9](loc5: u64)
113Sub
114Call vector::insert<Ty0>(&mut vector<Ty0>, Ty0, u64)
B10:
115MoveLoc[8](loc4: u128)
116MoveLoc[0](Arg0: &mut BigVector<Ty0>)
117MoveLoc[6](loc2: Slice<Ty0>)
118Call alloc<Ty0, Ty0>(&mut BigVector<Ty0>, Slice<Ty0>): u64
119Ret
}
 
node_insert<Ty0: store>(Arg0: &mut BigVector<Ty0>, Arg1: u64, Arg2: u8, Arg3: u128, Arg4: Ty0): u128 * u64 {
L5: loc0: u64
L6: loc1: u128
L7: loc2: Slice<u64>
L8: loc3: &mut Slice<u64>
L9: loc4: &mut Slice<u64>
L10: loc5: u64
L11: loc6: u128
L12: loc7: u64
L13: loc8: u64
B0:
0CopyLoc[0](Arg0: &mut BigVector<Ty0>)
1MutBorrowFieldGeneric[3](BigVector.id: UID)
2CopyLoc[1](Arg1: u64)
3Call dynamic_field::borrow_mut<u64, Slice<u64>>(&mut UID, u64): &mut Slice<u64>
4StLoc[8](loc3: &mut Slice<u64>)
5CopyLoc[8](loc3: &mut Slice<u64>)
6FreezeRef
7CopyLoc[3](Arg3: u128)
8Call slice_bisect_right<u64>(&Slice<u64>, u128): u64
9StLoc[10](loc5: u64)
10MoveLoc[8](loc3: &mut Slice<u64>)
11ImmBorrowFieldGeneric[4](Slice.vals: vector<u64>)
12CopyLoc[10](loc5: u64)
13VecImmBorrow(5)
14ReadRef
15StLoc[5](loc0: u64)
16CopyLoc[0](Arg0: &mut BigVector<Ty0>)
17MoveLoc[5](loc0: u64)
18MoveLoc[2](Arg2: u8)
19MoveLoc[3](Arg3: u128)
20MoveLoc[4](Arg4: Ty0)
21Call slice_insert<Ty0>(&mut BigVector<Ty0>, u64, u8, u128, Ty0): u128 * u64
22StLoc[13](loc8: u64)
23StLoc[6](loc1: u128)
24CopyLoc[13](loc8: u64)
25LdConst[0](u64: 0)
26Eq
27BrFalse(33)
B1:
28MoveLoc[0](Arg0: &mut BigVector<Ty0>)
29Pop
30LdU128(0)
31LdConst[0](u64: 0)
32Ret
B2:
33CopyLoc[0](Arg0: &mut BigVector<Ty0>)
34MutBorrowFieldGeneric[3](BigVector.id: UID)
35CopyLoc[1](Arg1: u64)
36Call dynamic_field::borrow_mut<u64, Slice<u64>>(&mut UID, u64): &mut Slice<u64>
37StLoc[9](loc4: &mut Slice<u64>)
38CopyLoc[9](loc4: &mut Slice<u64>)
39ImmBorrowFieldGeneric[4](Slice.vals: vector<u64>)
40VecLen(5)
41CopyLoc[0](Arg0: &mut BigVector<Ty0>)
42ImmBorrowFieldGeneric[14](BigVector.max_fan_out: u64)
43ReadRef
44Lt
45BrFalse(63)
B3:
46MoveLoc[0](Arg0: &mut BigVector<Ty0>)
47Pop
48CopyLoc[9](loc4: &mut Slice<u64>)
49MutBorrowFieldGeneric[12](Slice.keys: vector<u128>)
50MoveLoc[6](loc1: u128)
51CopyLoc[10](loc5: u64)
52Call vector::insert<u128>(&mut vector<u128>, u128, u64)
53MoveLoc[9](loc4: &mut Slice<u64>)
54MutBorrowFieldGeneric[4](Slice.vals: vector<u64>)
55MoveLoc[13](loc8: u64)
56MoveLoc[10](loc5: u64)
57LdU64(1)
58Add
59Call vector::insert<u64>(&mut vector<u64>, u64, u64)
60LdU128(0)
61LdConst[0](u64: 0)
62Ret
B4:
63CopyLoc[9](loc4: &mut Slice<u64>)
64ImmBorrowFieldGeneric[4](Slice.vals: vector<u64>)
65VecLen(5)
66LdU64(2)
67Div
68StLoc[12](loc7: u64)
69MoveLoc[1](Arg1: u64)
70CopyLoc[9](loc4: &mut Slice<u64>)
71ImmBorrowFieldGeneric[15](Slice.next: u64)
72ReadRef
73CopyLoc[9](loc4: &mut Slice<u64>)
74MutBorrowFieldGeneric[12](Slice.keys: vector<u128>)
75CopyLoc[12](loc7: u64)
76Call utils::pop_until<u128>(&mut vector<u128>, u64): vector<u128>
77CopyLoc[9](loc4: &mut Slice<u64>)
78MutBorrowFieldGeneric[4](Slice.vals: vector<u64>)
79CopyLoc[12](loc7: u64)
80Call utils::pop_until<u64>(&mut vector<u64>, u64): vector<u64>
81PackGeneric[2](Slice<u64>)
82StLoc[7](loc2: Slice<u64>)
83CopyLoc[9](loc4: &mut Slice<u64>)
84MutBorrowFieldGeneric[12](Slice.keys: vector<u128>)
85VecPopBack(22)
86StLoc[11](loc6: u128)
87CopyLoc[6](loc1: u128)
88CopyLoc[11](loc6: u128)
89Lt
90BrFalse(104)
B5:
91CopyLoc[9](loc4: &mut Slice<u64>)
92MutBorrowFieldGeneric[12](Slice.keys: vector<u128>)
93MoveLoc[6](loc1: u128)
94CopyLoc[10](loc5: u64)
95Call vector::insert<u128>(&mut vector<u128>, u128, u64)
96MoveLoc[9](loc4: &mut Slice<u64>)
97MutBorrowFieldGeneric[4](Slice.vals: vector<u64>)
98MoveLoc[13](loc8: u64)
99MoveLoc[10](loc5: u64)
100LdU64(1)
101Add
102Call vector::insert<u64>(&mut vector<u64>, u64, u64)
103Branch(122)
B6:
104MoveLoc[9](loc4: &mut Slice<u64>)
105Pop
106MutBorrowLoc[7](loc2: Slice<u64>)
107MutBorrowFieldGeneric[12](Slice.keys: vector<u128>)
108MoveLoc[6](loc1: u128)
109CopyLoc[10](loc5: u64)
110CopyLoc[12](loc7: u64)
111Sub
112Call vector::insert<u128>(&mut vector<u128>, u128, u64)
113MutBorrowLoc[7](loc2: Slice<u64>)
114MutBorrowFieldGeneric[4](Slice.vals: vector<u64>)
115MoveLoc[13](loc8: u64)
116MoveLoc[10](loc5: u64)
117MoveLoc[12](loc7: u64)
118Sub
119LdU64(1)
120Add
121Call vector::insert<u64>(&mut vector<u64>, u64, u64)
B7:
122MoveLoc[11](loc6: u128)
123MoveLoc[0](Arg0: &mut BigVector<Ty0>)
124MoveLoc[7](loc2: Slice<u64>)
125Call alloc<Ty0, u64>(&mut BigVector<Ty0>, Slice<u64>): u64
126Ret
}
 
slice_remove<Ty0: store>(Arg0: &mut BigVector<Ty0>, Arg1: u64, Arg2: u128, Arg3: u64, Arg4: u128, Arg5: u64, Arg6: u8, Arg7: u128): Ty0 * u8 * u128 {
L8: loc0: Ty0
L9: loc1: u8
L10: loc2: u128
B0:
0CopyLoc[6](Arg6: u8)
1LdU8(0)
2Eq
3BrFalse(16)
B1:
4MoveLoc[0](Arg0: &mut BigVector<Ty0>)
5MoveLoc[1](Arg1: u64)
6MoveLoc[2](Arg2: u128)
7MoveLoc[3](Arg3: u64)
8MoveLoc[4](Arg4: u128)
9MoveLoc[5](Arg5: u64)
10MoveLoc[7](Arg7: u128)
11Call leaf_remove<Ty0>(&mut BigVector<Ty0>, u64, u128, u64, u128, u64, u128): Ty0 * u8 * u128
12StLoc[10](loc2: u128)
13StLoc[9](loc1: u8)
14StLoc[8](loc0: Ty0)
15Branch(30)
B2:
16MoveLoc[0](Arg0: &mut BigVector<Ty0>)
17MoveLoc[1](Arg1: u64)
18MoveLoc[2](Arg2: u128)
19MoveLoc[3](Arg3: u64)
20MoveLoc[4](Arg4: u128)
21MoveLoc[5](Arg5: u64)
22MoveLoc[6](Arg6: u8)
23LdU8(1)
24Sub
25MoveLoc[7](Arg7: u128)
26Call node_remove<Ty0>(&mut BigVector<Ty0>, u64, u128, u64, u128, u64, u8, u128): Ty0 * u8 * u128
27StLoc[10](loc2: u128)
28StLoc[9](loc1: u8)
29StLoc[8](loc0: Ty0)
B3:
30MoveLoc[8](loc0: Ty0)
31MoveLoc[9](loc1: u8)
32MoveLoc[10](loc2: u128)
33Ret
}
 
leaf_remove<Ty0: store>(Arg0: &mut BigVector<Ty0>, Arg1: u64, Arg2: u128, Arg3: u64, Arg4: u128, Arg5: u64, Arg6: u128): Ty0 * u8 * u128 {
L7: loc0: Ty0
L8: loc1: u8
L9: loc2: u128
L10: loc3: &mut Slice<Ty0>
L11: loc4: u64
L12: loc5: u64
L13: loc6: u64
L14: loc7: Ty0
B0:
0CopyLoc[0](Arg0: &mut BigVector<Ty0>)
1MutBorrowFieldGeneric[3](BigVector.id: UID)
2CopyLoc[3](Arg3: u64)
3Call dynamic_field::borrow_mut<u64, Slice<Ty0>>(&mut UID, u64): &mut Slice<Ty0>
4StLoc[10](loc3: &mut Slice<Ty0>)
5CopyLoc[10](loc3: &mut Slice<Ty0>)
6FreezeRef
7CopyLoc[6](Arg6: u128)
8Call slice_bisect_left<Ty0>(&Slice<Ty0>, u128): u64
9StLoc[12](loc5: u64)
10CopyLoc[12](loc5: u64)
11CopyLoc[10](loc3: &mut Slice<Ty0>)
12ImmBorrowFieldGeneric[5](Slice.keys: vector<u128>)
13VecLen(22)
14Ge
15BrFalse(22)
B1:
16MoveLoc[0](Arg0: &mut BigVector<Ty0>)
17Pop
18MoveLoc[10](loc3: &mut Slice<Ty0>)
19Pop
20LdConst[5](u64: 5)
21Abort
B2:
22MoveLoc[6](Arg6: u128)
23CopyLoc[10](loc3: &mut Slice<Ty0>)
24ImmBorrowFieldGeneric[5](Slice.keys: vector<u128>)
25CopyLoc[12](loc5: u64)
26VecImmBorrow(22)
27ReadRef
28Neq
29BrFalse(36)
B3:
30MoveLoc[0](Arg0: &mut BigVector<Ty0>)
31Pop
32MoveLoc[10](loc3: &mut Slice<Ty0>)
33Pop
34LdConst[5](u64: 5)
35Abort
B4:
36CopyLoc[10](loc3: &mut Slice<Ty0>)
37MutBorrowFieldGeneric[5](Slice.keys: vector<u128>)
38CopyLoc[12](loc5: u64)
39Call vector::remove<u128>(&mut vector<u128>, u64): u128
40Pop
41CopyLoc[10](loc3: &mut Slice<Ty0>)
42MutBorrowFieldGeneric[6](Slice.vals: vector<Ty0>)
43MoveLoc[12](loc5: u64)
44Call vector::remove<Ty0>(&mut vector<Ty0>, u64): Ty0
45StLoc[14](loc7: Ty0)
46MoveLoc[10](loc3: &mut Slice<Ty0>)
47ImmBorrowFieldGeneric[6](Slice.vals: vector<Ty0>)
48VecLen(12)
49StLoc[13](loc6: u64)
50CopyLoc[0](Arg0: &mut BigVector<Ty0>)
51ImmBorrowFieldGeneric[13](BigVector.max_slice_size: u64)
52ReadRef
53LdU64(2)
54Div
55StLoc[11](loc4: u64)
56CopyLoc[13](loc6: u64)
57CopyLoc[11](loc4: u64)
58Ge
59BrFalse(66)
B5:
60MoveLoc[0](Arg0: &mut BigVector<Ty0>)
61Pop
62MoveLoc[14](loc7: Ty0)
63LdConst[12](u8: 0)
64LdU128(0)
65Ret
B6:
66CopyLoc[1](Arg1: u64)
67LdConst[0](u64: 0)
68Neq
69BrFalse(87)
B7:
70CopyLoc[0](Arg0: &mut BigVector<Ty0>)
71ImmBorrowFieldGeneric[3](BigVector.id: UID)
72CopyLoc[1](Arg1: u64)
73Call dynamic_field::borrow<u64, Slice<Ty0>>(&UID, u64): &Slice<Ty0>
74ImmBorrowFieldGeneric[6](Slice.vals: vector<Ty0>)
75VecLen(12)
76CopyLoc[11](loc4: u64)
77Gt
78BrFalse(87)
B8:
79MoveLoc[14](loc7: Ty0)
80LdConst[14](u8: 2)
81MoveLoc[0](Arg0: &mut BigVector<Ty0>)
82MoveLoc[1](Arg1: u64)
83MoveLoc[2](Arg2: u128)
84MoveLoc[3](Arg3: u64)
85Call slice_redistribute<Ty0, Ty0>(&mut BigVector<Ty0>, u64, u128, u64): u128
86Ret
B9:
87CopyLoc[5](Arg5: u64)
88LdConst[0](u64: 0)
89Neq
90BrFalse(108)
B10:
91CopyLoc[0](Arg0: &mut BigVector<Ty0>)
92ImmBorrowFieldGeneric[3](BigVector.id: UID)
93CopyLoc[5](Arg5: u64)
94Call dynamic_field::borrow<u64, Slice<Ty0>>(&UID, u64): &Slice<Ty0>
95ImmBorrowFieldGeneric[6](Slice.vals: vector<Ty0>)
96VecLen(12)
97MoveLoc[11](loc4: u64)
98Gt
99BrFalse(108)
B11:
100MoveLoc[14](loc7: Ty0)
101LdConst[15](u8: 3)
102MoveLoc[0](Arg0: &mut BigVector<Ty0>)
103MoveLoc[3](Arg3: u64)
104MoveLoc[4](Arg4: u128)
105MoveLoc[5](Arg5: u64)
106Call slice_redistribute<Ty0, Ty0>(&mut BigVector<Ty0>, u64, u128, u64): u128
107Ret
B12:
108CopyLoc[1](Arg1: u64)
109LdConst[0](u64: 0)
110Neq
111BrFalse(121)
B13:
112MoveLoc[0](Arg0: &mut BigVector<Ty0>)
113MoveLoc[1](Arg1: u64)
114MoveLoc[2](Arg2: u128)
115MoveLoc[3](Arg3: u64)
116Call slice_merge<Ty0, Ty0>(&mut BigVector<Ty0>, u64, u128, u64)
117MoveLoc[14](loc7: Ty0)
118LdConst[16](u8: 4)
119LdU128(0)
120Ret
B14:
121CopyLoc[5](Arg5: u64)
122LdConst[0](u64: 0)
123Neq
124BrFalse(134)
B15:
125MoveLoc[0](Arg0: &mut BigVector<Ty0>)
126MoveLoc[3](Arg3: u64)
127MoveLoc[4](Arg4: u128)
128MoveLoc[5](Arg5: u64)
129Call slice_merge<Ty0, Ty0>(&mut BigVector<Ty0>, u64, u128, u64)
130MoveLoc[14](loc7: Ty0)
131LdConst[17](u8: 5)
132LdU128(0)
133Ret
B16:
134MoveLoc[0](Arg0: &mut BigVector<Ty0>)
135Pop
136MoveLoc[13](loc6: u64)
137LdU64(0)
138Eq
139BrFalse(147)
B17:
140MoveLoc[14](loc7: Ty0)
141LdConst[13](u8: 1)
142LdU128(0)
143StLoc[9](loc2: u128)
144StLoc[8](loc1: u8)
145StLoc[7](loc0: Ty0)
146Branch(153)
B18:
147MoveLoc[14](loc7: Ty0)
148LdConst[12](u8: 0)
149LdU128(0)
150StLoc[9](loc2: u128)
151StLoc[8](loc1: u8)
152StLoc[7](loc0: Ty0)
B19:
153MoveLoc[7](loc0: Ty0)
154MoveLoc[8](loc1: u8)
155MoveLoc[9](loc2: u128)
156Ret
}
 
node_remove<Ty0: store>(Arg0: &mut BigVector<Ty0>, Arg1: u64, Arg2: u128, Arg3: u64, Arg4: u128, Arg5: u64, Arg6: u8, Arg7: u128): Ty0 * u8 * u128 {
L8: loc0: u64
L9: loc1: u128
L10: loc2: u64
L11: loc3: u128
L12: loc4: Ty0
L13: loc5: u8
L14: loc6: u128
L15: loc7: u64
L16: loc8: u64
L17: loc9: u128
L18: loc10: u64
L19: loc11: u128
L20: loc12: u64
L21: loc13: &Slice<u64>
L22: loc14: &mut Slice<u64>
L23: loc15: u64
L24: loc16: u128
L25: loc17: u64
L26: loc18: u8
L27: loc19: Ty0
B0:
0CopyLoc[0](Arg0: &mut BigVector<Ty0>)
1ImmBorrowFieldGeneric[3](BigVector.id: UID)
2CopyLoc[3](Arg3: u64)
3Call dynamic_field::borrow<u64, Slice<u64>>(&UID, u64): &Slice<u64>
4StLoc[21](loc13: &Slice<u64>)
5CopyLoc[21](loc13: &Slice<u64>)
6CopyLoc[7](Arg7: u128)
7Call slice_bisect_right<u64>(&Slice<u64>, u128): u64
8StLoc[23](loc15: u64)
9CopyLoc[21](loc13: &Slice<u64>)
10ImmBorrowFieldGeneric[4](Slice.vals: vector<u64>)
11CopyLoc[23](loc15: u64)
12VecImmBorrow(5)
13ReadRef
14StLoc[15](loc7: u64)
15CopyLoc[23](loc15: u64)
16LdU64(0)
17Eq
18BrFalse(24)
B1:
19LdConst[0](u64: 0)
20LdU128(0)
21StLoc[9](loc1: u128)
22StLoc[8](loc0: u64)
23Branch(40)
B2:
24CopyLoc[21](loc13: &Slice<u64>)
25ImmBorrowFieldGeneric[4](Slice.vals: vector<u64>)
26CopyLoc[23](loc15: u64)
27LdU64(1)
28Sub
29VecImmBorrow(5)
30ReadRef
31CopyLoc[21](loc13: &Slice<u64>)
32ImmBorrowFieldGeneric[12](Slice.keys: vector<u128>)
33CopyLoc[23](loc15: u64)
34LdU64(1)
35Sub
36VecImmBorrow(22)
37ReadRef
38StLoc[9](loc1: u128)
39StLoc[8](loc0: u64)
B3:
40MoveLoc[8](loc0: u64)
41MoveLoc[9](loc1: u128)
42StLoc[19](loc11: u128)
43StLoc[18](loc10: u64)
44CopyLoc[23](loc15: u64)
45CopyLoc[21](loc13: &Slice<u64>)
46ImmBorrowFieldGeneric[12](Slice.keys: vector<u128>)
47VecLen(22)
48Eq
49BrFalse(57)
B4:
50MoveLoc[21](loc13: &Slice<u64>)
51Pop
52LdConst[0](u64: 0)
53LdU128(0)
54StLoc[11](loc3: u128)
55StLoc[10](loc2: u64)
56Branch(71)
B5:
57CopyLoc[21](loc13: &Slice<u64>)
58ImmBorrowFieldGeneric[4](Slice.vals: vector<u64>)
59CopyLoc[23](loc15: u64)
60LdU64(1)
61Add
62VecImmBorrow(5)
63ReadRef
64MoveLoc[21](loc13: &Slice<u64>)
65ImmBorrowFieldGeneric[12](Slice.keys: vector<u128>)
66CopyLoc[23](loc15: u64)
67VecImmBorrow(22)
68ReadRef
69StLoc[11](loc3: u128)
70StLoc[10](loc2: u64)
B6:
71MoveLoc[10](loc2: u64)
72MoveLoc[11](loc3: u128)
73StLoc[17](loc9: u128)
74StLoc[16](loc8: u64)
75CopyLoc[0](Arg0: &mut BigVector<Ty0>)
76MoveLoc[18](loc10: u64)
77MoveLoc[19](loc11: u128)
78MoveLoc[15](loc7: u64)
79MoveLoc[17](loc9: u128)
80MoveLoc[16](loc8: u64)
81MoveLoc[6](Arg6: u8)
82MoveLoc[7](Arg7: u128)
83Call slice_remove<Ty0>(&mut BigVector<Ty0>, u64, u128, u64, u128, u64, u8, u128): Ty0 * u8 * u128
84StLoc[24](loc16: u128)
85StLoc[26](loc18: u8)
86StLoc[27](loc19: Ty0)
87CopyLoc[0](Arg0: &mut BigVector<Ty0>)
88MutBorrowFieldGeneric[3](BigVector.id: UID)
89CopyLoc[3](Arg3: u64)
90Call dynamic_field::borrow_mut<u64, Slice<u64>>(&mut UID, u64): &mut Slice<u64>
91StLoc[22](loc14: &mut Slice<u64>)
92CopyLoc[26](loc18: u8)
93LdConst[12](u8: 0)
94Eq
95BrFalse(104)
B7:
96MoveLoc[0](Arg0: &mut BigVector<Ty0>)
97Pop
98MoveLoc[22](loc14: &mut Slice<u64>)
99Pop
100MoveLoc[27](loc19: Ty0)
101LdConst[12](u8: 0)
102LdU128(0)
103Ret
B8:
104CopyLoc[26](loc18: u8)
105LdConst[14](u8: 2)
106Eq
107BrFalse(122)
B9:
108MoveLoc[0](Arg0: &mut BigVector<Ty0>)
109Pop
110MoveLoc[24](loc16: u128)
111MoveLoc[22](loc14: &mut Slice<u64>)
112MutBorrowFieldGeneric[12](Slice.keys: vector<u128>)
113MoveLoc[23](loc15: u64)
114LdU64(1)
115Sub
116VecMutBorrow(22)
117WriteRef
118MoveLoc[27](loc19: Ty0)
119LdConst[12](u8: 0)
120LdU128(0)
121Ret
B10:
122CopyLoc[26](loc18: u8)
123LdConst[15](u8: 3)
124Eq
125BrFalse(138)
B11:
126MoveLoc[0](Arg0: &mut BigVector<Ty0>)
127Pop
128MoveLoc[24](loc16: u128)
129MoveLoc[22](loc14: &mut Slice<u64>)
130MutBorrowFieldGeneric[12](Slice.keys: vector<u128>)
131MoveLoc[23](loc15: u64)
132VecMutBorrow(22)
133WriteRef
134MoveLoc[27](loc19: Ty0)
135LdConst[12](u8: 0)
136LdU128(0)
137Ret
B12:
138CopyLoc[26](loc18: u8)
139LdConst[16](u8: 4)
140Eq
141BrFalse(155)
B13:
142CopyLoc[22](loc14: &mut Slice<u64>)
143MutBorrowFieldGeneric[12](Slice.keys: vector<u128>)
144CopyLoc[23](loc15: u64)
145LdU64(1)
146Sub
147Call vector::remove<u128>(&mut vector<u128>, u64): u128
148Pop
149CopyLoc[22](loc14: &mut Slice<u64>)
150MutBorrowFieldGeneric[4](Slice.vals: vector<u64>)
151MoveLoc[23](loc15: u64)
152Call vector::remove<u64>(&mut vector<u64>, u64): u64
153Pop
154Branch(178)
B14:
155MoveLoc[26](loc18: u8)
156LdConst[17](u8: 5)
157Eq
158BrFalse(172)
B15:
159CopyLoc[22](loc14: &mut Slice<u64>)
160MutBorrowFieldGeneric[12](Slice.keys: vector<u128>)
161CopyLoc[23](loc15: u64)
162Call vector::remove<u128>(&mut vector<u128>, u64): u128
163Pop
164CopyLoc[22](loc14: &mut Slice<u64>)
165MutBorrowFieldGeneric[4](Slice.vals: vector<u64>)
166MoveLoc[23](loc15: u64)
167LdU64(1)
168Add
169Call vector::remove<u64>(&mut vector<u64>, u64): u64
170Pop
171Branch(178)
B16:
172MoveLoc[0](Arg0: &mut BigVector<Ty0>)
173Pop
174MoveLoc[22](loc14: &mut Slice<u64>)
175Pop
176LdConst[7](u64: 7)
177Abort
B17:
178MoveLoc[22](loc14: &mut Slice<u64>)
179ImmBorrowFieldGeneric[4](Slice.vals: vector<u64>)
180VecLen(5)
181StLoc[25](loc17: u64)
182CopyLoc[0](Arg0: &mut BigVector<Ty0>)
183ImmBorrowFieldGeneric[14](BigVector.max_fan_out: u64)
184ReadRef
185LdU64(2)
186Div
187StLoc[20](loc12: u64)
188CopyLoc[25](loc17: u64)
189CopyLoc[20](loc12: u64)
190Ge
191BrFalse(198)
B18:
192MoveLoc[0](Arg0: &mut BigVector<Ty0>)
193Pop
194MoveLoc[27](loc19: Ty0)
195LdConst[12](u8: 0)
196LdU128(0)
197Ret
B19:
198CopyLoc[1](Arg1: u64)
199LdConst[0](u64: 0)
200Neq
201BrFalse(219)
B20:
202CopyLoc[0](Arg0: &mut BigVector<Ty0>)
203ImmBorrowFieldGeneric[3](BigVector.id: UID)
204CopyLoc[1](Arg1: u64)
205Call dynamic_field::borrow<u64, Slice<u64>>(&UID, u64): &Slice<u64>
206ImmBorrowFieldGeneric[4](Slice.vals: vector<u64>)
207VecLen(5)
208CopyLoc[20](loc12: u64)
209Gt
210BrFalse(219)
B21:
211MoveLoc[27](loc19: Ty0)
212LdConst[14](u8: 2)
213MoveLoc[0](Arg0: &mut BigVector<Ty0>)
214MoveLoc[1](Arg1: u64)
215MoveLoc[2](Arg2: u128)
216MoveLoc[3](Arg3: u64)
217Call slice_redistribute<Ty0, u64>(&mut BigVector<Ty0>, u64, u128, u64): u128
218Ret
B22:
219CopyLoc[5](Arg5: u64)
220LdConst[0](u64: 0)
221Neq
222BrFalse(240)
B23:
223CopyLoc[0](Arg0: &mut BigVector<Ty0>)
224ImmBorrowFieldGeneric[3](BigVector.id: UID)
225CopyLoc[5](Arg5: u64)
226Call dynamic_field::borrow<u64, Slice<u64>>(&UID, u64): &Slice<u64>
227ImmBorrowFieldGeneric[4](Slice.vals: vector<u64>)
228VecLen(5)
229MoveLoc[20](loc12: u64)
230Gt
231BrFalse(240)
B24:
232MoveLoc[27](loc19: Ty0)
233LdConst[15](u8: 3)
234MoveLoc[0](Arg0: &mut BigVector<Ty0>)
235MoveLoc[3](Arg3: u64)
236MoveLoc[4](Arg4: u128)
237MoveLoc[5](Arg5: u64)
238Call slice_redistribute<Ty0, u64>(&mut BigVector<Ty0>, u64, u128, u64): u128
239Ret
B25:
240CopyLoc[1](Arg1: u64)
241LdConst[0](u64: 0)
242Neq
243BrFalse(253)
B26:
244MoveLoc[0](Arg0: &mut BigVector<Ty0>)
245MoveLoc[1](Arg1: u64)
246MoveLoc[2](Arg2: u128)
247MoveLoc[3](Arg3: u64)
248Call slice_merge<Ty0, u64>(&mut BigVector<Ty0>, u64, u128, u64)
249MoveLoc[27](loc19: Ty0)
250LdConst[16](u8: 4)
251LdU128(0)
252Ret
B27:
253CopyLoc[5](Arg5: u64)
254LdConst[0](u64: 0)
255Neq
256BrFalse(266)
B28:
257MoveLoc[0](Arg0: &mut BigVector<Ty0>)
258MoveLoc[3](Arg3: u64)
259MoveLoc[4](Arg4: u128)
260MoveLoc[5](Arg5: u64)
261Call slice_merge<Ty0, u64>(&mut BigVector<Ty0>, u64, u128, u64)
262MoveLoc[27](loc19: Ty0)
263LdConst[17](u8: 5)
264LdU128(0)
265Ret
B29:
266MoveLoc[0](Arg0: &mut BigVector<Ty0>)
267Pop
268CopyLoc[25](loc17: u64)
269LdU64(0)
270Eq
271BrFalse(274)
B30:
272LdConst[7](u64: 7)
273Abort
B31:
274MoveLoc[25](loc17: u64)
275LdU64(1)
276Eq
277BrFalse(285)
B32:
278MoveLoc[27](loc19: Ty0)
279LdConst[13](u8: 1)
280LdU128(0)
281StLoc[14](loc6: u128)
282StLoc[13](loc5: u8)
283StLoc[12](loc4: Ty0)
284Branch(291)
B33:
285MoveLoc[27](loc19: Ty0)
286LdConst[12](u8: 0)
287LdU128(0)
288StLoc[14](loc6: u128)
289StLoc[13](loc5: u8)
290StLoc[12](loc4: Ty0)
B34:
291MoveLoc[12](loc4: Ty0)
292MoveLoc[13](loc5: u8)
293MoveLoc[14](loc6: u128)
294Ret
}
 
slice_redistribute<Ty0: store, Ty1: store>(Arg0: &mut BigVector<Ty0>, Arg1: u64, Arg2: u128, Arg3: u64): u128 {
L4: loc0: vector<u128>
L5: loc1: vector<u128>
L6: loc2: u128
L7: loc3: vector<u128>
L8: loc4: vector<u128>
L9: loc5: u128
L10: loc6: vector<u128>
L11: loc7: bool
L12: loc8: vector<Ty1>
L13: loc9: vector<Ty1>
L14: loc10: bool
L15: loc11: bool
L16: loc12: bool
L17: loc13: vector<u128>
L18: loc14: u128
L19: loc15: bool
L20: loc16: Slice<Ty1>
L21: loc17: bool
L22: loc18: vector<u128>
L23: loc19: vector<u128>
L24: loc20: u64
L25: loc21: u64
L26: loc22: vector<Ty1>
L27: loc23: vector<Ty1>
L28: loc24: vector<u128>
L29: loc25: vector<u128>
L30: loc26: vector<u128>
L31: loc27: vector<u128>
L32: loc28: vector<Ty1>
L33: loc29: vector<Ty1>
L34: loc30: u64
L35: loc31: u64
L36: loc32: u64
L37: loc33: u64
L38: loc34: u128
L39: loc35: u128
L40: loc36: u128
L41: loc37: u128
L42: loc38: u128
L43: loc39: Slice<Ty1>
L44: loc40: vector<u128>
L45: loc41: vector<u128>
L46: loc42: vector<u128>
L47: loc43: vector<u128>
L48: loc44: u64
L49: loc45: u64
L50: loc46: vector<Ty1>
L51: loc47: vector<Ty1>
L52: loc48: vector<Ty1>
L53: loc49: u64
B0:
0CopyLoc[0](Arg0: &mut BigVector<Ty0>)
1MutBorrowFieldGeneric[3](BigVector.id: UID)
2CopyLoc[1](Arg1: u64)
3Call dynamic_field::remove<u64, Slice<Ty1>>(&mut UID, u64): Slice<Ty1>
4StLoc[20](loc16: Slice<Ty1>)
5CopyLoc[0](Arg0: &mut BigVector<Ty0>)
6MutBorrowFieldGeneric[3](BigVector.id: UID)
7CopyLoc[3](Arg3: u64)
8Call dynamic_field::remove<u64, Slice<Ty1>>(&mut UID, u64): Slice<Ty1>
9StLoc[43](loc39: Slice<Ty1>)
10ImmBorrowLoc[20](loc16: Slice<Ty1>)
11ImmBorrowFieldGeneric[10](Slice.next: u64)
12ReadRef
13CopyLoc[3](Arg3: u64)
14Eq
15BrFalse(17)
B1:
16Branch(21)
B2:
17MoveLoc[0](Arg0: &mut BigVector<Ty0>)
18Pop
19LdConst[8](u64: 8)
20Abort
B3:
21ImmBorrowLoc[43](loc39: Slice<Ty1>)
22ImmBorrowFieldGeneric[9](Slice.prev: u64)
23ReadRef
24CopyLoc[1](Arg1: u64)
25Eq
26BrFalse(28)
B4:
27Branch(32)
B5:
28MoveLoc[0](Arg0: &mut BigVector<Ty0>)
29Pop
30LdConst[8](u64: 8)
31Abort
B6:
32ImmBorrowLoc[20](loc16: Slice<Ty1>)
33Call slice_is_leaf<Ty1>(&Slice<Ty1>): bool
34StLoc[19](loc15: bool)
35MoveLoc[20](loc16: Slice<Ty1>)
36UnpackGeneric[3](Slice<Ty1>)
37StLoc[26](loc22: vector<Ty1>)
38StLoc[22](loc18: vector<u128>)
39StLoc[24](loc20: u64)
40StLoc[25](loc21: u64)
41MoveLoc[43](loc39: Slice<Ty1>)
42UnpackGeneric[3](Slice<Ty1>)
43StLoc[50](loc46: vector<Ty1>)
44StLoc[44](loc40: vector<u128>)
45StLoc[48](loc44: u64)
46StLoc[49](loc45: u64)
47ImmBorrowLoc[26](loc22: vector<Ty1>)
48VecLen(49)
49StLoc[36](loc32: u64)
50ImmBorrowLoc[50](loc46: vector<Ty1>)
51VecLen(49)
52StLoc[37](loc33: u64)
53CopyLoc[36](loc32: u64)
54CopyLoc[37](loc33: u64)
55Add
56StLoc[53](loc49: u64)
57CopyLoc[53](loc49: u64)
58LdU64(2)
59Div
60StLoc[34](loc30: u64)
61MoveLoc[53](loc49: u64)
62CopyLoc[34](loc30: u64)
63Sub
64StLoc[35](loc31: u64)
65CopyLoc[34](loc30: u64)
66MoveLoc[36](loc32: u64)
67Lt
68BrFalse(72)
B7:
69LdTrue
70StLoc[11](loc7: bool)
71Branch(83)
B8:
72CopyLoc[35](loc31: u64)
73MoveLoc[37](loc33: u64)
74Lt
75BrFalse(77)
B9:
76Branch(81)
B10:
77MoveLoc[0](Arg0: &mut BigVector<Ty0>)
78Pop
79LdConst[9](u64: 9)
80Abort
B11:
81LdFalse
82StLoc[11](loc7: bool)
B12:
83MoveLoc[11](loc7: bool)
84StLoc[21](loc17: bool)
85CopyLoc[21](loc17: bool)
86BrFalse(99)
B13:
87MutBorrowLoc[26](loc22: vector<Ty1>)
88CopyLoc[34](loc30: u64)
89Call utils::pop_until<Ty1>(&mut vector<Ty1>, u64): vector<Ty1>
90StLoc[32](loc28: vector<Ty1>)
91MutBorrowLoc[32](loc28: vector<Ty1>)
92MoveLoc[50](loc46: vector<Ty1>)
93Call vector::append<Ty1>(&mut vector<Ty1>, vector<Ty1>)
94MoveLoc[26](loc22: vector<Ty1>)
95MoveLoc[32](loc28: vector<Ty1>)
96StLoc[13](loc9: vector<Ty1>)
97StLoc[12](loc8: vector<Ty1>)
98Branch(112)
B14:
99MoveLoc[50](loc46: vector<Ty1>)
100StLoc[33](loc29: vector<Ty1>)
101MutBorrowLoc[33](loc29: vector<Ty1>)
102CopyLoc[35](loc31: u64)
103Call utils::pop_n<Ty1>(&mut vector<Ty1>, u64): vector<Ty1>
104StLoc[51](loc47: vector<Ty1>)
105MutBorrowLoc[26](loc22: vector<Ty1>)
106MoveLoc[33](loc29: vector<Ty1>)
107Call vector::append<Ty1>(&mut vector<Ty1>, vector<Ty1>)
108MoveLoc[26](loc22: vector<Ty1>)
109MoveLoc[51](loc47: vector<Ty1>)
110StLoc[13](loc9: vector<Ty1>)
111StLoc[12](loc8: vector<Ty1>)
B15:
112MoveLoc[12](loc8: vector<Ty1>)
113MoveLoc[13](loc9: vector<Ty1>)
114StLoc[52](loc48: vector<Ty1>)
115StLoc[27](loc23: vector<Ty1>)
116CopyLoc[19](loc15: bool)
117BrFalse(121)
B16:
118CopyLoc[21](loc17: bool)
119StLoc[14](loc10: bool)
120Branch(123)
B17:
121LdFalse
122StLoc[14](loc10: bool)
B18:
123MoveLoc[14](loc10: bool)
124BrFalse(144)
B19:
125MutBorrowLoc[22](loc18: vector<u128>)
126MoveLoc[34](loc30: u64)
127Call utils::pop_until<u128>(&mut vector<u128>, u64): vector<u128>
128StLoc[28](loc24: vector<u128>)
129ImmBorrowLoc[28](loc24: vector<u128>)
130LdU64(0)
131VecImmBorrow(22)
132ReadRef
133StLoc[38](loc34: u128)
134MutBorrowLoc[28](loc24: vector<u128>)
135MoveLoc[44](loc40: vector<u128>)
136Call vector::append<u128>(&mut vector<u128>, vector<u128>)
137MoveLoc[22](loc18: vector<u128>)
138MoveLoc[38](loc34: u128)
139MoveLoc[28](loc24: vector<u128>)
140StLoc[10](loc6: vector<u128>)
141StLoc[9](loc5: u128)
142StLoc[8](loc4: vector<u128>)
143Branch(240)
B20:
144CopyLoc[19](loc15: bool)
145BrFalse(150)
B21:
146CopyLoc[21](loc17: bool)
147Not
148StLoc[15](loc11: bool)
149Branch(152)
B22:
150LdFalse
151StLoc[15](loc11: bool)
B23:
152MoveLoc[15](loc11: bool)
153BrFalse(175)
B24:
154MoveLoc[44](loc40: vector<u128>)
155StLoc[29](loc25: vector<u128>)
156MutBorrowLoc[29](loc25: vector<u128>)
157MoveLoc[35](loc31: u64)
158Call utils::pop_n<u128>(&mut vector<u128>, u64): vector<u128>
159StLoc[45](loc41: vector<u128>)
160ImmBorrowLoc[45](loc41: vector<u128>)
161LdU64(0)
162VecImmBorrow(22)
163ReadRef
164StLoc[39](loc35: u128)
165MutBorrowLoc[22](loc18: vector<u128>)
166MoveLoc[29](loc25: vector<u128>)
167Call vector::append<u128>(&mut vector<u128>, vector<u128>)
168MoveLoc[22](loc18: vector<u128>)
169MoveLoc[39](loc35: u128)
170MoveLoc[45](loc41: vector<u128>)
171StLoc[7](loc3: vector<u128>)
172StLoc[6](loc2: u128)
173StLoc[5](loc1: vector<u128>)
174Branch(234)
B25:
175MoveLoc[19](loc15: bool)
176Not
177BrFalse(181)
B26:
178MoveLoc[21](loc17: bool)
179StLoc[16](loc12: bool)
180Branch(183)
B27:
181LdFalse
182StLoc[16](loc12: bool)
B28:
183MoveLoc[16](loc12: bool)
184BrFalse(205)
B29:
185MutBorrowLoc[22](loc18: vector<u128>)
186MoveLoc[34](loc30: u64)
187Call utils::pop_until<u128>(&mut vector<u128>, u64): vector<u128>
188StLoc[30](loc26: vector<u128>)
189MutBorrowLoc[30](loc26: vector<u128>)
190MoveLoc[2](Arg2: u128)
191VecPushBack(22)
192MutBorrowLoc[30](loc26: vector<u128>)
193MoveLoc[44](loc40: vector<u128>)
194Call vector::append<u128>(&mut vector<u128>, vector<u128>)
195MutBorrowLoc[22](loc18: vector<u128>)
196VecPopBack(22)
197StLoc[40](loc36: u128)
198MoveLoc[22](loc18: vector<u128>)
199MoveLoc[40](loc36: u128)
200MoveLoc[30](loc26: vector<u128>)
201StLoc[4](loc0: vector<u128>)
202StLoc[18](loc14: u128)
203StLoc[17](loc13: vector<u128>)
204Branch(228)
B30:
205MutBorrowLoc[22](loc18: vector<u128>)
206MoveLoc[2](Arg2: u128)
207VecPushBack(22)
208MoveLoc[44](loc40: vector<u128>)
209StLoc[31](loc27: vector<u128>)
210MutBorrowLoc[31](loc27: vector<u128>)
211MoveLoc[35](loc31: u64)
212LdU64(1)
213Sub
214Call utils::pop_n<u128>(&mut vector<u128>, u64): vector<u128>
215StLoc[46](loc42: vector<u128>)
216MutBorrowLoc[31](loc27: vector<u128>)
217VecPopBack(22)
218StLoc[41](loc37: u128)
219MutBorrowLoc[22](loc18: vector<u128>)
220MoveLoc[31](loc27: vector<u128>)
221Call vector::append<u128>(&mut vector<u128>, vector<u128>)
222MoveLoc[22](loc18: vector<u128>)
223MoveLoc[41](loc37: u128)
224MoveLoc[46](loc42: vector<u128>)
225StLoc[4](loc0: vector<u128>)
226StLoc[18](loc14: u128)
227StLoc[17](loc13: vector<u128>)
B31:
228MoveLoc[17](loc13: vector<u128>)
229MoveLoc[18](loc14: u128)
230MoveLoc[4](loc0: vector<u128>)
231StLoc[7](loc3: vector<u128>)
232StLoc[6](loc2: u128)
233StLoc[5](loc1: vector<u128>)
B32:
234MoveLoc[5](loc1: vector<u128>)
235MoveLoc[6](loc2: u128)
236MoveLoc[7](loc3: vector<u128>)
237StLoc[10](loc6: vector<u128>)
238StLoc[9](loc5: u128)
239StLoc[8](loc4: vector<u128>)
B33:
240MoveLoc[8](loc4: vector<u128>)
241MoveLoc[9](loc5: u128)
242MoveLoc[10](loc6: vector<u128>)
243StLoc[47](loc43: vector<u128>)
244StLoc[42](loc38: u128)
245StLoc[23](loc19: vector<u128>)
246CopyLoc[0](Arg0: &mut BigVector<Ty0>)
247MutBorrowFieldGeneric[3](BigVector.id: UID)
248MoveLoc[1](Arg1: u64)
249MoveLoc[25](loc21: u64)
250MoveLoc[24](loc20: u64)
251MoveLoc[23](loc19: vector<u128>)
252MoveLoc[27](loc23: vector<Ty1>)
253PackGeneric[3](Slice<Ty1>)
254Call dynamic_field::add<u64, Slice<Ty1>>(&mut UID, u64, Slice<Ty1>)
255MoveLoc[0](Arg0: &mut BigVector<Ty0>)
256MutBorrowFieldGeneric[3](BigVector.id: UID)
257MoveLoc[3](Arg3: u64)
258MoveLoc[49](loc45: u64)
259MoveLoc[48](loc44: u64)
260MoveLoc[47](loc43: vector<u128>)
261MoveLoc[52](loc48: vector<Ty1>)
262PackGeneric[3](Slice<Ty1>)
263Call dynamic_field::add<u64, Slice<Ty1>>(&mut UID, u64, Slice<Ty1>)
264MoveLoc[42](loc38: u128)
265Ret
}
 
slice_merge<Ty0: store, Ty1: store>(Arg0: &mut BigVector<Ty0>, Arg1: u64, Arg2: u128, Arg3: u64) {
L4: loc0: vector<u128>
L5: loc1: &mut Slice<Ty1>
L6: loc2: u64
L7: loc3: &mut Slice<Ty1>
L8: loc4: Slice<Ty1>
L9: loc5: vector<Ty1>
B0:
0CopyLoc[0](Arg0: &mut BigVector<Ty0>)
1MutBorrowFieldGeneric[3](BigVector.id: UID)
2CopyLoc[3](Arg3: u64)
3Call dynamic_field::remove<u64, Slice<Ty1>>(&mut UID, u64): Slice<Ty1>
4StLoc[8](loc4: Slice<Ty1>)
5CopyLoc[0](Arg0: &mut BigVector<Ty0>)
6MutBorrowFieldGeneric[3](BigVector.id: UID)
7CopyLoc[1](Arg1: u64)
8Call dynamic_field::borrow_mut<u64, Slice<Ty1>>(&mut UID, u64): &mut Slice<Ty1>
9StLoc[5](loc1: &mut Slice<Ty1>)
10CopyLoc[5](loc1: &mut Slice<Ty1>)
11ImmBorrowFieldGeneric[10](Slice.next: u64)
12ReadRef
13MoveLoc[3](Arg3: u64)
14Eq
15BrFalse(17)
B1:
16Branch(23)
B2:
17MoveLoc[0](Arg0: &mut BigVector<Ty0>)
18Pop
19MoveLoc[5](loc1: &mut Slice<Ty1>)
20Pop
21LdConst[8](u64: 8)
22Abort
B3:
23ImmBorrowLoc[8](loc4: Slice<Ty1>)
24ImmBorrowFieldGeneric[9](Slice.prev: u64)
25ReadRef
26CopyLoc[1](Arg1: u64)
27Eq
28BrFalse(30)
B4:
29Branch(36)
B5:
30MoveLoc[0](Arg0: &mut BigVector<Ty0>)
31Pop
32MoveLoc[5](loc1: &mut Slice<Ty1>)
33Pop
34LdConst[8](u64: 8)
35Abort
B6:
36CopyLoc[5](loc1: &mut Slice<Ty1>)
37FreezeRef
38Call slice_is_leaf<Ty1>(&Slice<Ty1>): bool
39Not
40BrFalse(45)
B7:
41CopyLoc[5](loc1: &mut Slice<Ty1>)
42MutBorrowFieldGeneric[16](Slice.keys: vector<u128>)
43MoveLoc[2](Arg2: u128)
44VecPushBack(22)
B8:
45MoveLoc[8](loc4: Slice<Ty1>)
46UnpackGeneric[3](Slice<Ty1>)
47StLoc[9](loc5: vector<Ty1>)
48StLoc[4](loc0: vector<u128>)
49StLoc[6](loc2: u64)
50Pop
51CopyLoc[5](loc1: &mut Slice<Ty1>)
52MutBorrowFieldGeneric[16](Slice.keys: vector<u128>)
53MoveLoc[4](loc0: vector<u128>)
54Call vector::append<u128>(&mut vector<u128>, vector<u128>)
55CopyLoc[5](loc1: &mut Slice<Ty1>)
56MutBorrowFieldGeneric[17](Slice.vals: vector<Ty1>)
57MoveLoc[9](loc5: vector<Ty1>)
58Call vector::append<Ty1>(&mut vector<Ty1>, vector<Ty1>)
59CopyLoc[6](loc2: u64)
60MoveLoc[5](loc1: &mut Slice<Ty1>)
61MutBorrowFieldGeneric[10](Slice.next: u64)
62WriteRef
63CopyLoc[6](loc2: u64)
64LdConst[0](u64: 0)
65Neq
66BrFalse(77)
B9:
67MoveLoc[0](Arg0: &mut BigVector<Ty0>)
68MutBorrowFieldGeneric[3](BigVector.id: UID)
69MoveLoc[6](loc2: u64)
70Call dynamic_field::borrow_mut<u64, Slice<Ty1>>(&mut UID, u64): &mut Slice<Ty1>
71StLoc[7](loc3: &mut Slice<Ty1>)
72MoveLoc[1](Arg1: u64)
73MoveLoc[7](loc3: &mut Slice<Ty1>)
74MutBorrowFieldGeneric[9](Slice.prev: u64)
75WriteRef
76Branch(79)
B10:
77MoveLoc[0](Arg0: &mut BigVector<Ty0>)
78Pop
B11:
79Ret
}
 
Constants [
0 => u64: 0
1 => u64: 1
2 => u64: 2
3 => u64: 3
4 => u64: 4
5 => u64: 5
6 => u64: 6
7 => u64: 7
8 => u64: 8
9 => u64: 9
10 => u64: 4096
11 => u64: 262144
12 => u8: 0
13 => u8: 1
14 => u8: 2
15 => u8: 3
16 => u8: 4
17 => u8: 5
]
}