2021-01-14 12:02:14 +00:00
|
|
|
|
|
|
|
======= optimizer_inliner_dynamic_reference_constructor/input.sol:C =======
|
|
|
|
EVM assembly:
|
|
|
|
/* "optimizer_inliner_dynamic_reference_constructor/input.sol":60:361 contract C {... */
|
|
|
|
mstore(0x40, 0x80)
|
|
|
|
/* "optimizer_inliner_dynamic_reference_constructor/input.sol":77:101 constructor() { x = f; } */
|
|
|
|
callvalue
|
|
|
|
dup1
|
|
|
|
iszero
|
|
|
|
tag_1
|
|
|
|
jumpi
|
|
|
|
0x00
|
|
|
|
dup1
|
|
|
|
revert
|
|
|
|
tag_1:
|
|
|
|
pop
|
|
|
|
/* "optimizer_inliner_dynamic_reference_constructor/input.sol":93:94 x */
|
|
|
|
0x00
|
|
|
|
/* "optimizer_inliner_dynamic_reference_constructor/input.sol":93:98 x = f */
|
|
|
|
dup1
|
|
|
|
sload
|
|
|
|
not(sub(shl(0x40, 0x01), 0x01))
|
|
|
|
and
|
|
|
|
/* "optimizer_inliner_dynamic_reference_constructor/input.sol":97:98 f */
|
|
|
|
or(tag_0_12, shl(0x20, tag_4))
|
|
|
|
sub(shl(0x40, 0x01), 0x01)
|
|
|
|
/* "optimizer_inliner_dynamic_reference_constructor/input.sol":93:98 x = f */
|
|
|
|
and
|
|
|
|
or
|
|
|
|
swap1
|
|
|
|
sstore
|
|
|
|
/* "optimizer_inliner_dynamic_reference_constructor/input.sol":60:361 contract C {... */
|
|
|
|
jump(tag_5)
|
|
|
|
/* "optimizer_inliner_dynamic_reference_constructor/input.sol":304:359 function f() internal pure returns (uint) { return 6; } */
|
|
|
|
tag_4:
|
|
|
|
/* "optimizer_inliner_dynamic_reference_constructor/input.sol":355:356 6 */
|
|
|
|
0x06
|
|
|
|
swap1
|
2021-03-15 18:29:41 +00:00
|
|
|
/* "optimizer_inliner_dynamic_reference_constructor/input.sol":304:359 function f() internal pure returns (uint) { return 6; } */
|
2021-01-14 12:02:14 +00:00
|
|
|
jump // out
|
|
|
|
/* "optimizer_inliner_dynamic_reference_constructor/input.sol":60:361 contract C {... */
|
|
|
|
tag_5:
|
|
|
|
dataSize(sub_0)
|
|
|
|
dup1
|
|
|
|
dataOffset(sub_0)
|
|
|
|
0x00
|
|
|
|
codecopy
|
|
|
|
0x00
|
|
|
|
return
|
|
|
|
stop
|
|
|
|
|
|
|
|
sub_0: assembly {
|
|
|
|
/* "optimizer_inliner_dynamic_reference_constructor/input.sol":60:361 contract C {... */
|
|
|
|
mstore(0x40, 0x80)
|
|
|
|
callvalue
|
|
|
|
dup1
|
|
|
|
iszero
|
|
|
|
tag_1
|
|
|
|
jumpi
|
|
|
|
0x00
|
|
|
|
dup1
|
|
|
|
revert
|
|
|
|
tag_1:
|
|
|
|
pop
|
|
|
|
jumpi(tag_2, lt(calldatasize, 0x04))
|
|
|
|
shr(0xe0, calldataload(0x00))
|
|
|
|
dup1
|
|
|
|
0x0dbe671f
|
|
|
|
eq
|
|
|
|
tag_3
|
|
|
|
jumpi
|
|
|
|
dup1
|
|
|
|
0xb8c9d365
|
|
|
|
eq
|
|
|
|
tag_4
|
|
|
|
jumpi
|
|
|
|
tag_2:
|
|
|
|
0x00
|
|
|
|
dup1
|
|
|
|
revert
|
|
|
|
/* "optimizer_inliner_dynamic_reference_constructor/input.sol":154:209 function a() public pure returns (uint) { return f(); } */
|
|
|
|
tag_3:
|
2021-03-15 18:29:41 +00:00
|
|
|
/* "optimizer_inliner_dynamic_reference_constructor/input.sol":355:356 6 */
|
|
|
|
0x06
|
|
|
|
/* "optimizer_inliner_dynamic_reference_constructor/input.sol":154:209 function a() public pure returns (uint) { return f(); } */
|
2021-01-14 12:02:14 +00:00
|
|
|
tag_5:
|
|
|
|
mload(0x40)
|
|
|
|
/* "#utility.yul":160:185 */
|
|
|
|
swap1
|
|
|
|
dup2
|
|
|
|
mstore
|
|
|
|
/* "#utility.yul":148:150 */
|
|
|
|
0x20
|
|
|
|
/* "#utility.yul":133:151 */
|
|
|
|
add
|
|
|
|
/* "optimizer_inliner_dynamic_reference_constructor/input.sol":154:209 function a() public pure returns (uint) { return f(); } */
|
|
|
|
mload(0x40)
|
|
|
|
dup1
|
|
|
|
swap2
|
|
|
|
sub
|
|
|
|
swap1
|
|
|
|
return
|
|
|
|
/* "optimizer_inliner_dynamic_reference_constructor/input.sol":240:299 function h() public view returns (uint) { return x() + 1; } */
|
|
|
|
tag_4:
|
|
|
|
tag_5
|
|
|
|
tag_10
|
|
|
|
jump // in
|
|
|
|
/* "optimizer_inliner_dynamic_reference_constructor/input.sol":203:206 f() */
|
|
|
|
tag_14:
|
|
|
|
/* "optimizer_inliner_dynamic_reference_constructor/input.sol":196:206 return f() */
|
|
|
|
swap1
|
|
|
|
pop
|
|
|
|
/* "optimizer_inliner_dynamic_reference_constructor/input.sol":154:209 function a() public pure returns (uint) { return f(); } */
|
|
|
|
swap1
|
|
|
|
jump // out
|
|
|
|
/* "optimizer_inliner_dynamic_reference_constructor/input.sol":240:299 function h() public view returns (uint) { return x() + 1; } */
|
|
|
|
tag_10:
|
|
|
|
/* "optimizer_inliner_dynamic_reference_constructor/input.sol":274:278 uint */
|
|
|
|
0x00
|
|
|
|
/* "optimizer_inliner_dynamic_reference_constructor/input.sol":289:290 x */
|
|
|
|
dup1
|
|
|
|
sload
|
|
|
|
/* "optimizer_inliner_dynamic_reference_constructor/input.sol":289:292 x() */
|
|
|
|
tag_16
|
|
|
|
swap1
|
|
|
|
/* "optimizer_inliner_dynamic_reference_constructor/input.sol":289:290 x */
|
|
|
|
dup1
|
|
|
|
iszero
|
|
|
|
tag_17
|
|
|
|
mul
|
|
|
|
or
|
|
|
|
/* "optimizer_inliner_dynamic_reference_constructor/input.sol":289:292 x() */
|
|
|
|
0xffffffff
|
|
|
|
and
|
|
|
|
jump // in
|
|
|
|
tag_16:
|
|
|
|
/* "optimizer_inliner_dynamic_reference_constructor/input.sol":289:296 x() + 1 */
|
|
|
|
tag_14
|
|
|
|
swap1
|
|
|
|
/* "optimizer_inliner_dynamic_reference_constructor/input.sol":295:296 1 */
|
|
|
|
0x01
|
|
|
|
/* "optimizer_inliner_dynamic_reference_constructor/input.sol":289:296 x() + 1 */
|
|
|
|
tag_19
|
|
|
|
jump // in
|
|
|
|
/* "optimizer_inliner_dynamic_reference_constructor/input.sol":304:359 function f() internal pure returns (uint) { return 6; } */
|
|
|
|
tag_12:
|
|
|
|
/* "optimizer_inliner_dynamic_reference_constructor/input.sol":355:356 6 */
|
|
|
|
0x06
|
|
|
|
swap1
|
2021-03-15 18:29:41 +00:00
|
|
|
/* "optimizer_inliner_dynamic_reference_constructor/input.sol":304:359 function f() internal pure returns (uint) { return 6; } */
|
2021-01-14 12:02:14 +00:00
|
|
|
jump // out
|
|
|
|
tag_17:
|
|
|
|
mstore(0x00, shl(0xe0, 0x4e487b71))
|
|
|
|
mstore(0x04, 0x51)
|
|
|
|
revert(0x00, 0x24)
|
|
|
|
/* "#utility.yul":196:425 */
|
|
|
|
tag_19:
|
2021-02-04 20:52:07 +00:00
|
|
|
/* "#utility.yul":236:239 */
|
2021-01-14 12:02:14 +00:00
|
|
|
0x00
|
|
|
|
/* "#utility.yul":267:268 */
|
|
|
|
dup3
|
|
|
|
/* "#utility.yul":263:269 */
|
|
|
|
not
|
|
|
|
/* "#utility.yul":260:261 */
|
|
|
|
dup3
|
|
|
|
/* "#utility.yul":257:270 */
|
|
|
|
gt
|
|
|
|
/* "#utility.yul":254:256 */
|
|
|
|
iszero
|
|
|
|
tag_24
|
|
|
|
jumpi
|
|
|
|
shl(0xe0, 0x4e487b71)
|
|
|
|
/* "#utility.yul":293:326 */
|
|
|
|
dup2
|
|
|
|
mstore
|
|
|
|
/* "#utility.yul":349:353 */
|
|
|
|
0x11
|
|
|
|
/* "#utility.yul":346:347 */
|
|
|
|
0x04
|
|
|
|
/* "#utility.yul":339:354 */
|
|
|
|
mstore
|
|
|
|
/* "#utility.yul":379:383 */
|
|
|
|
0x24
|
|
|
|
/* "#utility.yul":300:303 */
|
|
|
|
dup2
|
|
|
|
/* "#utility.yul":367:384 */
|
|
|
|
revert
|
|
|
|
/* "#utility.yul":254:256 */
|
|
|
|
tag_24:
|
|
|
|
pop
|
|
|
|
/* "#utility.yul":410:419 */
|
|
|
|
add
|
|
|
|
swap1
|
|
|
|
/* "#utility.yul":244:425 */
|
|
|
|
jump // out
|
|
|
|
|
|
|
|
auxdata: <AUXDATA REMOVED>
|
|
|
|
}
|