Classes | Typedefs | Enumerations
evm.h File Reference
#include "platform.h"
Include dependency graph for evm.h:

Go to the source code of this file.

Classes

struct  cs_evm
 Instruction structure. More...
 

Typedefs

typedef struct cs_evm cs_evm
 Instruction structure. More...
 
typedef enum evm_insn evm_insn
 EVM instruction. More...
 
typedef enum evm_insn_group evm_insn_group
 Group of EVM instructions. More...
 

Enumerations

enum  evm_insn {
  EVM_INS_STOP = 0, EVM_INS_ADD = 1, EVM_INS_MUL = 2, EVM_INS_SUB = 3,
  EVM_INS_DIV = 4, EVM_INS_SDIV = 5, EVM_INS_MOD = 6, EVM_INS_SMOD = 7,
  EVM_INS_ADDMOD = 8, EVM_INS_MULMOD = 9, EVM_INS_EXP = 10, EVM_INS_SIGNEXTEND = 11,
  EVM_INS_LT = 16, EVM_INS_GT = 17, EVM_INS_SLT = 18, EVM_INS_SGT = 19,
  EVM_INS_EQ = 20, EVM_INS_ISZERO = 21, EVM_INS_AND = 22, EVM_INS_OR = 23,
  EVM_INS_XOR = 24, EVM_INS_NOT = 25, EVM_INS_BYTE = 26, EVM_INS_SHA3 = 32,
  EVM_INS_ADDRESS = 48, EVM_INS_BALANCE = 49, EVM_INS_ORIGIN = 50, EVM_INS_CALLER = 51,
  EVM_INS_CALLVALUE = 52, EVM_INS_CALLDATALOAD = 53, EVM_INS_CALLDATASIZE = 54, EVM_INS_CALLDATACOPY = 55,
  EVM_INS_CODESIZE = 56, EVM_INS_CODECOPY = 57, EVM_INS_GASPRICE = 58, EVM_INS_EXTCODESIZE = 59,
  EVM_INS_EXTCODECOPY = 60, EVM_INS_RETURNDATASIZE = 61, EVM_INS_RETURNDATACOPY = 62, EVM_INS_BLOCKHASH = 64,
  EVM_INS_COINBASE = 65, EVM_INS_TIMESTAMP = 66, EVM_INS_NUMBER = 67, EVM_INS_DIFFICULTY = 68,
  EVM_INS_GASLIMIT = 69, EVM_INS_POP = 80, EVM_INS_MLOAD = 81, EVM_INS_MSTORE = 82,
  EVM_INS_MSTORE8 = 83, EVM_INS_SLOAD = 84, EVM_INS_SSTORE = 85, EVM_INS_JUMP = 86,
  EVM_INS_JUMPI = 87, EVM_INS_PC = 88, EVM_INS_MSIZE = 89, EVM_INS_GAS = 90,
  EVM_INS_JUMPDEST = 91, EVM_INS_PUSH1 = 96, EVM_INS_PUSH2 = 97, EVM_INS_PUSH3 = 98,
  EVM_INS_PUSH4 = 99, EVM_INS_PUSH5 = 100, EVM_INS_PUSH6 = 101, EVM_INS_PUSH7 = 102,
  EVM_INS_PUSH8 = 103, EVM_INS_PUSH9 = 104, EVM_INS_PUSH10 = 105, EVM_INS_PUSH11 = 106,
  EVM_INS_PUSH12 = 107, EVM_INS_PUSH13 = 108, EVM_INS_PUSH14 = 109, EVM_INS_PUSH15 = 110,
  EVM_INS_PUSH16 = 111, EVM_INS_PUSH17 = 112, EVM_INS_PUSH18 = 113, EVM_INS_PUSH19 = 114,
  EVM_INS_PUSH20 = 115, EVM_INS_PUSH21 = 116, EVM_INS_PUSH22 = 117, EVM_INS_PUSH23 = 118,
  EVM_INS_PUSH24 = 119, EVM_INS_PUSH25 = 120, EVM_INS_PUSH26 = 121, EVM_INS_PUSH27 = 122,
  EVM_INS_PUSH28 = 123, EVM_INS_PUSH29 = 124, EVM_INS_PUSH30 = 125, EVM_INS_PUSH31 = 126,
  EVM_INS_PUSH32 = 127, EVM_INS_DUP1 = 128, EVM_INS_DUP2 = 129, EVM_INS_DUP3 = 130,
  EVM_INS_DUP4 = 131, EVM_INS_DUP5 = 132, EVM_INS_DUP6 = 133, EVM_INS_DUP7 = 134,
  EVM_INS_DUP8 = 135, EVM_INS_DUP9 = 136, EVM_INS_DUP10 = 137, EVM_INS_DUP11 = 138,
  EVM_INS_DUP12 = 139, EVM_INS_DUP13 = 140, EVM_INS_DUP14 = 141, EVM_INS_DUP15 = 142,
  EVM_INS_DUP16 = 143, EVM_INS_SWAP1 = 144, EVM_INS_SWAP2 = 145, EVM_INS_SWAP3 = 146,
  EVM_INS_SWAP4 = 147, EVM_INS_SWAP5 = 148, EVM_INS_SWAP6 = 149, EVM_INS_SWAP7 = 150,
  EVM_INS_SWAP8 = 151, EVM_INS_SWAP9 = 152, EVM_INS_SWAP10 = 153, EVM_INS_SWAP11 = 154,
  EVM_INS_SWAP12 = 155, EVM_INS_SWAP13 = 156, EVM_INS_SWAP14 = 157, EVM_INS_SWAP15 = 158,
  EVM_INS_SWAP16 = 159, EVM_INS_LOG0 = 160, EVM_INS_LOG1 = 161, EVM_INS_LOG2 = 162,
  EVM_INS_LOG3 = 163, EVM_INS_LOG4 = 164, EVM_INS_CREATE = 240, EVM_INS_CALL = 241,
  EVM_INS_CALLCODE = 242, EVM_INS_RETURN = 243, EVM_INS_DELEGATECALL = 244, EVM_INS_CALLBLACKBOX = 245,
  EVM_INS_STATICCALL = 250, EVM_INS_REVERT = 253, EVM_INS_SUICIDE = 255, EVM_INS_INVALID = 512,
  EVM_INS_ENDING
}
 EVM instruction. More...
 
enum  evm_insn_group {
  EVM_GRP_INVALID = 0, EVM_GRP_JUMP, EVM_GRP_MATH = 8, EVM_GRP_STACK_WRITE,
  EVM_GRP_STACK_READ, EVM_GRP_MEM_WRITE, EVM_GRP_MEM_READ, EVM_GRP_STORE_WRITE,
  EVM_GRP_STORE_READ, EVM_GRP_HALT, EVM_GRP_ENDING
}
 Group of EVM instructions. More...
 

Typedef Documentation

◆ cs_evm

typedef struct cs_evm cs_evm

Instruction structure.

◆ evm_insn

typedef enum evm_insn evm_insn

EVM instruction.

◆ evm_insn_group

Group of EVM instructions.

Enumeration Type Documentation

◆ evm_insn

enum evm_insn

EVM instruction.

Enumerator
EVM_INS_STOP 
EVM_INS_ADD 
EVM_INS_MUL 
EVM_INS_SUB 
EVM_INS_DIV 
EVM_INS_SDIV 
EVM_INS_MOD 
EVM_INS_SMOD 
EVM_INS_ADDMOD 
EVM_INS_MULMOD 
EVM_INS_EXP 
EVM_INS_SIGNEXTEND 
EVM_INS_LT 
EVM_INS_GT 
EVM_INS_SLT 
EVM_INS_SGT 
EVM_INS_EQ 
EVM_INS_ISZERO 
EVM_INS_AND 
EVM_INS_OR 
EVM_INS_XOR 
EVM_INS_NOT 
EVM_INS_BYTE 
EVM_INS_SHA3 
EVM_INS_ADDRESS 
EVM_INS_BALANCE 
EVM_INS_ORIGIN 
EVM_INS_CALLER 
EVM_INS_CALLVALUE 
EVM_INS_CALLDATALOAD 
EVM_INS_CALLDATASIZE 
EVM_INS_CALLDATACOPY 
EVM_INS_CODESIZE 
EVM_INS_CODECOPY 
EVM_INS_GASPRICE 
EVM_INS_EXTCODESIZE 
EVM_INS_EXTCODECOPY 
EVM_INS_RETURNDATASIZE 
EVM_INS_RETURNDATACOPY 
EVM_INS_BLOCKHASH 
EVM_INS_COINBASE 
EVM_INS_TIMESTAMP 
EVM_INS_NUMBER 
EVM_INS_DIFFICULTY 
EVM_INS_GASLIMIT 
EVM_INS_POP 
EVM_INS_MLOAD 
EVM_INS_MSTORE 
EVM_INS_MSTORE8 
EVM_INS_SLOAD 
EVM_INS_SSTORE 
EVM_INS_JUMP 
EVM_INS_JUMPI 
EVM_INS_PC 
EVM_INS_MSIZE 
EVM_INS_GAS 
EVM_INS_JUMPDEST 
EVM_INS_PUSH1 
EVM_INS_PUSH2 
EVM_INS_PUSH3 
EVM_INS_PUSH4 
EVM_INS_PUSH5 
EVM_INS_PUSH6 
EVM_INS_PUSH7 
EVM_INS_PUSH8 
EVM_INS_PUSH9 
EVM_INS_PUSH10 
EVM_INS_PUSH11 
EVM_INS_PUSH12 
EVM_INS_PUSH13 
EVM_INS_PUSH14 
EVM_INS_PUSH15 
EVM_INS_PUSH16 
EVM_INS_PUSH17 
EVM_INS_PUSH18 
EVM_INS_PUSH19 
EVM_INS_PUSH20 
EVM_INS_PUSH21 
EVM_INS_PUSH22 
EVM_INS_PUSH23 
EVM_INS_PUSH24 
EVM_INS_PUSH25 
EVM_INS_PUSH26 
EVM_INS_PUSH27 
EVM_INS_PUSH28 
EVM_INS_PUSH29 
EVM_INS_PUSH30 
EVM_INS_PUSH31 
EVM_INS_PUSH32 
EVM_INS_DUP1 
EVM_INS_DUP2 
EVM_INS_DUP3 
EVM_INS_DUP4 
EVM_INS_DUP5 
EVM_INS_DUP6 
EVM_INS_DUP7 
EVM_INS_DUP8 
EVM_INS_DUP9 
EVM_INS_DUP10 
EVM_INS_DUP11 
EVM_INS_DUP12 
EVM_INS_DUP13 
EVM_INS_DUP14 
EVM_INS_DUP15 
EVM_INS_DUP16 
EVM_INS_SWAP1 
EVM_INS_SWAP2 
EVM_INS_SWAP3 
EVM_INS_SWAP4 
EVM_INS_SWAP5 
EVM_INS_SWAP6 
EVM_INS_SWAP7 
EVM_INS_SWAP8 
EVM_INS_SWAP9 
EVM_INS_SWAP10 
EVM_INS_SWAP11 
EVM_INS_SWAP12 
EVM_INS_SWAP13 
EVM_INS_SWAP14 
EVM_INS_SWAP15 
EVM_INS_SWAP16 
EVM_INS_LOG0 
EVM_INS_LOG1 
EVM_INS_LOG2 
EVM_INS_LOG3 
EVM_INS_LOG4 
EVM_INS_CREATE 
EVM_INS_CALL 
EVM_INS_CALLCODE 
EVM_INS_RETURN 
EVM_INS_DELEGATECALL 
EVM_INS_CALLBLACKBOX 
EVM_INS_STATICCALL 
EVM_INS_REVERT 
EVM_INS_SUICIDE 
EVM_INS_INVALID 
EVM_INS_ENDING 

Definition at line 25 of file evm.h.

◆ evm_insn_group

Group of EVM instructions.

Enumerator
EVM_GRP_INVALID 

= CS_GRP_INVALID

EVM_GRP_JUMP 

all jump instructions

EVM_GRP_MATH 

math instructions

EVM_GRP_STACK_WRITE 

instructions write to stack

EVM_GRP_STACK_READ 

instructions read from stack

EVM_GRP_MEM_WRITE 

instructions write to memory

EVM_GRP_MEM_READ 

instructions read from memory

EVM_GRP_STORE_WRITE 

instructions write to storage

EVM_GRP_STORE_READ 

instructions read from storage

EVM_GRP_HALT 

instructions halt execution

EVM_GRP_ENDING 

<– mark the end of the list of groups

Definition at line 167 of file evm.h.



grpc
Author(s):
autogenerated on Fri May 16 2025 03:01:12