@ -162,136 +162,136 @@ const std::map<std::string, Instruction> dev::eth::c_instructions =
} ;
static const std : : map < Instruction , InstructionInfo > c_instructionInfo =
{ // Add, Args, Ret, SideEffects
{ Instruction : : STOP , { " STOP " , 0 , 0 , 0 , true } } ,
{ Instruction : : ADD , { " ADD " , 0 , 2 , 1 , false } } ,
{ Instruction : : SUB , { " SUB " , 0 , 2 , 1 , false } } ,
{ Instruction : : MUL , { " MUL " , 0 , 2 , 1 , false } } ,
{ Instruction : : DIV , { " DIV " , 0 , 2 , 1 , false } } ,
{ Instruction : : SDIV , { " SDIV " , 0 , 2 , 1 , false } } ,
{ Instruction : : MOD , { " MOD " , 0 , 2 , 1 , false } } ,
{ Instruction : : SMOD , { " SMOD " , 0 , 2 , 1 , false } } ,
{ Instruction : : EXP , { " EXP " , 0 , 2 , 1 , false } } ,
{ Instruction : : NOT , { " NOT " , 0 , 1 , 1 , false } } ,
{ Instruction : : LT , { " LT " , 0 , 2 , 1 , false } } ,
{ Instruction : : GT , { " GT " , 0 , 2 , 1 , false } } ,
{ Instruction : : SLT , { " SLT " , 0 , 2 , 1 , false } } ,
{ Instruction : : SGT , { " SGT " , 0 , 2 , 1 , false } } ,
{ Instruction : : EQ , { " EQ " , 0 , 2 , 1 , false } } ,
{ Instruction : : ISZERO , { " ISZERO " , 0 , 1 , 1 , false } } ,
{ Instruction : : AND , { " AND " , 0 , 2 , 1 , false } } ,
{ Instruction : : OR , { " OR " , 0 , 2 , 1 , false } } ,
{ Instruction : : XOR , { " XOR " , 0 , 2 , 1 , false } } ,
{ Instruction : : BYTE , { " BYTE " , 0 , 2 , 1 , false } } ,
{ Instruction : : ADDMOD , { " ADDMOD " , 0 , 3 , 1 , false } } ,
{ Instruction : : MULMOD , { " MULMOD " , 0 , 3 , 1 , false } } ,
{ Instruction : : SIGNEXTEND , { " SIGNEXTEND " , 0 , 2 , 1 , false } } ,
{ Instruction : : SHA3 , { " SHA3 " , 0 , 2 , 1 , false } } ,
{ Instruction : : ADDRESS , { " ADDRESS " , 0 , 0 , 1 , false } } ,
{ Instruction : : BALANCE , { " BALANCE " , 0 , 1 , 1 , false } } ,
{ Instruction : : ORIGIN , { " ORIGIN " , 0 , 0 , 1 , false } } ,
{ Instruction : : CALLER , { " CALLER " , 0 , 0 , 1 , false } } ,
{ Instruction : : CALLVALUE , { " CALLVALUE " , 0 , 0 , 1 , false } } ,
{ Instruction : : CALLDATALOAD , { " CALLDATALOAD " , 0 , 1 , 1 , false } } ,
{ Instruction : : CALLDATASIZE , { " CALLDATASIZE " , 0 , 0 , 1 , false } } ,
{ Instruction : : CALLDATACOPY , { " CALLDATACOPY " , 0 , 3 , 0 , true } } ,
{ Instruction : : CODESIZE , { " CODESIZE " , 0 , 0 , 1 , false } } ,
{ Instruction : : CODECOPY , { " CODECOPY " , 0 , 3 , 0 , true } } ,
{ Instruction : : GASPRICE , { " GASPRICE " , 0 , 0 , 1 , false } } ,
{ Instruction : : EXTCODESIZE , { " EXTCODESIZE " , 0 , 1 , 1 , false } } ,
{ Instruction : : EXTCODECOPY , { " EXTCODECOPY " , 0 , 4 , 0 , true } } ,
{ Instruction : : BLOCKHASH , { " BLOCKHASH " , 0 , 1 , 1 , false } } ,
{ Instruction : : COINBASE , { " COINBASE " , 0 , 0 , 1 , false } } ,
{ Instruction : : TIMESTAMP , { " TIMESTAMP " , 0 , 0 , 1 , false } } ,
{ Instruction : : NUMBER , { " NUMBER " , 0 , 0 , 1 , false } } ,
{ Instruction : : DIFFICULTY , { " DIFFICULTY " , 0 , 0 , 1 , false } } ,
{ Instruction : : GASLIMIT , { " GASLIMIT " , 0 , 0 , 1 , false } } ,
{ Instruction : : POP , { " POP " , 0 , 1 , 0 , false } } ,
{ Instruction : : MLOAD , { " MLOAD " , 0 , 1 , 1 , false } } ,
{ Instruction : : MSTORE , { " MSTORE " , 0 , 2 , 0 , true } } ,
{ Instruction : : MSTORE8 , { " MSTORE8 " , 0 , 2 , 0 , true } } ,
{ Instruction : : SLOAD , { " SLOAD " , 0 , 1 , 1 , false } } ,
{ Instruction : : SSTORE , { " SSTORE " , 0 , 2 , 0 , true } } ,
{ Instruction : : JUMP , { " JUMP " , 0 , 1 , 0 , true } } ,
{ Instruction : : JUMPI , { " JUMPI " , 0 , 2 , 0 , true } } ,
{ Instruction : : PC , { " PC " , 0 , 0 , 1 , false } } ,
{ Instruction : : MSIZE , { " MSIZE " , 0 , 0 , 1 , false } } ,
{ Instruction : : GAS , { " GAS " , 0 , 0 , 1 , false } } ,
{ Instruction : : JUMPDEST , { " JUMPDEST " , 0 , 1 , 0 , true } } ,
{ Instruction : : PUSH1 , { " PUSH1 " , 1 , 0 , 1 , false } } ,
{ Instruction : : PUSH2 , { " PUSH2 " , 2 , 0 , 1 , false } } ,
{ Instruction : : PUSH3 , { " PUSH3 " , 3 , 0 , 1 , false } } ,
{ Instruction : : PUSH4 , { " PUSH4 " , 4 , 0 , 1 , false } } ,
{ Instruction : : PUSH5 , { " PUSH5 " , 5 , 0 , 1 , false } } ,
{ Instruction : : PUSH6 , { " PUSH6 " , 6 , 0 , 1 , false } } ,
{ Instruction : : PUSH7 , { " PUSH7 " , 7 , 0 , 1 , false } } ,
{ Instruction : : PUSH8 , { " PUSH8 " , 8 , 0 , 1 , false } } ,
{ Instruction : : PUSH9 , { " PUSH9 " , 9 , 0 , 1 , false } } ,
{ Instruction : : PUSH10 , { " PUSH10 " , 10 , 0 , 1 , false } } ,
{ Instruction : : PUSH11 , { " PUSH11 " , 11 , 0 , 1 , false } } ,
{ Instruction : : PUSH12 , { " PUSH12 " , 12 , 0 , 1 , false } } ,
{ Instruction : : PUSH13 , { " PUSH13 " , 13 , 0 , 1 , false } } ,
{ Instruction : : PUSH14 , { " PUSH14 " , 14 , 0 , 1 , false } } ,
{ Instruction : : PUSH15 , { " PUSH15 " , 15 , 0 , 1 , false } } ,
{ Instruction : : PUSH16 , { " PUSH16 " , 16 , 0 , 1 , false } } ,
{ Instruction : : PUSH17 , { " PUSH17 " , 17 , 0 , 1 , false } } ,
{ Instruction : : PUSH18 , { " PUSH18 " , 18 , 0 , 1 , false } } ,
{ Instruction : : PUSH19 , { " PUSH19 " , 19 , 0 , 1 , false } } ,
{ Instruction : : PUSH20 , { " PUSH20 " , 20 , 0 , 1 , false } } ,
{ Instruction : : PUSH21 , { " PUSH21 " , 21 , 0 , 1 , false } } ,
{ Instruction : : PUSH22 , { " PUSH22 " , 22 , 0 , 1 , false } } ,
{ Instruction : : PUSH23 , { " PUSH23 " , 23 , 0 , 1 , false } } ,
{ Instruction : : PUSH24 , { " PUSH24 " , 24 , 0 , 1 , false } } ,
{ Instruction : : PUSH25 , { " PUSH25 " , 25 , 0 , 1 , false } } ,
{ Instruction : : PUSH26 , { " PUSH26 " , 26 , 0 , 1 , false } } ,
{ Instruction : : PUSH27 , { " PUSH27 " , 27 , 0 , 1 , false } } ,
{ Instruction : : PUSH28 , { " PUSH28 " , 28 , 0 , 1 , false } } ,
{ Instruction : : PUSH29 , { " PUSH29 " , 29 , 0 , 1 , false } } ,
{ Instruction : : PUSH30 , { " PUSH30 " , 30 , 0 , 1 , false } } ,
{ Instruction : : PUSH31 , { " PUSH31 " , 31 , 0 , 1 , false } } ,
{ Instruction : : PUSH32 , { " PUSH32 " , 32 , 0 , 1 , false } } ,
{ Instruction : : DUP1 , { " DUP1 " , 0 , 1 , 2 , false } } ,
{ Instruction : : DUP2 , { " DUP2 " , 0 , 2 , 3 , false } } ,
{ Instruction : : DUP3 , { " DUP3 " , 0 , 3 , 4 , false } } ,
{ Instruction : : DUP4 , { " DUP4 " , 0 , 4 , 5 , false } } ,
{ Instruction : : DUP5 , { " DUP5 " , 0 , 5 , 6 , false } } ,
{ Instruction : : DUP6 , { " DUP6 " , 0 , 6 , 7 , false } } ,
{ Instruction : : DUP7 , { " DUP7 " , 0 , 7 , 8 , false } } ,
{ Instruction : : DUP8 , { " DUP8 " , 0 , 8 , 9 , false } } ,
{ Instruction : : DUP9 , { " DUP9 " , 0 , 9 , 10 , false } } ,
{ Instruction : : DUP10 , { " DUP10 " , 0 , 10 , 11 , false } } ,
{ Instruction : : DUP11 , { " DUP11 " , 0 , 11 , 12 , false } } ,
{ Instruction : : DUP12 , { " DUP12 " , 0 , 12 , 13 , false } } ,
{ Instruction : : DUP13 , { " DUP13 " , 0 , 13 , 14 , false } } ,
{ Instruction : : DUP14 , { " DUP14 " , 0 , 14 , 15 , false } } ,
{ Instruction : : DUP15 , { " DUP15 " , 0 , 15 , 16 , false } } ,
{ Instruction : : DUP16 , { " DUP16 " , 0 , 16 , 17 , false } } ,
{ Instruction : : SWAP1 , { " SWAP1 " , 0 , 2 , 2 , false } } ,
{ Instruction : : SWAP2 , { " SWAP2 " , 0 , 3 , 3 , false } } ,
{ Instruction : : SWAP3 , { " SWAP3 " , 0 , 4 , 4 , false } } ,
{ Instruction : : SWAP4 , { " SWAP4 " , 0 , 5 , 5 , false } } ,
{ Instruction : : SWAP5 , { " SWAP5 " , 0 , 6 , 6 , false } } ,
{ Instruction : : SWAP6 , { " SWAP6 " , 0 , 7 , 7 , false } } ,
{ Instruction : : SWAP7 , { " SWAP7 " , 0 , 8 , 8 , false } } ,
{ Instruction : : SWAP8 , { " SWAP8 " , 0 , 9 , 9 , false } } ,
{ Instruction : : SWAP9 , { " SWAP9 " , 0 , 10 , 10 , false } } ,
{ Instruction : : SWAP10 , { " SWAP10 " , 0 , 11 , 11 , false } } ,
{ Instruction : : SWAP11 , { " SWAP11 " , 0 , 12 , 12 , false } } ,
{ Instruction : : SWAP12 , { " SWAP12 " , 0 , 13 , 13 , false } } ,
{ Instruction : : SWAP13 , { " SWAP13 " , 0 , 14 , 14 , false } } ,
{ Instruction : : SWAP14 , { " SWAP14 " , 0 , 15 , 15 , false } } ,
{ Instruction : : SWAP15 , { " SWAP15 " , 0 , 16 , 16 , false } } ,
{ Instruction : : SWAP16 , { " SWAP16 " , 0 , 17 , 17 , false } } ,
{ Instruction : : LOG0 , { " LOG0 " , 0 , 2 , 0 , true } } ,
{ Instruction : : LOG1 , { " LOG1 " , 0 , 3 , 0 , true } } ,
{ Instruction : : LOG2 , { " LOG2 " , 0 , 4 , 0 , true } } ,
{ Instruction : : LOG3 , { " LOG3 " , 0 , 5 , 0 , true } } ,
{ Instruction : : LOG4 , { " LOG4 " , 0 , 6 , 0 , true } } ,
{ Instruction : : CREATE , { " CREATE " , 0 , 3 , 1 , true } } ,
{ Instruction : : CALL , { " CALL " , 0 , 7 , 1 , true } } ,
{ Instruction : : CALLCODE , { " CALLCODE " , 0 , 7 , 1 , true } } ,
{ Instruction : : RETURN , { " RETURN " , 0 , 2 , 0 , true } } ,
{ Instruction : : SUICIDE , { " SUICIDE " , 0 , 1 , 0 , true } }
{ // Add, Args, Ret, SideEffects, GasPriceTier
{ Instruction : : STOP , { " STOP " , 0 , 0 , 0 , true , ZeroTier } } ,
{ Instruction : : ADD , { " ADD " , 0 , 2 , 1 , false , VeryLowTier } } ,
{ Instruction : : SUB , { " SUB " , 0 , 2 , 1 , false , VeryLowTier } } ,
{ Instruction : : MUL , { " MUL " , 0 , 2 , 1 , false , LowTier } } ,
{ Instruction : : DIV , { " DIV " , 0 , 2 , 1 , false , LowTier } } ,
{ Instruction : : SDIV , { " SDIV " , 0 , 2 , 1 , false , LowTier } } ,
{ Instruction : : MOD , { " MOD " , 0 , 2 , 1 , false , LowTier } } ,
{ Instruction : : SMOD , { " SMOD " , 0 , 2 , 1 , false , LowTier } } ,
{ Instruction : : EXP , { " EXP " , 0 , 2 , 1 , false , SpecialTier } } ,
{ Instruction : : NOT , { " NOT " , 0 , 1 , 1 , false , VeryLowTier } } ,
{ Instruction : : LT , { " LT " , 0 , 2 , 1 , false , VeryLowTier } } ,
{ Instruction : : GT , { " GT " , 0 , 2 , 1 , false , VeryLowTier } } ,
{ Instruction : : SLT , { " SLT " , 0 , 2 , 1 , false , VeryLowTier } } ,
{ Instruction : : SGT , { " SGT " , 0 , 2 , 1 , false , VeryLowTier } } ,
{ Instruction : : EQ , { " EQ " , 0 , 2 , 1 , false , VeryLowTier } } ,
{ Instruction : : ISZERO , { " ISZERO " , 0 , 1 , 1 , false , VeryLowTier } } ,
{ Instruction : : AND , { " AND " , 0 , 2 , 1 , false , VeryLowTier } } ,
{ Instruction : : OR , { " OR " , 0 , 2 , 1 , false , VeryLowTier } } ,
{ Instruction : : XOR , { " XOR " , 0 , 2 , 1 , false , VeryLowTier } } ,
{ Instruction : : BYTE , { " BYTE " , 0 , 2 , 1 , false , VeryLowTier } } ,
{ Instruction : : ADDMOD , { " ADDMOD " , 0 , 3 , 1 , false , MidTier } } ,
{ Instruction : : MULMOD , { " MULMOD " , 0 , 3 , 1 , false , MidTier } } ,
{ Instruction : : SIGNEXTEND , { " SIGNEXTEND " , 0 , 2 , 1 , false , LowTier } } ,
{ Instruction : : SHA3 , { " SHA3 " , 0 , 2 , 1 , false , SpecialTier } } ,
{ Instruction : : ADDRESS , { " ADDRESS " , 0 , 0 , 1 , false , BaseTier } } ,
{ Instruction : : BALANCE , { " BALANCE " , 0 , 1 , 1 , false , ExtTier } } ,
{ Instruction : : ORIGIN , { " ORIGIN " , 0 , 0 , 1 , false , BaseTier } } ,
{ Instruction : : CALLER , { " CALLER " , 0 , 0 , 1 , false , BaseTier } } ,
{ Instruction : : CALLVALUE , { " CALLVALUE " , 0 , 0 , 1 , false , BaseTier } } ,
{ Instruction : : CALLDATALOAD , { " CALLDATALOAD " , 0 , 1 , 1 , false , VeryLowTier } } ,
{ Instruction : : CALLDATASIZE , { " CALLDATASIZE " , 0 , 0 , 1 , false , BaseTier } } ,
{ Instruction : : CALLDATACOPY , { " CALLDATACOPY " , 0 , 3 , 0 , true , VeryLowTier } } ,
{ Instruction : : CODESIZE , { " CODESIZE " , 0 , 0 , 1 , false , BaseTier } } ,
{ Instruction : : CODECOPY , { " CODECOPY " , 0 , 3 , 0 , true , VeryLowTier } } ,
{ Instruction : : GASPRICE , { " GASPRICE " , 0 , 0 , 1 , false , BaseTier } } ,
{ Instruction : : EXTCODESIZE , { " EXTCODESIZE " , 0 , 1 , 1 , false , ExtTier } } ,
{ Instruction : : EXTCODECOPY , { " EXTCODECOPY " , 0 , 4 , 0 , true , ExtTier } } ,
{ Instruction : : BLOCKHASH , { " BLOCKHASH " , 0 , 1 , 1 , false , ExtTier } } ,
{ Instruction : : COINBASE , { " COINBASE " , 0 , 0 , 1 , false , BaseTier } } ,
{ Instruction : : TIMESTAMP , { " TIMESTAMP " , 0 , 0 , 1 , false , BaseTier } } ,
{ Instruction : : NUMBER , { " NUMBER " , 0 , 0 , 1 , false , BaseTier } } ,
{ Instruction : : DIFFICULTY , { " DIFFICULTY " , 0 , 0 , 1 , false , BaseTier } } ,
{ Instruction : : GASLIMIT , { " GASLIMIT " , 0 , 0 , 1 , false , BaseTier } } ,
{ Instruction : : POP , { " POP " , 0 , 1 , 0 , false , BaseTier } } ,
{ Instruction : : MLOAD , { " MLOAD " , 0 , 1 , 1 , false , VeryLowTier } } ,
{ Instruction : : MSTORE , { " MSTORE " , 0 , 2 , 0 , true , VeryLowTier } } ,
{ Instruction : : MSTORE8 , { " MSTORE8 " , 0 , 2 , 0 , true , VeryLowTier } } ,
{ Instruction : : SLOAD , { " SLOAD " , 0 , 1 , 1 , false , SpecialTier } } ,
{ Instruction : : SSTORE , { " SSTORE " , 0 , 2 , 0 , true , SpecialTier } } ,
{ Instruction : : JUMP , { " JUMP " , 0 , 1 , 0 , true , MidTier } } ,
{ Instruction : : JUMPI , { " JUMPI " , 0 , 2 , 0 , true , HighTier } } ,
{ Instruction : : PC , { " PC " , 0 , 0 , 1 , false , BaseTier } } ,
{ Instruction : : MSIZE , { " MSIZE " , 0 , 0 , 1 , false , BaseTier } } ,
{ Instruction : : GAS , { " GAS " , 0 , 0 , 1 , false , BaseTier } } ,
{ Instruction : : JUMPDEST , { " JUMPDEST " , 0 , 1 , 0 , true , SpecialTier } } ,
{ Instruction : : PUSH1 , { " PUSH1 " , 1 , 0 , 1 , false , VeryLowTier } } ,
{ Instruction : : PUSH2 , { " PUSH2 " , 2 , 0 , 1 , false , VeryLowTier } } ,
{ Instruction : : PUSH3 , { " PUSH3 " , 3 , 0 , 1 , false , VeryLowTier } } ,
{ Instruction : : PUSH4 , { " PUSH4 " , 4 , 0 , 1 , false , VeryLowTier } } ,
{ Instruction : : PUSH5 , { " PUSH5 " , 5 , 0 , 1 , false , VeryLowTier } } ,
{ Instruction : : PUSH6 , { " PUSH6 " , 6 , 0 , 1 , false , VeryLowTier } } ,
{ Instruction : : PUSH7 , { " PUSH7 " , 7 , 0 , 1 , false , VeryLowTier } } ,
{ Instruction : : PUSH8 , { " PUSH8 " , 8 , 0 , 1 , false , VeryLowTier } } ,
{ Instruction : : PUSH9 , { " PUSH9 " , 9 , 0 , 1 , false , VeryLowTier } } ,
{ Instruction : : PUSH10 , { " PUSH10 " , 10 , 0 , 1 , false , VeryLowTier } } ,
{ Instruction : : PUSH11 , { " PUSH11 " , 11 , 0 , 1 , false , VeryLowTier } } ,
{ Instruction : : PUSH12 , { " PUSH12 " , 12 , 0 , 1 , false , VeryLowTier } } ,
{ Instruction : : PUSH13 , { " PUSH13 " , 13 , 0 , 1 , false , VeryLowTier } } ,
{ Instruction : : PUSH14 , { " PUSH14 " , 14 , 0 , 1 , false , VeryLowTier } } ,
{ Instruction : : PUSH15 , { " PUSH15 " , 15 , 0 , 1 , false , VeryLowTier } } ,
{ Instruction : : PUSH16 , { " PUSH16 " , 16 , 0 , 1 , false , VeryLowTier } } ,
{ Instruction : : PUSH17 , { " PUSH17 " , 17 , 0 , 1 , false , VeryLowTier } } ,
{ Instruction : : PUSH18 , { " PUSH18 " , 18 , 0 , 1 , false , VeryLowTier } } ,
{ Instruction : : PUSH19 , { " PUSH19 " , 19 , 0 , 1 , false , VeryLowTier } } ,
{ Instruction : : PUSH20 , { " PUSH20 " , 20 , 0 , 1 , false , VeryLowTier } } ,
{ Instruction : : PUSH21 , { " PUSH21 " , 21 , 0 , 1 , false , VeryLowTier } } ,
{ Instruction : : PUSH22 , { " PUSH22 " , 22 , 0 , 1 , false , VeryLowTier } } ,
{ Instruction : : PUSH23 , { " PUSH23 " , 23 , 0 , 1 , false , VeryLowTier } } ,
{ Instruction : : PUSH24 , { " PUSH24 " , 24 , 0 , 1 , false , VeryLowTier } } ,
{ Instruction : : PUSH25 , { " PUSH25 " , 25 , 0 , 1 , false , VeryLowTier } } ,
{ Instruction : : PUSH26 , { " PUSH26 " , 26 , 0 , 1 , false , VeryLowTier } } ,
{ Instruction : : PUSH27 , { " PUSH27 " , 27 , 0 , 1 , false , VeryLowTier } } ,
{ Instruction : : PUSH28 , { " PUSH28 " , 28 , 0 , 1 , false , VeryLowTier } } ,
{ Instruction : : PUSH29 , { " PUSH29 " , 29 , 0 , 1 , false , VeryLowTier } } ,
{ Instruction : : PUSH30 , { " PUSH30 " , 30 , 0 , 1 , false , VeryLowTier } } ,
{ Instruction : : PUSH31 , { " PUSH31 " , 31 , 0 , 1 , false , VeryLowTier } } ,
{ Instruction : : PUSH32 , { " PUSH32 " , 32 , 0 , 1 , false , VeryLowTier } } ,
{ Instruction : : DUP1 , { " DUP1 " , 0 , 1 , 2 , false , VeryLowTier } } ,
{ Instruction : : DUP2 , { " DUP2 " , 0 , 2 , 3 , false , VeryLowTier } } ,
{ Instruction : : DUP3 , { " DUP3 " , 0 , 3 , 4 , false , VeryLowTier } } ,
{ Instruction : : DUP4 , { " DUP4 " , 0 , 4 , 5 , false , VeryLowTier } } ,
{ Instruction : : DUP5 , { " DUP5 " , 0 , 5 , 6 , false , VeryLowTier } } ,
{ Instruction : : DUP6 , { " DUP6 " , 0 , 6 , 7 , false , VeryLowTier } } ,
{ Instruction : : DUP7 , { " DUP7 " , 0 , 7 , 8 , false , VeryLowTier } } ,
{ Instruction : : DUP8 , { " DUP8 " , 0 , 8 , 9 , false , VeryLowTier } } ,
{ Instruction : : DUP9 , { " DUP9 " , 0 , 9 , 10 , false , VeryLowTier } } ,
{ Instruction : : DUP10 , { " DUP10 " , 0 , 10 , 11 , false , VeryLowTier } } ,
{ Instruction : : DUP11 , { " DUP11 " , 0 , 11 , 12 , false , VeryLowTier } } ,
{ Instruction : : DUP12 , { " DUP12 " , 0 , 12 , 13 , false , VeryLowTier } } ,
{ Instruction : : DUP13 , { " DUP13 " , 0 , 13 , 14 , false , VeryLowTier } } ,
{ Instruction : : DUP14 , { " DUP14 " , 0 , 14 , 15 , false , VeryLowTier } } ,
{ Instruction : : DUP15 , { " DUP15 " , 0 , 15 , 16 , false , VeryLowTier } } ,
{ Instruction : : DUP16 , { " DUP16 " , 0 , 16 , 17 , false , VeryLowTier } } ,
{ Instruction : : SWAP1 , { " SWAP1 " , 0 , 2 , 2 , false , VeryLowTier } } ,
{ Instruction : : SWAP2 , { " SWAP2 " , 0 , 3 , 3 , false , VeryLowTier } } ,
{ Instruction : : SWAP3 , { " SWAP3 " , 0 , 4 , 4 , false , VeryLowTier } } ,
{ Instruction : : SWAP4 , { " SWAP4 " , 0 , 5 , 5 , false , VeryLowTier } } ,
{ Instruction : : SWAP5 , { " SWAP5 " , 0 , 6 , 6 , false , VeryLowTier } } ,
{ Instruction : : SWAP6 , { " SWAP6 " , 0 , 7 , 7 , false , VeryLowTier } } ,
{ Instruction : : SWAP7 , { " SWAP7 " , 0 , 8 , 8 , false , VeryLowTier } } ,
{ Instruction : : SWAP8 , { " SWAP8 " , 0 , 9 , 9 , false , VeryLowTier } } ,
{ Instruction : : SWAP9 , { " SWAP9 " , 0 , 10 , 10 , false , VeryLowTier } } ,
{ Instruction : : SWAP10 , { " SWAP10 " , 0 , 11 , 11 , false , VeryLowTier } } ,
{ Instruction : : SWAP11 , { " SWAP11 " , 0 , 12 , 12 , false , VeryLowTier } } ,
{ Instruction : : SWAP12 , { " SWAP12 " , 0 , 13 , 13 , false , VeryLowTier } } ,
{ Instruction : : SWAP13 , { " SWAP13 " , 0 , 14 , 14 , false , VeryLowTier } } ,
{ Instruction : : SWAP14 , { " SWAP14 " , 0 , 15 , 15 , false , VeryLowTier } } ,
{ Instruction : : SWAP15 , { " SWAP15 " , 0 , 16 , 16 , false , VeryLowTier } } ,
{ Instruction : : SWAP16 , { " SWAP16 " , 0 , 17 , 17 , false , VeryLowTier } } ,
{ Instruction : : LOG0 , { " LOG0 " , 0 , 2 , 0 , true , SpecialTier } } ,
{ Instruction : : LOG1 , { " LOG1 " , 0 , 3 , 0 , true , SpecialTier } } ,
{ Instruction : : LOG2 , { " LOG2 " , 0 , 4 , 0 , true , SpecialTier } } ,
{ Instruction : : LOG3 , { " LOG3 " , 0 , 5 , 0 , true , SpecialTier } } ,
{ Instruction : : LOG4 , { " LOG4 " , 0 , 6 , 0 , true , SpecialTier } } ,
{ Instruction : : CREATE , { " CREATE " , 0 , 3 , 1 , true , SpecialTier } } ,
{ Instruction : : CALL , { " CALL " , 0 , 7 , 1 , true , SpecialTier } } ,
{ Instruction : : CALLCODE , { " CALLCODE " , 0 , 7 , 1 , true , SpecialTier } } ,
{ Instruction : : RETURN , { " RETURN " , 0 , 2 , 0 , true , ZeroTier } } ,
{ Instruction : : SUICIDE , { " SUICIDE " , 0 , 1 , 0 , true , ZeroTier } }
} ;
string dev : : eth : : disassemble ( bytes const & _mem )
@ -326,12 +326,7 @@ InstructionInfo dev::eth::instructionInfo(Instruction _inst)
}
catch ( . . . )
{
# ifndef BOOST_NO_EXCEPTIONS
cwarn < < " <INVALID_INSTRUCTION: " < < toString ( ( unsigned ) _inst ) < < " > \n " < < boost : : current_exception_diagnostic_information ( ) ;
# else
cwarn < < " <INVALID_INSTRUCTION: " < < toString ( ( unsigned ) _inst ) < < " > \n " ;
# endif
return InstructionInfo ( { " <INVALID_INSTRUCTION: " + toString ( ( unsigned ) _inst ) + " > " , 0 , 0 , 0 , false } ) ;
return InstructionInfo ( { " <INVALID_INSTRUCTION: " + toString ( ( unsigned ) _inst ) + " > " , 0 , 0 , 0 , false , InvalidTier } ) ;
}
}