mirror of https://github.com/status-im/evmc.git
Separate instruction names from metrics
This commit is contained in:
parent
8a9ebd4966
commit
94bb5fbec9
|
@ -6,6 +6,7 @@ add_library(
|
|||
instructions
|
||||
${include_dir}/evmc/instructions.h
|
||||
instruction_metrics.c
|
||||
instruction_names.c
|
||||
)
|
||||
|
||||
add_library(evmc::instructions ALIAS instructions)
|
||||
|
|
|
@ -1335,268 +1335,3 @@ const struct evmc_instruction_metrics* evmc_get_instruction_metrics_table(
|
|||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
static const char* names[256] = {
|
||||
"STOP",
|
||||
"ADD",
|
||||
"MUL",
|
||||
"SUB",
|
||||
"DIV",
|
||||
"SDIV",
|
||||
"MOD",
|
||||
"SMOD",
|
||||
"ADDMOD",
|
||||
"MULMOD",
|
||||
"EXP",
|
||||
"SIGNEXTEND",
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
"LT",
|
||||
"GT",
|
||||
"SLT",
|
||||
"SGT",
|
||||
"EQ",
|
||||
"ISZERO",
|
||||
"AND",
|
||||
"OR",
|
||||
"XOR",
|
||||
"NOT",
|
||||
"BYTE",
|
||||
"SHL",
|
||||
"SHR",
|
||||
"SAR",
|
||||
NULL,
|
||||
NULL,
|
||||
"SHA3",
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
"ADDRESS",
|
||||
"BALANCE",
|
||||
"ORIGIN",
|
||||
"CALLER",
|
||||
"CALLVALUE",
|
||||
"CALLDATALOAD",
|
||||
"CALLDATASIZE",
|
||||
"CALLDATACOPY",
|
||||
"CODESIZE",
|
||||
"CODECOPY",
|
||||
"GASPRICE",
|
||||
"EXTCODESIZE",
|
||||
"EXTCODECOPY",
|
||||
"RETURNDATASIZE",
|
||||
"RETURNDATACOPY",
|
||||
NULL,
|
||||
"BLOCKHASH",
|
||||
"COINBASE",
|
||||
"TIMESTAMP",
|
||||
"NUMBER",
|
||||
"DIFFICULTY",
|
||||
"GASLIMIT",
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
"POP",
|
||||
"MLOAD",
|
||||
"MSTORE",
|
||||
"MSTORE8",
|
||||
"SLOAD",
|
||||
"SSTORE",
|
||||
"JUMP",
|
||||
"JUMPI",
|
||||
"PC",
|
||||
"MSIZE",
|
||||
"GAS",
|
||||
"JUMPDEST",
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
"PUSH1",
|
||||
"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",
|
||||
"DUP1",
|
||||
"DUP2",
|
||||
"DUP3",
|
||||
"DUP4",
|
||||
"DUP5",
|
||||
"DUP6",
|
||||
"DUP7",
|
||||
"DUP8",
|
||||
"DUP9",
|
||||
"DUP10",
|
||||
"DUP11",
|
||||
"DUP12",
|
||||
"DUP13",
|
||||
"DUP14",
|
||||
"DUP15",
|
||||
"DUP16",
|
||||
"SWAP1",
|
||||
"SWAP2",
|
||||
"SWAP3",
|
||||
"SWAP4",
|
||||
"SWAP5",
|
||||
"SWAP6",
|
||||
"SWAP7",
|
||||
"SWAP8",
|
||||
"SWAP9",
|
||||
"SWAP10",
|
||||
"SWAP11",
|
||||
"SWAP12",
|
||||
"SWAP13",
|
||||
"SWAP14",
|
||||
"SWAP15",
|
||||
"SWAP16",
|
||||
"LOG0",
|
||||
"LOG1",
|
||||
"LOG2",
|
||||
"LOG3",
|
||||
"LOG4",
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
"CREATE",
|
||||
"CALL",
|
||||
"CALLCODE",
|
||||
"RETURN",
|
||||
"DELEGATECALL",
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
"STATICCALL",
|
||||
NULL,
|
||||
NULL,
|
||||
"REVERT",
|
||||
"INVALID",
|
||||
"SUICIDE",
|
||||
};
|
||||
|
||||
const char* const* evmc_get_instruction_name_table()
|
||||
{
|
||||
return names;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,270 @@
|
|||
/* EVMC: Ethereum Client-VM Connector API.
|
||||
* Copyright 2018 Pawel Bylica.
|
||||
* Licensed under the MIT License. See the LICENSE file.
|
||||
*/
|
||||
|
||||
#include <evmc/instructions.h>
|
||||
|
||||
static const char* names[256] = {
|
||||
"STOP",
|
||||
"ADD",
|
||||
"MUL",
|
||||
"SUB",
|
||||
"DIV",
|
||||
"SDIV",
|
||||
"MOD",
|
||||
"SMOD",
|
||||
"ADDMOD",
|
||||
"MULMOD",
|
||||
"EXP",
|
||||
"SIGNEXTEND",
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
"LT",
|
||||
"GT",
|
||||
"SLT",
|
||||
"SGT",
|
||||
"EQ",
|
||||
"ISZERO",
|
||||
"AND",
|
||||
"OR",
|
||||
"XOR",
|
||||
"NOT",
|
||||
"BYTE",
|
||||
"SHL",
|
||||
"SHR",
|
||||
"SAR",
|
||||
NULL,
|
||||
NULL,
|
||||
"SHA3",
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
"ADDRESS",
|
||||
"BALANCE",
|
||||
"ORIGIN",
|
||||
"CALLER",
|
||||
"CALLVALUE",
|
||||
"CALLDATALOAD",
|
||||
"CALLDATASIZE",
|
||||
"CALLDATACOPY",
|
||||
"CODESIZE",
|
||||
"CODECOPY",
|
||||
"GASPRICE",
|
||||
"EXTCODESIZE",
|
||||
"EXTCODECOPY",
|
||||
"RETURNDATASIZE",
|
||||
"RETURNDATACOPY",
|
||||
NULL,
|
||||
"BLOCKHASH",
|
||||
"COINBASE",
|
||||
"TIMESTAMP",
|
||||
"NUMBER",
|
||||
"DIFFICULTY",
|
||||
"GASLIMIT",
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
"POP",
|
||||
"MLOAD",
|
||||
"MSTORE",
|
||||
"MSTORE8",
|
||||
"SLOAD",
|
||||
"SSTORE",
|
||||
"JUMP",
|
||||
"JUMPI",
|
||||
"PC",
|
||||
"MSIZE",
|
||||
"GAS",
|
||||
"JUMPDEST",
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
"PUSH1",
|
||||
"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",
|
||||
"DUP1",
|
||||
"DUP2",
|
||||
"DUP3",
|
||||
"DUP4",
|
||||
"DUP5",
|
||||
"DUP6",
|
||||
"DUP7",
|
||||
"DUP8",
|
||||
"DUP9",
|
||||
"DUP10",
|
||||
"DUP11",
|
||||
"DUP12",
|
||||
"DUP13",
|
||||
"DUP14",
|
||||
"DUP15",
|
||||
"DUP16",
|
||||
"SWAP1",
|
||||
"SWAP2",
|
||||
"SWAP3",
|
||||
"SWAP4",
|
||||
"SWAP5",
|
||||
"SWAP6",
|
||||
"SWAP7",
|
||||
"SWAP8",
|
||||
"SWAP9",
|
||||
"SWAP10",
|
||||
"SWAP11",
|
||||
"SWAP12",
|
||||
"SWAP13",
|
||||
"SWAP14",
|
||||
"SWAP15",
|
||||
"SWAP16",
|
||||
"LOG0",
|
||||
"LOG1",
|
||||
"LOG2",
|
||||
"LOG3",
|
||||
"LOG4",
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
"CREATE",
|
||||
"CALL",
|
||||
"CALLCODE",
|
||||
"RETURN",
|
||||
"DELEGATECALL",
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
"STATICCALL",
|
||||
NULL,
|
||||
NULL,
|
||||
"REVERT",
|
||||
"INVALID",
|
||||
"SUICIDE",
|
||||
};
|
||||
|
||||
const char* const* evmc_get_instruction_name_table()
|
||||
{
|
||||
return names;
|
||||
}
|
Loading…
Reference in New Issue