math_u128
Module0x40fc…5bb2
- Move path
- 0xed6c…9f32::math_u128
- Functions
- 88 public, 0 entry
- Structs
- 0
- Friend modules
- None
math_u128
Bytecode354 lines
The on-chain disassembly. Offsets are bytecode positions within each function.
// Move bytecode v6
module ed6c6fe0732be937f4379bc0b471f0f6bfbe0e8741968009e0f01e6de3d59f32.math_u128 {
public max(Arg0: u128, Arg1: u128): u128 {
L2: loc0: u128
B0:
0CopyLoc[0](Arg0: u128)
1CopyLoc[1](Arg1: u128)
2Ge
3BrFalse(7)
B1:
4MoveLoc[0](Arg0: u128)
5StLoc[2](loc0: u128)
6Branch(9)
B2:
7MoveLoc[1](Arg1: u128)
8StLoc[2](loc0: u128)
B3:
9MoveLoc[2](loc0: u128)
10Ret
}
public min(Arg0: u128, Arg1: u128): u128 {
L2: loc0: u128
B0:
0CopyLoc[0](Arg0: u128)
1CopyLoc[1](Arg1: u128)
2Lt
3BrFalse(7)
B1:
4MoveLoc[0](Arg0: u128)
5StLoc[2](loc0: u128)
6Branch(9)
B2:
7MoveLoc[1](Arg1: u128)
8StLoc[2](loc0: u128)
B3:
9MoveLoc[2](loc0: u128)
10Ret
}
public average(Arg0: u128, Arg1: u128): u128 {
B0:
0CopyLoc[0](Arg0: u128)
1CopyLoc[1](Arg1: u128)
2BitAnd
3MoveLoc[0](Arg0: u128)
4MoveLoc[1](Arg1: u128)
5Xor
6LdU128(2)
7Div
8Add
9Ret
}
public ceil_div(Arg0: u128, Arg1: u128): u128 {
L2: loc0: u128
B0:
0CopyLoc[0](Arg0: u128)
1LdU128(0)
2Eq
3BrFalse(7)
B1:
4LdU128(0)
5StLoc[2](loc0: u128)
6Branch(15)
B2:
7MoveLoc[0](Arg0: u128)
8LdU128(1)
9Sub
10MoveLoc[1](Arg1: u128)
11Div
12LdU128(1)
13Add
14StLoc[2](loc0: u128)
B3:
15MoveLoc[2](loc0: u128)
16Ret
}
public exp(Arg0: u128, Arg1: u128): u128 {
L2: loc0: u128
B0:
0LdU128(1)
1StLoc[2](loc0: u128)
B1:
2CopyLoc[1](Arg1: u128)
3LdU128(0)
4Gt
5BrFalse(26)
B2:
6Branch(7)
B3:
7CopyLoc[1](Arg1: u128)
8LdU128(1)
9BitAnd
10LdU128(0)
11Gt
12BrFalse(17)
B4:
13MoveLoc[2](loc0: u128)
14CopyLoc[0](Arg0: u128)
15Mul
16StLoc[2](loc0: u128)
B5:
17MoveLoc[1](Arg1: u128)
18LdU8(1)
19Shr
20StLoc[1](Arg1: u128)
21CopyLoc[0](Arg0: u128)
22MoveLoc[0](Arg0: u128)
23Mul
24StLoc[0](Arg0: u128)
25Branch(2)
B6:
26MoveLoc[2](loc0: u128)
27Ret
}
public sqrt(Arg0: u128): u128 {
L1: loc0: u128
L2: loc1: u128
B0:
0CopyLoc[0](Arg0: u128)
1LdU128(0)
2Eq
3BrFalse(6)
B1:
4LdU128(0)
5Ret
B2:
6LdU128(1)
7StLoc[1](loc0: u128)
8CopyLoc[0](Arg0: u128)
9StLoc[2](loc1: u128)
10CopyLoc[2](loc1: u128)
11LdU8(64)
12Shr
13LdU128(0)
14Gt
15BrFalse(24)
B3:
16MoveLoc[2](loc1: u128)
17LdU8(64)
18Shr
19StLoc[2](loc1: u128)
20MoveLoc[1](loc0: u128)
21LdU8(32)
22Shl
23StLoc[1](loc0: u128)
B4:
24CopyLoc[2](loc1: u128)
25LdU8(32)
26Shr
27LdU128(0)
28Gt
29BrFalse(38)
B5:
30MoveLoc[2](loc1: u128)
31LdU8(32)
32Shr
33StLoc[2](loc1: u128)
34MoveLoc[1](loc0: u128)
35LdU8(16)
36Shl
37StLoc[1](loc0: u128)
B6:
38CopyLoc[2](loc1: u128)
39LdU8(16)
40Shr
41LdU128(0)
42Gt
43BrFalse(52)
B7:
44MoveLoc[2](loc1: u128)
45LdU8(16)
46Shr
47StLoc[2](loc1: u128)
48MoveLoc[1](loc0: u128)
49LdU8(8)
50Shl
51StLoc[1](loc0: u128)
B8:
52CopyLoc[2](loc1: u128)
53LdU8(8)
54Shr
55LdU128(0)
56Gt
57BrFalse(66)
B9:
58MoveLoc[2](loc1: u128)
59LdU8(8)
60Shr
61StLoc[2](loc1: u128)
62MoveLoc[1](loc0: u128)
63LdU8(4)
64Shl
65StLoc[1](loc0: u128)
B10:
66CopyLoc[2](loc1: u128)
67LdU8(4)
68Shr
69LdU128(0)
70Gt
71BrFalse(80)
B11:
72MoveLoc[2](loc1: u128)
73LdU8(4)
74Shr
75StLoc[2](loc1: u128)
76MoveLoc[1](loc0: u128)
77LdU8(2)
78Shl
79StLoc[1](loc0: u128)
B12:
80MoveLoc[2](loc1: u128)
81LdU8(2)
82Shr
83LdU128(0)
84Gt
85BrFalse(90)
B13:
86MoveLoc[1](loc0: u128)
87LdU8(1)
88Shl
89StLoc[1](loc0: u128)
B14:
90CopyLoc[1](loc0: u128)
91CopyLoc[0](Arg0: u128)
92MoveLoc[1](loc0: u128)
93Div
94Add
95LdU8(1)
96Shr
97StLoc[1](loc0: u128)
98CopyLoc[1](loc0: u128)
99CopyLoc[0](Arg0: u128)
100MoveLoc[1](loc0: u128)
101Div
102Add
103LdU8(1)
104Shr
105StLoc[1](loc0: u128)
106CopyLoc[1](loc0: u128)
107CopyLoc[0](Arg0: u128)
108MoveLoc[1](loc0: u128)
109Div
110Add
111LdU8(1)
112Shr
113StLoc[1](loc0: u128)
114CopyLoc[1](loc0: u128)
115CopyLoc[0](Arg0: u128)
116MoveLoc[1](loc0: u128)
117Div
118Add
119LdU8(1)
120Shr
121StLoc[1](loc0: u128)
122CopyLoc[1](loc0: u128)
123CopyLoc[0](Arg0: u128)
124MoveLoc[1](loc0: u128)
125Div
126Add
127LdU8(1)
128Shr
129StLoc[1](loc0: u128)
130CopyLoc[1](loc0: u128)
131CopyLoc[0](Arg0: u128)
132MoveLoc[1](loc0: u128)
133Div
134Add
135LdU8(1)
136Shr
137StLoc[1](loc0: u128)
138CopyLoc[1](loc0: u128)
139CopyLoc[0](Arg0: u128)
140MoveLoc[1](loc0: u128)
141Div
142Add
143LdU8(1)
144Shr
145StLoc[1](loc0: u128)
146CopyLoc[1](loc0: u128)
147MoveLoc[0](Arg0: u128)
148MoveLoc[1](loc0: u128)
149Div
150Call min(u128, u128): u128
151Ret
}
public sqrt_rounding(Arg0: u128, Arg1: u8): u128 {
L2: loc0: bool
L3: loc1: u128
B0:
0CopyLoc[0](Arg0: u128)
1Call sqrt(u128): u128
2StLoc[3](loc1: u128)
3MoveLoc[1](Arg1: u8)
4LdConst[0](u8: 0)
5Eq
6BrFalse(14)
B1:
7CopyLoc[3](loc1: u128)
8CopyLoc[3](loc1: u128)
9Mul
10MoveLoc[0](Arg0: u128)
11Lt
12StLoc[2](loc0: bool)
13Branch(16)
B2:
14LdFalse
15StLoc[2](loc0: bool)
B3:
16MoveLoc[2](loc0: bool)
17BrFalse(22)
B4:
18MoveLoc[3](loc1: u128)
19LdU128(1)
20Add
21StLoc[3](loc1: u128)
B5:
22MoveLoc[3](loc1: u128)
23Ret
}
public quadratic(Arg0: u128, Arg1: u128, Arg2: u128, Arg3: u128): u128 {
B0:
0CopyLoc[0](Arg0: u128)
1LdU128(2)
2Call exp(u128, u128): u128
3LdConst[1](u128: 4294..)
4Div
5MoveLoc[1](Arg1: u128)
6Mul
7LdConst[1](u128: 4294..)
8Div
9MoveLoc[2](Arg2: u128)
10MoveLoc[0](Arg0: u128)
11Mul
12LdConst[1](u128: 4294..)
13Div
14Add
15MoveLoc[3](Arg3: u128)
16Add
17Ret
}
Constants [
0 => u8: 0
1 => u128: 4294967296
]
}