EVMC
instructions.h File Reference

EVM Instruction Tables. More...

#include <evmc/evmc.h>
#include <evmc/utils.h>

Go to the source code of this file.

Classes

struct  evmc_instruction_metrics
 Metrics for an EVM 1 instruction. More...
 

Enumerations

enum  evmc_opcode {
  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 ,
  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 , OP_KECCAK256 = 0x20 , 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 , OP_EXTCODEHASH = 0x3f , OP_BLOCKHASH = 0x40 ,
  OP_COINBASE = 0x41 , OP_TIMESTAMP = 0x42 , OP_NUMBER = 0x43 , OP_DIFFICULTY = 0x44 ,
  OP_GASLIMIT = 0x45 , OP_CHAINID = 0x46 , OP_SELFBALANCE = 0x47 , OP_BASEFEE = 0x48 ,
  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 ,
  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 , OP_CREATE = 0xf0 , OP_CALL = 0xf1 , OP_CALLCODE = 0xf2 ,
  OP_RETURN = 0xf3 , OP_DELEGATECALL = 0xf4 , OP_CREATE2 = 0xf5 , OP_STATICCALL = 0xfa ,
  OP_REVERT = 0xfd , OP_INVALID = 0xfe , OP_SELFDESTRUCT = 0xff
}
 The list of EVM 1 opcodes from every EVM revision.
 

Functions

EVMC_EXPORT const struct evmc_instruction_metricsevmc_get_instruction_metrics_table (enum evmc_revision revision)
 Get the table of the EVM 1 instructions metrics. More...
 
EVMC_EXPORT const char *const * evmc_get_instruction_names_table (enum evmc_revision revision)
 Get the table of the EVM 1 instruction names. More...
 

Detailed Description

EVM Instruction Tables.

A collection of metrics for EVM1 instruction set.

Definition in file instructions.h.