mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			229 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			229 lines
		
	
	
		
			6.5 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:418   */
 | 
						|
    tag_19:
 | 
						|
        /* "#utility.yul":261:270   */
 | 
						|
      dup1
 | 
						|
      dup3
 | 
						|
      add
 | 
						|
        /* "#utility.yul":282:292   */
 | 
						|
      dup1
 | 
						|
      dup3
 | 
						|
      gt
 | 
						|
        /* "#utility.yul":279:412   */
 | 
						|
      iszero
 | 
						|
      tag_26
 | 
						|
      jumpi
 | 
						|
        /* "#utility.yul":334:344   */
 | 
						|
      0x4e487b71
 | 
						|
        /* "#utility.yul":329:332   */
 | 
						|
      0xe0
 | 
						|
        /* "#utility.yul":325:345   */
 | 
						|
      shl
 | 
						|
        /* "#utility.yul":322:323   */
 | 
						|
      0x00
 | 
						|
        /* "#utility.yul":315:346   */
 | 
						|
      mstore
 | 
						|
        /* "#utility.yul":369:373   */
 | 
						|
      0x11
 | 
						|
        /* "#utility.yul":366:367   */
 | 
						|
      0x04
 | 
						|
        /* "#utility.yul":359:374   */
 | 
						|
      mstore
 | 
						|
        /* "#utility.yul":397:401   */
 | 
						|
      0x24
 | 
						|
        /* "#utility.yul":394:395   */
 | 
						|
      0x00
 | 
						|
        /* "#utility.yul":387:402   */
 | 
						|
      revert
 | 
						|
        /* "#utility.yul":279:412   */
 | 
						|
    tag_26:
 | 
						|
        /* "#utility.yul":196:418   */
 | 
						|
      swap3
 | 
						|
      swap2
 | 
						|
      pop
 | 
						|
      pop
 | 
						|
      jump	// out
 | 
						|
        /* "#utility.yul":423:550   */
 | 
						|
    tag_22:
 | 
						|
        /* "#utility.yul":484:494   */
 | 
						|
      0x4e487b71
 | 
						|
        /* "#utility.yul":479:482   */
 | 
						|
      0xe0
 | 
						|
        /* "#utility.yul":475:495   */
 | 
						|
      shl
 | 
						|
        /* "#utility.yul":472:473   */
 | 
						|
      0x00
 | 
						|
        /* "#utility.yul":465:496   */
 | 
						|
      mstore
 | 
						|
        /* "#utility.yul":515:519   */
 | 
						|
      0x51
 | 
						|
        /* "#utility.yul":512:513   */
 | 
						|
      0x04
 | 
						|
        /* "#utility.yul":505:520   */
 | 
						|
      mstore
 | 
						|
        /* "#utility.yul":539:543   */
 | 
						|
      0x24
 | 
						|
        /* "#utility.yul":536:537   */
 | 
						|
      0x00
 | 
						|
        /* "#utility.yul":529:544   */
 | 
						|
      revert
 | 
						|
 | 
						|
    auxdata: <AUXDATA REMOVED>
 | 
						|
}
 |