bit_math
Module0xbe89…7732
- Move path
- 0x3492…c267::bit_math
- Functions
- 22 public, 0 entry
- Structs
- 0
- Friend modules
- None
bit_math
Bytecode295 lines
The on-chain disassembly. Offsets are bytecode positions within each function.
// Move bytecode v6
module 3492c874c1e3b3e2984e8c41b589e642d4d0a5d6459e5a9cfc2d52fd7c89c267.bit_math {
use 3492c874c1e3b3e2984e8c41b589e642d4d0a5d6459e5a9cfc2d52fd7c89c267::constants;
public least_significant_bit(Arg0: u256): u8 {
L1: loc0: u8
B0:
0CopyLoc[0](Arg0: u256)
1LdU256(0)
2Gt
3BrFalse(5)
B1:
4Branch(7)
B2:
5LdU64(0)
6Abort
B3:
7LdU8(255)
8StLoc[1](loc0: u8)
9CopyLoc[0](Arg0: u256)
10Call constants::max_u128(): u128
11CastU256
12BitAnd
13LdU256(0)
14Gt
15BrFalse(21)
B4:
16MoveLoc[1](loc0: u8)
17LdU8(128)
18Sub
19StLoc[1](loc0: u8)
20Branch(25)
B5:
21MoveLoc[0](Arg0: u256)
22LdU8(128)
23Shr
24StLoc[0](Arg0: u256)
B6:
25CopyLoc[0](Arg0: u256)
26Call constants::max_u64(): u64
27CastU256
28BitAnd
29LdU256(0)
30Gt
31BrFalse(37)
B7:
32MoveLoc[1](loc0: u8)
33LdU8(64)
34Sub
35StLoc[1](loc0: u8)
36Branch(41)
B8:
37MoveLoc[0](Arg0: u256)
38LdU8(64)
39Shr
40StLoc[0](Arg0: u256)
B9:
41CopyLoc[0](Arg0: u256)
42Call constants::max_u32(): u32
43CastU256
44BitAnd
45LdU256(0)
46Gt
47BrFalse(53)
B10:
48MoveLoc[1](loc0: u8)
49LdU8(32)
50Sub
51StLoc[1](loc0: u8)
52Branch(57)
B11:
53MoveLoc[0](Arg0: u256)
54LdU8(32)
55Shr
56StLoc[0](Arg0: u256)
B12:
57CopyLoc[0](Arg0: u256)
58Call constants::max_u16(): u16
59CastU256
60BitAnd
61LdU256(0)
62Gt
63BrFalse(69)
B13:
64MoveLoc[1](loc0: u8)
65LdU8(16)
66Sub
67StLoc[1](loc0: u8)
68Branch(73)
B14:
69MoveLoc[0](Arg0: u256)
70LdU8(16)
71Shr
72StLoc[0](Arg0: u256)
B15:
73CopyLoc[0](Arg0: u256)
74Call constants::max_u8(): u8
75CastU256
76BitAnd
77LdU256(0)
78Gt
79BrFalse(85)
B16:
80MoveLoc[1](loc0: u8)
81LdU8(8)
82Sub
83StLoc[1](loc0: u8)
84Branch(89)
B17:
85MoveLoc[0](Arg0: u256)
86LdU8(8)
87Shr
88StLoc[0](Arg0: u256)
B18:
89CopyLoc[0](Arg0: u256)
90LdU256(15)
91BitAnd
92LdU256(0)
93Gt
94BrFalse(100)
B19:
95MoveLoc[1](loc0: u8)
96LdU8(4)
97Sub
98StLoc[1](loc0: u8)
99Branch(104)
B20:
100MoveLoc[0](Arg0: u256)
101LdU8(4)
102Shr
103StLoc[0](Arg0: u256)
B21:
104CopyLoc[0](Arg0: u256)
105LdU256(3)
106BitAnd
107LdU256(0)
108Gt
109BrFalse(115)
B22:
110MoveLoc[1](loc0: u8)
111LdU8(2)
112Sub
113StLoc[1](loc0: u8)
114Branch(119)
B23:
115MoveLoc[0](Arg0: u256)
116LdU8(2)
117Shr
118StLoc[0](Arg0: u256)
B24:
119MoveLoc[0](Arg0: u256)
120LdU256(1)
121BitAnd
122LdU256(0)
123Gt
124BrFalse(129)
B25:
125MoveLoc[1](loc0: u8)
126LdU8(1)
127Sub
128StLoc[1](loc0: u8)
B26:
129MoveLoc[1](loc0: u8)
130Ret
}
public most_significant_bit(Arg0: u256): u8 {
L1: loc0: u8
B0:
0CopyLoc[0](Arg0: u256)
1LdU256(0)
2Gt
3BrFalse(5)
B1:
4Branch(7)
B2:
5LdU64(0)
6Abort
B3:
7LdU8(0)
8StLoc[1](loc0: u8)
9CopyLoc[0](Arg0: u256)
10LdU256(340282366920938463463374607431768211456)
11Ge
12BrFalse(21)
B4:
13MoveLoc[0](Arg0: u256)
14LdU8(128)
15Shr
16StLoc[0](Arg0: u256)
17MoveLoc[1](loc0: u8)
18LdU8(128)
19Add
20StLoc[1](loc0: u8)
B5:
21CopyLoc[0](Arg0: u256)
22LdU256(18446744073709551616)
23Ge
24BrFalse(33)
B6:
25MoveLoc[0](Arg0: u256)
26LdU8(64)
27Shr
28StLoc[0](Arg0: u256)
29MoveLoc[1](loc0: u8)
30LdU8(64)
31Add
32StLoc[1](loc0: u8)
B7:
33CopyLoc[0](Arg0: u256)
34LdU256(4294967296)
35Ge
36BrFalse(45)
B8:
37MoveLoc[0](Arg0: u256)
38LdU8(32)
39Shr
40StLoc[0](Arg0: u256)
41MoveLoc[1](loc0: u8)
42LdU8(32)
43Add
44StLoc[1](loc0: u8)
B9:
45CopyLoc[0](Arg0: u256)
46LdU256(65536)
47Ge
48BrFalse(57)
B10:
49MoveLoc[0](Arg0: u256)
50LdU8(16)
51Shr
52StLoc[0](Arg0: u256)
53MoveLoc[1](loc0: u8)
54LdU8(16)
55Add
56StLoc[1](loc0: u8)
B11:
57CopyLoc[0](Arg0: u256)
58LdU256(256)
59Ge
60BrFalse(69)
B12:
61MoveLoc[0](Arg0: u256)
62LdU8(8)
63Shr
64StLoc[0](Arg0: u256)
65MoveLoc[1](loc0: u8)
66LdU8(8)
67Add
68StLoc[1](loc0: u8)
B13:
69CopyLoc[0](Arg0: u256)
70LdU256(16)
71Ge
72BrFalse(81)
B14:
73MoveLoc[0](Arg0: u256)
74LdU8(4)
75Shr
76StLoc[0](Arg0: u256)
77MoveLoc[1](loc0: u8)
78LdU8(4)
79Add
80StLoc[1](loc0: u8)
B15:
81CopyLoc[0](Arg0: u256)
82LdU256(4)
83Ge
84BrFalse(93)
B16:
85MoveLoc[0](Arg0: u256)
86LdU8(2)
87Shr
88StLoc[0](Arg0: u256)
89MoveLoc[1](loc0: u8)
90LdU8(2)
91Add
92StLoc[1](loc0: u8)
B17:
93MoveLoc[0](Arg0: u256)
94LdU256(2)
95Ge
96BrFalse(101)
B18:
97MoveLoc[1](loc0: u8)
98LdU8(1)
99Add
100StLoc[1](loc0: u8)
B19:
101MoveLoc[1](loc0: u8)
102Ret
}
}