mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			231 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			231 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
 | |
| ======= 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
 | |
|     /* "optimizer_inliner_dynamic_reference_constructor/input.sol":304:359  function f() internal pure returns (uint) { return 6; } */
 | |
|   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:
 | |
|         /* "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(); } */
 | |
|     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
 | |
|         /* "optimizer_inliner_dynamic_reference_constructor/input.sol":304:359  function f() internal pure returns (uint) { return 6; } */
 | |
|       jump	// out
 | |
|     tag_17:
 | |
|       tag_21
 | |
|       tag_22
 | |
|       jump	// in
 | |
|     tag_21:
 | |
|       jump	// out
 | |
|         /* "#utility.yul":196:421   */
 | |
|     tag_19:
 | |
|         /* "#utility.yul":236:239   */
 | |
|       0x00
 | |
|         /* "#utility.yul":267:268   */
 | |
|       dup3
 | |
|         /* "#utility.yul":263:269   */
 | |
|       not
 | |
|         /* "#utility.yul":260:261   */
 | |
|       dup3
 | |
|         /* "#utility.yul":257:270   */
 | |
|       gt
 | |
|         /* "#utility.yul":254:390   */
 | |
|       iszero
 | |
|       tag_26
 | |
|       jumpi
 | |
|         /* "#utility.yul":312:322   */
 | |
|       0x4e487b71
 | |
|         /* "#utility.yul":307:310   */
 | |
|       0xe0
 | |
|         /* "#utility.yul":303:323   */
 | |
|       shl
 | |
|         /* "#utility.yul":300:301   */
 | |
|       0x00
 | |
|         /* "#utility.yul":293:324   */
 | |
|       mstore
 | |
|         /* "#utility.yul":347:351   */
 | |
|       0x11
 | |
|         /* "#utility.yul":344:345   */
 | |
|       0x04
 | |
|         /* "#utility.yul":337:352   */
 | |
|       mstore
 | |
|         /* "#utility.yul":375:379   */
 | |
|       0x24
 | |
|         /* "#utility.yul":372:373   */
 | |
|       0x00
 | |
|         /* "#utility.yul":365:380   */
 | |
|       revert
 | |
|         /* "#utility.yul":254:390   */
 | |
|     tag_26:
 | |
|       pop
 | |
|         /* "#utility.yul":406:415   */
 | |
|       add
 | |
|       swap1
 | |
|         /* "#utility.yul":196:421   */
 | |
|       jump	// out
 | |
|         /* "#utility.yul":426:553   */
 | |
|     tag_22:
 | |
|         /* "#utility.yul":487:497   */
 | |
|       0x4e487b71
 | |
|         /* "#utility.yul":482:485   */
 | |
|       0xe0
 | |
|         /* "#utility.yul":478:498   */
 | |
|       shl
 | |
|         /* "#utility.yul":475:476   */
 | |
|       0x00
 | |
|         /* "#utility.yul":468:499   */
 | |
|       mstore
 | |
|         /* "#utility.yul":518:522   */
 | |
|       0x51
 | |
|         /* "#utility.yul":515:516   */
 | |
|       0x04
 | |
|         /* "#utility.yul":508:523   */
 | |
|       mstore
 | |
|         /* "#utility.yul":542:546   */
 | |
|       0x24
 | |
|         /* "#utility.yul":539:540   */
 | |
|       0x00
 | |
|         /* "#utility.yul":532:547   */
 | |
|       revert
 | |
| 
 | |
|     auxdata: <AUXDATA REMOVED>
 | |
| }
 |