mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			226 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			226 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
 | |
| ======= optimizer_inliner_dynamic_reference/input.sol:C =======
 | |
| EVM assembly:
 | |
|     /* "optimizer_inliner_dynamic_reference/input.sol":60:367  contract C {... */
 | |
|   mstore(0x40, 0x80)
 | |
|   callvalue
 | |
|   dup1
 | |
|   iszero
 | |
|   tag_1
 | |
|   jumpi
 | |
|   0x00
 | |
|   dup1
 | |
|   revert
 | |
| tag_1:
 | |
|   pop
 | |
|   dataSize(sub_0)
 | |
|   dup1
 | |
|   dataOffset(sub_0)
 | |
|   0x00
 | |
|   codecopy
 | |
|   0x00
 | |
|   return
 | |
| stop
 | |
| 
 | |
| sub_0: assembly {
 | |
|         /* "optimizer_inliner_dynamic_reference/input.sol":60:367  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
 | |
|       dup1
 | |
|       0xe2179b8e
 | |
|       eq
 | |
|       tag_5
 | |
|       jumpi
 | |
|     tag_2:
 | |
|       0x00
 | |
|       dup1
 | |
|       revert
 | |
|         /* "optimizer_inliner_dynamic_reference/input.sol":160:215  function a() public pure returns (uint) { return f(); } */
 | |
|     tag_3:
 | |
|         /* "optimizer_inliner_dynamic_reference/input.sol":361:362  6 */
 | |
|       0x06
 | |
|         /* "optimizer_inliner_dynamic_reference/input.sol":160:215  function a() public pure returns (uint) { return f(); } */
 | |
|     tag_6:
 | |
|       mload(0x40)
 | |
|         /* "#utility.yul":160:185   */
 | |
|       swap1
 | |
|       dup2
 | |
|       mstore
 | |
|         /* "#utility.yul":148:150   */
 | |
|       0x20
 | |
|         /* "#utility.yul":133:151   */
 | |
|       add
 | |
|         /* "optimizer_inliner_dynamic_reference/input.sol":160:215  function a() public pure returns (uint) { return f(); } */
 | |
|       mload(0x40)
 | |
|       dup1
 | |
|       swap2
 | |
|       sub
 | |
|       swap1
 | |
|       return
 | |
|         /* "optimizer_inliner_dynamic_reference/input.sol":246:305  function h() public view returns (uint) { return x() + 1; } */
 | |
|     tag_4:
 | |
|       tag_6
 | |
|       tag_11
 | |
|       jump	// in
 | |
|         /* "optimizer_inliner_dynamic_reference/input.sol":125:155  function g() public { x = f; } */
 | |
|     tag_5:
 | |
|         /* "optimizer_inliner_dynamic_reference/input.sol":147:148  x */
 | |
|       0x00
 | |
|         /* "optimizer_inliner_dynamic_reference/input.sol":147:152  x = f */
 | |
|       dup1
 | |
|       sload
 | |
|       not(0xffffffffffffffff)
 | |
|       and
 | |
|         /* "optimizer_inliner_dynamic_reference/input.sol":151:152  f */
 | |
|       tag_17
 | |
|         /* "optimizer_inliner_dynamic_reference/input.sol":147:152  x = f */
 | |
|       or
 | |
|       swap1
 | |
|       sstore
 | |
|         /* "optimizer_inliner_dynamic_reference/input.sol":125:155  function g() public { x = f; } */
 | |
|       stop
 | |
|         /* "optimizer_inliner_dynamic_reference/input.sol":209:212  f() */
 | |
|     tag_16:
 | |
|         /* "optimizer_inliner_dynamic_reference/input.sol":202:212  return f() */
 | |
|       swap1
 | |
|       pop
 | |
|         /* "optimizer_inliner_dynamic_reference/input.sol":160:215  function a() public pure returns (uint) { return f(); } */
 | |
|       swap1
 | |
|       jump	// out
 | |
|         /* "optimizer_inliner_dynamic_reference/input.sol":246:305  function h() public view returns (uint) { return x() + 1; } */
 | |
|     tag_11:
 | |
|         /* "optimizer_inliner_dynamic_reference/input.sol":280:284  uint */
 | |
|       0x00
 | |
|         /* "optimizer_inliner_dynamic_reference/input.sol":295:296  x */
 | |
|       dup1
 | |
|       sload
 | |
|         /* "optimizer_inliner_dynamic_reference/input.sol":295:298  x() */
 | |
|       tag_19
 | |
|       swap1
 | |
|         /* "optimizer_inliner_dynamic_reference/input.sol":295:296  x */
 | |
|       dup1
 | |
|       iszero
 | |
|       tag_20
 | |
|       mul
 | |
|       or
 | |
|         /* "optimizer_inliner_dynamic_reference/input.sol":295:298  x() */
 | |
|       0xffffffff
 | |
|       and
 | |
|       jump	// in
 | |
|     tag_19:
 | |
|         /* "optimizer_inliner_dynamic_reference/input.sol":295:302  x() + 1 */
 | |
|       tag_16
 | |
|       swap1
 | |
|         /* "optimizer_inliner_dynamic_reference/input.sol":301:302  1 */
 | |
|       0x01
 | |
|         /* "optimizer_inliner_dynamic_reference/input.sol":295:302  x() + 1 */
 | |
|       tag_22
 | |
|       jump	// in
 | |
|         /* "optimizer_inliner_dynamic_reference/input.sol":310:365  function f() internal pure returns (uint) { return 6; } */
 | |
|     tag_17:
 | |
|         /* "optimizer_inliner_dynamic_reference/input.sol":361:362  6 */
 | |
|       0x06
 | |
|       swap1
 | |
|         /* "optimizer_inliner_dynamic_reference/input.sol":310:365  function f() internal pure returns (uint) { return 6; } */
 | |
|       jump	// out
 | |
|     tag_20:
 | |
|       tag_25
 | |
|       tag_26
 | |
|       jump	// in
 | |
|     tag_25:
 | |
|       jump	// out
 | |
|         /* "#utility.yul":196:421   */
 | |
|     tag_22:
 | |
|         /* "#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:256   */
 | |
|       iszero
 | |
|       tag_30
 | |
|       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:256   */
 | |
|     tag_30:
 | |
|       pop
 | |
|         /* "#utility.yul":406:415   */
 | |
|       add
 | |
|       swap1
 | |
|         /* "#utility.yul":244:421   */
 | |
|       jump	// out
 | |
|         /* "#utility.yul":426:553   */
 | |
|     tag_26:
 | |
|         /* "#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>
 | |
| }
 |