mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			193 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			193 lines
		
	
	
		
			5.1 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:
 | |
|       mstore(0x00, shl(0xe0, 0x4e487b71))
 | |
|       mstore(0x04, 0x51)
 | |
|       revert(0x00, 0x24)
 | |
|         /* "#utility.yul":196:425   */
 | |
|     tag_22:
 | |
|       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_28
 | |
|       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_28:
 | |
|       pop
 | |
|         /* "#utility.yul":410:419   */
 | |
|       add
 | |
|       swap1
 | |
|         /* "#utility.yul":244:425   */
 | |
|       jump	// out
 | |
| 
 | |
|     auxdata: <AUXDATA REMOVED>
 | |
| }
 |