mirror of https://github.com/status-im/evmc.git
Use name prefix for EVM opcode enum items
This commit is contained in:
parent
37cc64f5dc
commit
6f1f961f85
|
@ -14,159 +14,157 @@ extern "C" {
|
|||
#endif
|
||||
|
||||
/**
|
||||
* The list of EVM 1 instructions from every EVM revision.
|
||||
* The list of EVM 1 opcodes from every EVM revision.
|
||||
*/
|
||||
enum evmc_instruction
|
||||
enum evmc_opcode
|
||||
{
|
||||
STOP = 0x00,
|
||||
ADD,
|
||||
MUL,
|
||||
SUB,
|
||||
DIV,
|
||||
SDIV,
|
||||
MOD,
|
||||
SMOD,
|
||||
ADDMOD,
|
||||
MULMOD,
|
||||
EXP,
|
||||
SIGNEXTEND,
|
||||
OP_STOP = 0x00,
|
||||
OP_ADD = 0x01,
|
||||
OP_MUL = 0x02,
|
||||
OP_SUB = 0x03,
|
||||
OP_DIV = 0x04,
|
||||
OP_SDIV = 0x05,
|
||||
OP_MOD = 0x06,
|
||||
OP_SMOD = 0x07,
|
||||
OP_ADDMOD = 0x08,
|
||||
OP_MULMOD = 0x09,
|
||||
OP_EXP = 0x0a,
|
||||
OP_SIGNEXTEND = 0x0b,
|
||||
|
||||
LT = 0x10,
|
||||
GT,
|
||||
SLT,
|
||||
SGT,
|
||||
EQ,
|
||||
ISZERO,
|
||||
AND,
|
||||
OR,
|
||||
XOR,
|
||||
NOT,
|
||||
BYTE,
|
||||
SHL,
|
||||
SHR,
|
||||
SAR,
|
||||
OP_LT = 0x10,
|
||||
OP_GT = 0x11,
|
||||
OP_SLT = 0x12,
|
||||
OP_SGT = 0x13,
|
||||
OP_EQ = 0x14,
|
||||
OP_ISZERO = 0x15,
|
||||
OP_AND = 0x16,
|
||||
OP_OR = 0x17,
|
||||
OP_XOR = 0x18,
|
||||
OP_NOT = 0x19,
|
||||
OP_BYTE = 0x1a,
|
||||
OP_SHL = 0x1b,
|
||||
OP_SHR = 0x1c,
|
||||
OP_SAR = 0x1d,
|
||||
|
||||
SHA3 = 0x20,
|
||||
OP_SHA3 = 0x20,
|
||||
|
||||
ADDRESS = 0x30,
|
||||
BALANCE,
|
||||
ORIGIN,
|
||||
CALLER,
|
||||
CALLVALUE,
|
||||
CALLDATALOAD,
|
||||
CALLDATASIZE,
|
||||
CALLDATACOPY,
|
||||
CODESIZE,
|
||||
CODECOPY,
|
||||
GASPRICE,
|
||||
EXTCODESIZE,
|
||||
EXTCODECOPY,
|
||||
RETURNDATASIZE = 0x3d,
|
||||
RETURNDATACOPY = 0x3e,
|
||||
OP_ADDRESS = 0x30,
|
||||
OP_BALANCE = 0x31,
|
||||
OP_ORIGIN = 0x32,
|
||||
OP_CALLER = 0x33,
|
||||
OP_CALLVALUE = 0x34,
|
||||
OP_CALLDATALOAD = 0x35,
|
||||
OP_CALLDATASIZE = 0x36,
|
||||
OP_CALLDATACOPY = 0x37,
|
||||
OP_CODESIZE = 0x38,
|
||||
OP_CODECOPY = 0x39,
|
||||
OP_GASPRICE = 0x3a,
|
||||
OP_EXTCODESIZE = 0x3b,
|
||||
OP_EXTCODECOPY = 0x3c,
|
||||
OP_RETURNDATASIZE = 0x3d,
|
||||
OP_RETURNDATACOPY = 0x3e,
|
||||
|
||||
BLOCKHASH = 0x40,
|
||||
COINBASE,
|
||||
TIMESTAMP,
|
||||
NUMBER,
|
||||
DIFFICULTY,
|
||||
GASLIMIT,
|
||||
OP_BLOCKHASH = 0x40,
|
||||
OP_COINBASE = 0x41,
|
||||
OP_TIMESTAMP = 0x42,
|
||||
OP_NUMBER = 0x43,
|
||||
OP_DIFFICULTY = 0x44,
|
||||
OP_GASLIMIT = 0x45,
|
||||
|
||||
POP = 0x50,
|
||||
MLOAD,
|
||||
MSTORE,
|
||||
MSTORE8,
|
||||
SLOAD,
|
||||
SSTORE,
|
||||
JUMP,
|
||||
JUMPI,
|
||||
PC,
|
||||
MSIZE,
|
||||
GAS,
|
||||
JUMPDEST,
|
||||
OP_POP = 0x50,
|
||||
OP_MLOAD = 0x51,
|
||||
OP_MSTORE = 0x52,
|
||||
OP_MSTORE8 = 0x53,
|
||||
OP_SLOAD = 0x54,
|
||||
OP_SSTORE = 0x55,
|
||||
OP_JUMP = 0x56,
|
||||
OP_JUMPI = 0x57,
|
||||
OP_PC = 0x58,
|
||||
OP_MSIZE = 0x59,
|
||||
OP_GAS = 0x5a,
|
||||
OP_JUMPDEST = 0x5b,
|
||||
|
||||
PUSH1 = 0x60,
|
||||
PUSH2,
|
||||
PUSH3,
|
||||
PUSH4,
|
||||
PUSH5,
|
||||
PUSH6,
|
||||
PUSH7,
|
||||
PUSH8,
|
||||
PUSH9,
|
||||
PUSH10,
|
||||
PUSH11,
|
||||
PUSH12,
|
||||
PUSH13,
|
||||
PUSH14,
|
||||
PUSH15,
|
||||
PUSH16,
|
||||
PUSH17,
|
||||
PUSH18,
|
||||
PUSH19,
|
||||
PUSH20,
|
||||
PUSH21,
|
||||
PUSH22,
|
||||
PUSH23,
|
||||
PUSH24,
|
||||
PUSH25,
|
||||
PUSH26,
|
||||
PUSH27,
|
||||
PUSH28,
|
||||
PUSH29,
|
||||
PUSH30,
|
||||
PUSH31,
|
||||
PUSH32,
|
||||
OP_PUSH1 = 0x60,
|
||||
OP_PUSH2 = 0x61,
|
||||
OP_PUSH3 = 0x62,
|
||||
OP_PUSH4 = 0x63,
|
||||
OP_PUSH5 = 0x64,
|
||||
OP_PUSH6 = 0x65,
|
||||
OP_PUSH7 = 0x66,
|
||||
OP_PUSH8 = 0x67,
|
||||
OP_PUSH9 = 0x68,
|
||||
OP_PUSH10 = 0x69,
|
||||
OP_PUSH11 = 0x6a,
|
||||
OP_PUSH12 = 0x6b,
|
||||
OP_PUSH13 = 0x6c,
|
||||
OP_PUSH14 = 0x6d,
|
||||
OP_PUSH15 = 0x6e,
|
||||
OP_PUSH16 = 0x6f,
|
||||
OP_PUSH17 = 0x70,
|
||||
OP_PUSH18 = 0x71,
|
||||
OP_PUSH19 = 0x72,
|
||||
OP_PUSH20 = 0x73,
|
||||
OP_PUSH21 = 0x74,
|
||||
OP_PUSH22 = 0x75,
|
||||
OP_PUSH23 = 0x76,
|
||||
OP_PUSH24 = 0x77,
|
||||
OP_PUSH25 = 0x78,
|
||||
OP_PUSH26 = 0x79,
|
||||
OP_PUSH27 = 0x7a,
|
||||
OP_PUSH28 = 0x7b,
|
||||
OP_PUSH29 = 0x7c,
|
||||
OP_PUSH30 = 0x7d,
|
||||
OP_PUSH31 = 0x7e,
|
||||
OP_PUSH32 = 0x7f,
|
||||
OP_DUP1 = 0x80,
|
||||
OP_DUP2 = 0x81,
|
||||
OP_DUP3 = 0x82,
|
||||
OP_DUP4 = 0x83,
|
||||
OP_DUP5 = 0x84,
|
||||
OP_DUP6 = 0x85,
|
||||
OP_DUP7 = 0x86,
|
||||
OP_DUP8 = 0x87,
|
||||
OP_DUP9 = 0x88,
|
||||
OP_DUP10 = 0x89,
|
||||
OP_DUP11 = 0x8a,
|
||||
OP_DUP12 = 0x8b,
|
||||
OP_DUP13 = 0x8c,
|
||||
OP_DUP14 = 0x8d,
|
||||
OP_DUP15 = 0x8e,
|
||||
OP_DUP16 = 0x8f,
|
||||
OP_SWAP1 = 0x90,
|
||||
OP_SWAP2 = 0x91,
|
||||
OP_SWAP3 = 0x92,
|
||||
OP_SWAP4 = 0x93,
|
||||
OP_SWAP5 = 0x94,
|
||||
OP_SWAP6 = 0x95,
|
||||
OP_SWAP7 = 0x96,
|
||||
OP_SWAP8 = 0x97,
|
||||
OP_SWAP9 = 0x98,
|
||||
OP_SWAP10 = 0x99,
|
||||
OP_SWAP11 = 0x9a,
|
||||
OP_SWAP12 = 0x9b,
|
||||
OP_SWAP13 = 0x9c,
|
||||
OP_SWAP14 = 0x9d,
|
||||
OP_SWAP15 = 0x9e,
|
||||
OP_SWAP16 = 0x9f,
|
||||
OP_LOG0 = 0xa0,
|
||||
OP_LOG1 = 0xa1,
|
||||
OP_LOG2 = 0xa2,
|
||||
OP_LOG3 = 0xa3,
|
||||
OP_LOG4 = 0xa4,
|
||||
|
||||
DUP1 = 0x80,
|
||||
DUP2,
|
||||
DUP3,
|
||||
DUP4,
|
||||
DUP5,
|
||||
DUP6,
|
||||
DUP7,
|
||||
DUP8,
|
||||
DUP9,
|
||||
DUP10,
|
||||
DUP11,
|
||||
DUP12,
|
||||
DUP13,
|
||||
DUP14,
|
||||
DUP15,
|
||||
DUP16,
|
||||
OP_CREATE = 0xf0,
|
||||
OP_CALL = 0xf1,
|
||||
OP_CALLCODE = 0xf2,
|
||||
OP_RETURN = 0xf3,
|
||||
OP_DELEGATECALL = 0xf4,
|
||||
|
||||
SWAP1 = 0x90,
|
||||
SWAP2,
|
||||
SWAP3,
|
||||
SWAP4,
|
||||
SWAP5,
|
||||
SWAP6,
|
||||
SWAP7,
|
||||
SWAP8,
|
||||
SWAP9,
|
||||
SWAP10,
|
||||
SWAP11,
|
||||
SWAP12,
|
||||
SWAP13,
|
||||
SWAP14,
|
||||
SWAP15,
|
||||
SWAP16,
|
||||
OP_STATICCALL = 0xfa,
|
||||
|
||||
LOG0 = 0xa0,
|
||||
LOG1,
|
||||
LOG2,
|
||||
LOG3,
|
||||
LOG4,
|
||||
|
||||
CREATE = 0xf0,
|
||||
CALL,
|
||||
CALLCODE,
|
||||
RETURN,
|
||||
DELEGATECALL,
|
||||
STATICCALL = 0xfa,
|
||||
|
||||
REVERT = 0xfd,
|
||||
INVALID = 0xfe,
|
||||
SELFDESTRUCT = 0xff,
|
||||
OP_REVERT = 0xfd,
|
||||
OP_INVALID = 0xfe,
|
||||
OP_SELFDESTRUCT = 0xff,
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
@ -11,27 +11,27 @@ TEST(instructions, tangerine_whistle_hard_fork)
|
|||
const auto h = evmc_get_instruction_metrics_table(EVMC_HOMESTEAD);
|
||||
const auto tw = evmc_get_instruction_metrics_table(EVMC_TANGERINE_WHISTLE);
|
||||
|
||||
EXPECT_EQ(h[EXTCODESIZE].gas_cost, 20);
|
||||
EXPECT_EQ(tw[EXTCODESIZE].gas_cost, 700);
|
||||
EXPECT_EQ(h[OP_EXTCODESIZE].gas_cost, 20);
|
||||
EXPECT_EQ(tw[OP_EXTCODESIZE].gas_cost, 700);
|
||||
|
||||
EXPECT_EQ(h[EXTCODECOPY].gas_cost, 20);
|
||||
EXPECT_EQ(tw[EXTCODECOPY].gas_cost, 700);
|
||||
EXPECT_EQ(h[OP_EXTCODECOPY].gas_cost, 20);
|
||||
EXPECT_EQ(tw[OP_EXTCODECOPY].gas_cost, 700);
|
||||
|
||||
EXPECT_EQ(h[BALANCE].gas_cost, 20);
|
||||
EXPECT_EQ(tw[BALANCE].gas_cost, 400);
|
||||
EXPECT_EQ(h[OP_BALANCE].gas_cost, 20);
|
||||
EXPECT_EQ(tw[OP_BALANCE].gas_cost, 400);
|
||||
|
||||
EXPECT_EQ(h[SLOAD].gas_cost, 50);
|
||||
EXPECT_EQ(tw[SLOAD].gas_cost, 200);
|
||||
EXPECT_EQ(h[OP_SLOAD].gas_cost, 50);
|
||||
EXPECT_EQ(tw[OP_SLOAD].gas_cost, 200);
|
||||
|
||||
EXPECT_EQ(h[CALL].gas_cost, 40);
|
||||
EXPECT_EQ(tw[CALL].gas_cost, 700);
|
||||
EXPECT_EQ(h[OP_CALL].gas_cost, 40);
|
||||
EXPECT_EQ(tw[OP_CALL].gas_cost, 700);
|
||||
|
||||
EXPECT_EQ(h[CALLCODE].gas_cost, 40);
|
||||
EXPECT_EQ(tw[CALLCODE].gas_cost, 700);
|
||||
EXPECT_EQ(h[OP_CALLCODE].gas_cost, 40);
|
||||
EXPECT_EQ(tw[OP_CALLCODE].gas_cost, 700);
|
||||
|
||||
EXPECT_EQ(h[DELEGATECALL].gas_cost, 40);
|
||||
EXPECT_EQ(tw[DELEGATECALL].gas_cost, 700);
|
||||
EXPECT_EQ(h[OP_DELEGATECALL].gas_cost, 40);
|
||||
EXPECT_EQ(tw[OP_DELEGATECALL].gas_cost, 700);
|
||||
|
||||
EXPECT_EQ(h[SELFDESTRUCT].gas_cost, 0);
|
||||
EXPECT_EQ(tw[SELFDESTRUCT].gas_cost, 5000);
|
||||
EXPECT_EQ(h[OP_SELFDESTRUCT].gas_cost, 0);
|
||||
EXPECT_EQ(tw[OP_SELFDESTRUCT].gas_cost, 5000);
|
||||
}
|
Loading…
Reference in New Issue