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