tick_bitmap
Module0xbe89…7732
- Move path
- 0x3492…c267::tick_bitmap
- Functions
- 62 public, 0 entry
- Structs
- 0
- Friend modules
- pool
tick_bitmap
Bytecode329 lines
The on-chain disassembly. Offsets are bytecode positions within each function.
// Move bytecode v6
module 3492c874c1e3b3e2984e8c41b589e642d4d0a5d6459e5a9cfc2d52fd7c89c267.tick_bitmap {
use 3492c874c1e3b3e2984e8c41b589e642d4d0a5d6459e5a9cfc2d52fd7c89c267::bit_math;
use 3492c874c1e3b3e2984e8c41b589e642d4d0a5d6459e5a9cfc2d52fd7c89c267::constants;
use 3492c874c1e3b3e2984e8c41b589e642d4d0a5d6459e5a9cfc2d52fd7c89c267::i32H;
use 03637b7b60978ef4389124f7683456f0050ab015a0590d52b6e6cadb342af34a::i32;
use 714a63a0dba6da4f017b42d5d0fb78867f18bcde904868e51d951a5a6f5b7f57::i32 as 0i32;
use 0000000000000000000000000000000000000000000000000000000000000002::table;
public cast_to_u8(Arg0: I32): u8 {
L1: loc0: I32
B0:
0MoveLoc[0](Arg0: I32)
1Call i32H::mate_to_lib(I32): I32
2StLoc[1](loc0: I32)
3CopyLoc[1](loc0: I32)
4Call i32::abs_u32(I32): u32
5LdU32(256)
6Lt
7BrFalse(9)
B1:
8Branch(11)
B2:
9LdU64(0)
10Abort
B3:
11MoveLoc[1](loc0: I32)
12LdU32(256)
13Call i32::from(u32): I32
14Call i32::add(I32, I32): I32
15Call i32::abs_u32(I32): u32
16LdU32(255)
17BitAnd
18CastU8
19Ret
}
public(friend) flip_tick(Arg0: &mut Table<I32, u256>, Arg1: I32, Arg2: u32) {
L3: loc0: u8
L4: loc1: I32
L5: loc2: I32
L6: loc3: &mut u256
B0:
0MoveLoc[1](Arg1: I32)
1Call i32H::mate_to_lib(I32): I32
2StLoc[4](loc1: I32)
3CopyLoc[4](loc1: I32)
4Call i32::abs_u32(I32): u32
5CopyLoc[2](Arg2: u32)
6Mod
7LdU32(0)
8Eq
9BrFalse(11)
B1:
10Branch(15)
B2:
11MoveLoc[0](Arg0: &mut Table<I32, u256>)
12Pop
13LdU64(0)
14Abort
B3:
15MoveLoc[4](loc1: I32)
16MoveLoc[2](Arg2: u32)
17Call i32::from(u32): I32
18Call i32::div(I32, I32): I32
19Call position(I32): I32 * u8
20StLoc[3](loc0: u8)
21StLoc[5](loc2: I32)
22MoveLoc[0](Arg0: &mut Table<I32, u256>)
23MoveLoc[5](loc2: I32)
24Call i32H::lib_to_mate(I32): I32
25Call get_mutable_tick_word(&mut Table<I32, u256>, I32): &mut u256
26StLoc[6](loc3: &mut u256)
27CopyLoc[6](loc3: &mut u256)
28ReadRef
29LdU256(1)
30MoveLoc[3](loc0: u8)
31Shl
32Xor
33MoveLoc[6](loc3: &mut u256)
34WriteRef
35Ret
}
public next_initialized_tick_within_one_word(Arg0: &Table<I32, u256>, Arg1: I32, Arg2: u32, Arg3: bool): I32 * bool {
L4: loc0: bool
L5: loc1: I32
L6: loc2: I32
L7: loc3: I32
L8: loc4: bool
L9: loc5: u8
L10: loc6: u8
L11: loc7: I32
L12: loc8: I32
L13: loc9: u256
L14: loc10: u256
L15: loc11: I32
L16: loc12: I32
L17: loc13: I32
B0:
0CopyLoc[2](Arg2: u32)
1Call i32::from(u32): I32
2StLoc[15](loc11: I32)
3MoveLoc[1](Arg1: I32)
4Call i32H::mate_to_lib(I32): I32
5StLoc[12](loc8: I32)
6CopyLoc[12](loc8: I32)
7CopyLoc[15](loc11: I32)
8Call i32::div(I32, I32): I32
9StLoc[11](loc7: I32)
10CopyLoc[12](loc8: I32)
11Call i32::is_neg(I32): bool
12BrFalse(21)
B1:
13MoveLoc[12](loc8: I32)
14Call i32::abs_u32(I32): u32
15MoveLoc[2](Arg2: u32)
16Mod
17LdU32(0)
18Neq
19StLoc[4](loc0: bool)
20Branch(23)
B2:
21LdFalse
22StLoc[4](loc0: bool)
B3:
23MoveLoc[4](loc0: bool)
24BrFalse(30)
B4:
25MoveLoc[11](loc7: I32)
26LdU32(1)
27Call i32::from(u32): I32
28Call i32::sub(I32, I32): I32
29StLoc[11](loc7: I32)
B5:
30MoveLoc[3](Arg3: bool)
31BrFalse(85)
B6:
32CopyLoc[11](loc7: I32)
33Call position(I32): I32 * u8
34StLoc[9](loc5: u8)
35StLoc[16](loc12: I32)
36MoveLoc[0](Arg0: &Table<I32, u256>)
37MoveLoc[16](loc12: I32)
38Call i32H::lib_to_mate(I32): I32
39Call get_immutable_tick_word(&Table<I32, u256>, I32): u256
40LdU256(1)
41CopyLoc[9](loc5: u8)
42Shl
43LdU256(1)
44Sub
45LdU256(1)
46CopyLoc[9](loc5: u8)
47Shl
48Add
49BitAnd
50StLoc[13](loc9: u256)
51CopyLoc[13](loc9: u256)
52LdU256(0)
53Neq
54BrFalse(69)
B7:
55MoveLoc[11](loc7: I32)
56MoveLoc[9](loc5: u8)
57CastU32
58Call i32::from(u32): I32
59CopyLoc[13](loc9: u256)
60Call bit_math::most_significant_bit(u256): u8
61CastU32
62Call i32::from(u32): I32
63Call i32::sub(I32, I32): I32
64Call i32::sub(I32, I32): I32
65MoveLoc[15](loc11: I32)
66Call i32::mul(I32, I32): I32
67StLoc[5](loc1: I32)
68Branch(77)
B8:
69MoveLoc[11](loc7: I32)
70MoveLoc[9](loc5: u8)
71CastU32
72Call i32::from(u32): I32
73Call i32::sub(I32, I32): I32
74MoveLoc[15](loc11: I32)
75Call i32::mul(I32, I32): I32
76StLoc[5](loc1: I32)
B9:
77MoveLoc[5](loc1: I32)
78Call i32H::lib_to_mate(I32): I32
79MoveLoc[13](loc9: u256)
80LdU256(0)
81Neq
82StLoc[8](loc4: bool)
83StLoc[7](loc3: I32)
84Branch(146)
B10:
85CopyLoc[11](loc7: I32)
86LdU32(1)
87Call i32::from(u32): I32
88Call i32::add(I32, I32): I32
89Call position(I32): I32 * u8
90StLoc[10](loc6: u8)
91StLoc[17](loc13: I32)
92MoveLoc[0](Arg0: &Table<I32, u256>)
93MoveLoc[17](loc13: I32)
94Call i32H::lib_to_mate(I32): I32
95Call get_immutable_tick_word(&Table<I32, u256>, I32): u256
96LdU256(1)
97CopyLoc[10](loc6: u8)
98Shl
99LdU256(1)
100Sub
101Call constants::max_u256(): u256
102Xor
103BitAnd
104StLoc[14](loc10: u256)
105CopyLoc[14](loc10: u256)
106LdU256(0)
107Neq
108BrFalse(125)
B11:
109MoveLoc[11](loc7: I32)
110LdU32(1)
111Call i32::from(u32): I32
112Call i32::add(I32, I32): I32
113CopyLoc[14](loc10: u256)
114Call bit_math::least_significant_bit(u256): u8
115CastU32
116MoveLoc[10](loc6: u8)
117CastU32
118Sub
119Call i32::from(u32): I32
120Call i32::add(I32, I32): I32
121MoveLoc[15](loc11: I32)
122Call i32::mul(I32, I32): I32
123StLoc[6](loc2: I32)
124Branch(139)
B12:
125MoveLoc[11](loc7: I32)
126LdU32(1)
127Call i32::from(u32): I32
128Call i32::add(I32, I32): I32
129Call constants::max_u8(): u8
130CastU32
131MoveLoc[10](loc6: u8)
132CastU32
133Sub
134Call i32::from(u32): I32
135Call i32::add(I32, I32): I32
136MoveLoc[15](loc11: I32)
137Call i32::mul(I32, I32): I32
138StLoc[6](loc2: I32)
B13:
139MoveLoc[6](loc2: I32)
140Call i32H::lib_to_mate(I32): I32
141MoveLoc[14](loc10: u256)
142LdU256(0)
143Neq
144StLoc[8](loc4: bool)
145StLoc[7](loc3: I32)
B14:
146MoveLoc[7](loc3: I32)
147MoveLoc[8](loc4: bool)
148Ret
}
position(Arg0: I32): I32 * u8 {
B0:
0CopyLoc[0](Arg0: I32)
1LdU8(8)
2Call i32::shr(I32, u8): I32
3MoveLoc[0](Arg0: I32)
4LdU32(256)
5Call i32::from(u32): I32
6Call i32::mod(I32, I32): I32
7Call i32H::lib_to_mate(I32): I32
8Call cast_to_u8(I32): u8
9Ret
}
get_mutable_tick_word(Arg0: &mut Table<I32, u256>, Arg1: I32): &mut u256 {
L2: loc0: I32
B0:
0CopyLoc[0](Arg0: &mut Table<I32, u256>)
1CopyLoc[1](Arg1: I32)
2StLoc[2](loc0: I32)
3FreezeRef
4MoveLoc[2](loc0: I32)
5Call table::contains<I32, u256>(&Table<I32, u256>, I32): bool
6Not
7BrFalse(12)
B1:
8CopyLoc[0](Arg0: &mut Table<I32, u256>)
9CopyLoc[1](Arg1: I32)
10LdU256(0)
11Call table::add<I32, u256>(&mut Table<I32, u256>, I32, u256)
B2:
12MoveLoc[0](Arg0: &mut Table<I32, u256>)
13MoveLoc[1](Arg1: I32)
14Call table::borrow_mut<I32, u256>(&mut Table<I32, u256>, I32): &mut u256
15Ret
}
get_immutable_tick_word(Arg0: &Table<I32, u256>, Arg1: I32): u256 {
L2: loc0: u256
B0:
0CopyLoc[0](Arg0: &Table<I32, u256>)
1CopyLoc[1](Arg1: I32)
2Call table::contains<I32, u256>(&Table<I32, u256>, I32): bool
3Not
4BrFalse(10)
B1:
5MoveLoc[0](Arg0: &Table<I32, u256>)
6Pop
7LdU256(0)
8StLoc[2](loc0: u256)
9Branch(15)
B2:
10MoveLoc[0](Arg0: &Table<I32, u256>)
11MoveLoc[1](Arg1: I32)
12Call table::borrow<I32, u256>(&Table<I32, u256>, I32): &u256
13ReadRef
14StLoc[2](loc0: u256)
B3:
15MoveLoc[2](loc0: u256)
16Ret
}
}