CuEVM
Functions
CuEVM::operations Namespace Reference

Functions

__host__ __device__ int32_t ADD (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack)
 
__host__ __device__ int32_t MUL (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack)
 
__host__ __device__ int32_t SUB (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack)
 
__host__ __device__ int32_t DIV (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack)
 
__host__ __device__ int32_t SDIV (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack)
 
__host__ __device__ int32_t MOD (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack)
 
__host__ __device__ int32_t SMOD (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack)
 
__host__ __device__ int32_t ADDMOD (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack)
 
__host__ __device__ int32_t MULMOD (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack)
 
__host__ __device__ int32_t EXP (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack)
 
__host__ __device__ int32_t SIGNEXTEND (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack)
 
__host__ __device__ int32_t AND (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack)
 
__host__ __device__ int32_t OR (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack)
 
__host__ __device__ int32_t XOR (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack)
 
__host__ __device__ int32_t NOT (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack)
 
__host__ __device__ int32_t BYTE (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack)
 
__host__ __device__ int32_t SHL (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack)
 
__host__ __device__ int32_t SHR (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack)
 
__host__ __device__ int32_t SAR (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack)
 
__host__ __device__ int32_t BLOCKHASH (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, const CuEVM::block_info_t &block)
 
__host__ __device__ int32_t COINBASE (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, const CuEVM::block_info_t &block)
 
__host__ __device__ int32_t TIMESTAMP (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, const CuEVM::block_info_t &block)
 
__host__ __device__ int32_t NUMBER (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, const CuEVM::block_info_t &block)
 
__host__ __device__ int32_t PREVRANDAO (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, const CuEVM::block_info_t &block)
 
__host__ __device__ int32_t GASLIMIT (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, const CuEVM::block_info_t &block)
 
__host__ __device__ int32_t CHAINID (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, const CuEVM::block_info_t &block)
 
__host__ __device__ int32_t BASEFEE (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, const CuEVM::block_info_t &block)
 
__host__ __device__ int32_t compare (ArithEnv &arith, CuEVM::evm_stack_t &stack, int32_t &result)
 
__host__ __device__ int32_t scompare (ArithEnv &arith, CuEVM::evm_stack_t &stack, int32_t &result)
 
__host__ __device__ int32_t LT (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack)
 
__host__ __device__ int32_t GT (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack)
 
__host__ __device__ int32_t SLT (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack)
 
__host__ __device__ int32_t SGT (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack)
 
__host__ __device__ int32_t EQ (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack)
 
__host__ __device__ int32_t ISZERO (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack)
 
__host__ __device__ int32_t SHA3 (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, CuEVM::evm_memory_t &memory)
 
__host__ __device__ int32_t ADDRESS (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, const CuEVM::evm_message_call_t &message)
 
__host__ __device__ int32_t BALANCE (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, CuEVM::TouchState &touch_state)
 
__host__ __device__ int32_t ORIGIN (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, const CuEVM::evm_transaction_t &transaction)
 
__host__ __device__ int32_t CALLER (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, const CuEVM::evm_message_call_t &message)
 
__host__ __device__ int32_t CALLVALUE (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, const CuEVM::evm_message_call_t &message)
 
__host__ __device__ int32_t CALLDATALOAD (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, const CuEVM::evm_message_call_t &message)
 
__host__ __device__ int32_t CALLDATASIZE (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, const CuEVM::evm_message_call_t &message)
 
__host__ __device__ int32_t CALLDATACOPY (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, const CuEVM::evm_message_call_t &message, CuEVM::evm_memory_t &memory)
 
__host__ __device__ int32_t CODESIZE (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, const CuEVM::evm_message_call_t &message)
 
__host__ __device__ int32_t CODECOPY (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, const CuEVM::evm_message_call_t &message, CuEVM::evm_memory_t &memory)
 
__host__ __device__ int32_t GASPRICE (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, const CuEVM::block_info_t &block, const CuEVM::evm_transaction_t &transaction)
 
__host__ __device__ int32_t EXTCODESIZE (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, CuEVM::TouchState &touch_state)
 
__host__ __device__ int32_t EXTCODECOPY (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, CuEVM::TouchState &touch_state, CuEVM::evm_memory_t &memory)
 
__host__ __device__ int32_t RETURNDATASIZE (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, const CuEVM::evm_return_data_t &return_data)
 
__host__ __device__ int32_t RETURNDATACOPY (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, CuEVM::evm_memory_t &memory, const CuEVM::evm_return_data_t &return_data)
 
__host__ __device__ int32_t EXTCODEHASH (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, CuEVM::TouchState &touch_state)
 
__host__ __device__ int32_t SELFBALANCE (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, CuEVM::TouchState &touch_state, const CuEVM::evm_message_call_t &message)
 
__host__ __device__ int32_t JUMP (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, uint32_t &pc, CuEVM::evm_stack_t &stack, const CuEVM::evm_message_call_t &message)
 
__host__ __device__ int32_t JUMPI (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, uint32_t &pc, CuEVM::evm_stack_t &stack, const CuEVM::evm_message_call_t &message)
 
__host__ __device__ int32_t PC (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, const uint32_t &pc, CuEVM::evm_stack_t &stack)
 
__host__ __device__ int32_t GAS (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack)
 
__host__ __device__ int32_t JUMPDEST (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used)
 
__host__ __device__ int32_t LOGX (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, CuEVM::evm_memory_t &memory, const CuEVM::evm_message_call_t &message, CuEVM::log_state_data_t &log_state, const uint8_t &opcode)
 
__host__ __device__ int32_t MLOAD (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, CuEVM::evm_memory_t &memory)
 
__host__ __device__ int32_t MSTORE (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, CuEVM::evm_memory_t &memory)
 
__host__ __device__ int32_t MSTORE8 (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, CuEVM::evm_memory_t &memory)
 
__host__ __device__ int32_t MSIZE (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, const CuEVM::evm_memory_t &memory)
 
__host__ __device__ int32_t POP (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack)
 
__host__ __device__ int32_t PUSH0 (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack)
 
__host__ __device__ int32_t PUSHX (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, uint32_t &pc, CuEVM::evm_stack_t &stack, const CuEVM::byte_array_t &byte_code, const uint8_t &opcode)
 
__host__ __device__ int32_t DUPX (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, const uint8_t &opcode)
 
__host__ __device__ int32_t SWAPX (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, const uint8_t &opcode)
 
__host__ __device__ int32_t SLOAD (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, CuEVM::TouchState &touch_state, const CuEVM::evm_message_call_t &message)
 
__host__ __device__ int32_t SSTORE (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, bn_t &gas_refund, CuEVM::evm_stack_t &stack, CuEVM::TouchState &touch_state, const CuEVM::evm_message_call_t &message)
 
__host__ __device__ int32_t generic_CALL (ArithEnv &arith, const bn_t &args_offset, const bn_t &args_size, CuEVM::evm_call_state_t &current_state, CuEVM::evm_call_state_t *&new_state_ptr, CuEVM::cached_evm_call_state &cached_state)
 
__host__ __device__ int32_t generic_CREATE (ArithEnv &arith, CuEVM::evm_call_state_t &current_state, CuEVM::evm_call_state_t *&new_state_ptr, const uint32_t opcode, cached_evm_call_state &cached_state)
 
__host__ __device__ int32_t STOP (CuEVM::evm_return_data_t &return_data)
 
__host__ __device__ int32_t CREATE (ArithEnv &arith, CuEVM::evm_call_state_t &current_state, CuEVM::evm_call_state_t *&new_state_ptr, CuEVM::cached_evm_call_state &cached_state)
 
__host__ __device__ int32_t CALL (ArithEnv &arith, CuEVM::evm_call_state_t &current_state, CuEVM::evm_call_state_t *&new_state_ptr, CuEVM::cached_evm_call_state &cached_state)
 
__host__ __device__ int32_t CALLCODE (ArithEnv &arith, CuEVM::evm_call_state_t &current_state, CuEVM::evm_call_state_t *&new_state_ptr, CuEVM::cached_evm_call_state &cached_state)
 
__host__ __device__ int32_t RETURN (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, CuEVM::evm_memory_t &memory, CuEVM::evm_return_data_t &return_data)
 
__host__ __device__ int32_t DELEGATECALL (ArithEnv &arith, CuEVM::evm_call_state_t &current_state, CuEVM::evm_call_state_t *&new_state_ptr, cached_evm_call_state &cached_state)
 
__host__ __device__ int32_t CREATE2 (ArithEnv &arith, CuEVM::evm_call_state_t &current_state, CuEVM::evm_call_state_t *&new_state_ptr, cached_evm_call_state &cached_state)
 
__host__ __device__ int32_t STATICCALL (ArithEnv &arith, CuEVM::evm_call_state_t &current_state, CuEVM::evm_call_state_t *&new_state_ptr, cached_evm_call_state &cached_state)
 
__host__ __device__ int32_t REVERT (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, CuEVM::evm_memory_t &memory, CuEVM::evm_return_data_t &return_data)
 
__host__ __device__ int32_t INVALID ()
 
__host__ __device__ int32_t SELFDESTRUCT (ArithEnv &arith, const bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_stack_t &stack, CuEVM::evm_message_call_t &message, CuEVM::TouchState &touch_state, CuEVM::evm_return_data_t &return_data)
 

Detailed Description

a0s: Logging Operations:

Function Documentation

◆ ADD()

__host__ __device__ int32_t CuEVM::operations::ADD ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack 
)
Here is the call graph for this function:

◆ ADDMOD()

__host__ __device__ int32_t CuEVM::operations::ADDMOD ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack 
)
Here is the call graph for this function:

◆ ADDRESS()

__host__ __device__ int32_t CuEVM::operations::ADDRESS ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
const CuEVM::evm_message_call_t &  message 
)
Here is the call graph for this function:

◆ AND()

__host__ __device__ int32_t CuEVM::operations::AND ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack 
)
Here is the call graph for this function:

◆ BALANCE()

__host__ __device__ int32_t CuEVM::operations::BALANCE ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
CuEVM::TouchState &  touch_state 
)
Here is the call graph for this function:

◆ BASEFEE()

__host__ __device__ int32_t CuEVM::operations::BASEFEE ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
const CuEVM::block_info_t &  block 
)
Here is the call graph for this function:

◆ BLOCKHASH()

__host__ __device__ int32_t CuEVM::operations::BLOCKHASH ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
const CuEVM::block_info_t &  block 
)
Here is the call graph for this function:

◆ BYTE()

__host__ __device__ int32_t CuEVM::operations::BYTE ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack 
)
Here is the call graph for this function:

◆ CALL()

__host__ __device__ int32_t CuEVM::operations::CALL ( ArithEnv &  arith,
CuEVM::evm_call_state_t &  current_state,
CuEVM::evm_call_state_t *&  new_state_ptr,
CuEVM::cached_evm_call_state &  cached_state 
)

The CALL operation. gives the new evm call state

Parameters
[in]arithThe arithmetical environment.
[in]current_stateThe current state.
[out]new_state_ptrThe new state pointer.
Returns
0 if the operation is successful, otherwise the error code.
Here is the call graph for this function:

◆ CALLCODE()

__host__ __device__ int32_t CuEVM::operations::CALLCODE ( ArithEnv &  arith,
CuEVM::evm_call_state_t &  current_state,
CuEVM::evm_call_state_t *&  new_state_ptr,
CuEVM::cached_evm_call_state &  cached_state 
)

The CALLCODE operation. gives the new evm call state

Parameters
[in]arithThe arithmetical environment.
[in]current_stateThe current state.
[out]new_state_ptrThe new state pointer.
Returns
0 if the operation is successful, otherwise the error code.
Here is the call graph for this function:

◆ CALLDATACOPY()

__host__ __device__ int32_t CuEVM::operations::CALLDATACOPY ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
const CuEVM::evm_message_call_t &  message,
CuEVM::evm_memory_t &  memory 
)
Here is the call graph for this function:

◆ CALLDATALOAD()

__host__ __device__ int32_t CuEVM::operations::CALLDATALOAD ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
const CuEVM::evm_message_call_t &  message 
)
Here is the call graph for this function:

◆ CALLDATASIZE()

__host__ __device__ int32_t CuEVM::operations::CALLDATASIZE ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
const CuEVM::evm_message_call_t &  message 
)
Here is the call graph for this function:

◆ CALLER()

__host__ __device__ int32_t CuEVM::operations::CALLER ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
const CuEVM::evm_message_call_t &  message 
)
Here is the call graph for this function:

◆ CALLVALUE()

__host__ __device__ int32_t CuEVM::operations::CALLVALUE ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
const CuEVM::evm_message_call_t &  message 
)
Here is the call graph for this function:

◆ CHAINID()

__host__ __device__ int32_t CuEVM::operations::CHAINID ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
const CuEVM::block_info_t &  block 
)
Here is the call graph for this function:

◆ CODECOPY()

__host__ __device__ int32_t CuEVM::operations::CODECOPY ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
const CuEVM::evm_message_call_t &  message,
CuEVM::evm_memory_t &  memory 
)
Here is the call graph for this function:

◆ CODESIZE()

__host__ __device__ int32_t CuEVM::operations::CODESIZE ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
const CuEVM::evm_message_call_t &  message 
)
Here is the call graph for this function:

◆ COINBASE()

__host__ __device__ int32_t CuEVM::operations::COINBASE ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
const CuEVM::block_info_t &  block 
)
Here is the call graph for this function:

◆ compare()

__host__ __device__ int32_t CuEVM::operations::compare ( ArithEnv &  arith,
CuEVM::evm_stack_t &  stack,
int32_t &  result 
)

Compare the top two values from the stack. The two values are considered unsigned. -1 if the first value is less than the second value, 0 if the first value is equal to the second value, 1 if the first value is greater than the second value.

Parameters
[in]arithThe arithmetical environment.
[in,out]stackThe stack.
[out]resultThe result of the comparison.
Returns
0 if the operation was successful, an error code otherwise.
Here is the caller graph for this function:

◆ CREATE()

__host__ __device__ int32_t CuEVM::operations::CREATE ( ArithEnv &  arith,
CuEVM::evm_call_state_t &  current_state,
CuEVM::evm_call_state_t *&  new_state_ptr,
CuEVM::cached_evm_call_state &  cached_state 
)

The CREATE operation. gives the new evm call state

Parameters
[in]arithThe arithmetical environment.
[in]current_stateThe current state.
[out]new_state_ptrThe new state pointer.
Returns
0 if the operation is successful, otherwise the error code.
Here is the call graph for this function:

◆ CREATE2()

__host__ __device__ int32_t CuEVM::operations::CREATE2 ( ArithEnv &  arith,
CuEVM::evm_call_state_t &  current_state,
CuEVM::evm_call_state_t *&  new_state_ptr,
cached_evm_call_state &  cached_state 
)

The CREATE2 operation. gives the new evm call state

Parameters
[in]arithThe arithmetical environment.
[in]current_stateThe current state.
[out]new_state_ptrThe new state pointer.
Returns
0 if the operation is successful, otherwise the error code.
Here is the call graph for this function:

◆ DELEGATECALL()

__host__ __device__ int32_t CuEVM::operations::DELEGATECALL ( ArithEnv &  arith,
CuEVM::evm_call_state_t &  current_state,
CuEVM::evm_call_state_t *&  new_state_ptr,
cached_evm_call_state &  cached_state 
)

The DELEGATECALL operation. gives the new evm call state

Parameters
[in]arithThe arithmetical environment.
[in]current_stateThe current state.
[out]new_state_ptrThe new state pointer.
Returns
0 if the operation is successful, otherwise the error code.
Here is the call graph for this function:

◆ DIV()

__host__ __device__ int32_t CuEVM::operations::DIV ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack 
)
Here is the call graph for this function:

◆ DUPX()

__host__ __device__ int32_t CuEVM::operations::DUPX ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
const uint8_t &  opcode 
)
Here is the call graph for this function:

◆ EQ()

__host__ __device__ int32_t CuEVM::operations::EQ ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack 
)
Here is the call graph for this function:

◆ EXP()

__host__ __device__ int32_t CuEVM::operations::EXP ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack 
)
Here is the call graph for this function:

◆ EXTCODECOPY()

__host__ __device__ int32_t CuEVM::operations::EXTCODECOPY ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
CuEVM::TouchState &  touch_state,
CuEVM::evm_memory_t &  memory 
)
Here is the call graph for this function:

◆ EXTCODEHASH()

__host__ __device__ int32_t CuEVM::operations::EXTCODEHASH ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
CuEVM::TouchState &  touch_state 
)
Here is the call graph for this function:

◆ EXTCODESIZE()

__host__ __device__ int32_t CuEVM::operations::EXTCODESIZE ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
CuEVM::TouchState &  touch_state 
)
Here is the call graph for this function:

◆ GAS()

__host__ __device__ int32_t CuEVM::operations::GAS ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack 
)
Here is the call graph for this function:

◆ GASLIMIT()

__host__ __device__ int32_t CuEVM::operations::GASLIMIT ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
const CuEVM::block_info_t &  block 
)
Here is the call graph for this function:

◆ GASPRICE()

__host__ __device__ int32_t CuEVM::operations::GASPRICE ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
const CuEVM::block_info_t &  block,
const CuEVM::evm_transaction_t &  transaction 
)
Here is the call graph for this function:

◆ generic_CALL()

__host__ __device__ int32_t CuEVM::operations::generic_CALL ( ArithEnv &  arith,
const bn_t &  args_offset,
const bn_t &  args_size,
CuEVM::evm_call_state_t &  current_state,
CuEVM::evm_call_state_t *&  new_state_ptr,
CuEVM::cached_evm_call_state &  cached_state 
)

Make a generic call.

Parameters
[in]arithThe arithmetical environment.
[in]current_stateThe current state.
[out]new_state_ptrThe new state pointer.
Returns
0 if the operation is successful, otherwise the error code.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ generic_CREATE()

__host__ __device__ int32_t CuEVM::operations::generic_CREATE ( ArithEnv &  arith,
CuEVM::evm_call_state_t &  current_state,
CuEVM::evm_call_state_t *&  new_state_ptr,
const uint32_t  opcode,
cached_evm_call_state &  cached_state 
)

Make a generic create call.

Parameters
[in]arithThe arithmetical environment.
[in]current_stateThe current state.
[out]new_state_ptrThe new state pointer.
Returns
0 if the operation is successful, otherwise the error code.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GT()

__host__ __device__ int32_t CuEVM::operations::GT ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack 
)
Here is the call graph for this function:

◆ INVALID()

__host__ __device__ int32_t CuEVM::operations::INVALID ( )

The INVALID operation.

Returns
The error code.

◆ ISZERO()

__host__ __device__ int32_t CuEVM::operations::ISZERO ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack 
)
Here is the call graph for this function:

◆ JUMP()

__host__ __device__ int32_t CuEVM::operations::JUMP ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
uint32_t &  pc,
CuEVM::evm_stack_t &  stack,
const CuEVM::evm_message_call_t &  message 
)
Here is the call graph for this function:

◆ JUMPDEST()

__host__ __device__ int32_t CuEVM::operations::JUMPDEST ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used 
)
Here is the call graph for this function:

◆ JUMPI()

__host__ __device__ int32_t CuEVM::operations::JUMPI ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
uint32_t &  pc,
CuEVM::evm_stack_t &  stack,
const CuEVM::evm_message_call_t &  message 
)
Here is the call graph for this function:

◆ LOGX()

__host__ __device__ int32_t CuEVM::operations::LOGX ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
CuEVM::evm_memory_t &  memory,
const CuEVM::evm_message_call_t &  message,
CuEVM::log_state_data_t &  log_state,
const uint8_t &  opcode 
)
Here is the call graph for this function:

◆ LT()

__host__ __device__ int32_t CuEVM::operations::LT ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack 
)
Here is the call graph for this function:

◆ MLOAD()

__host__ __device__ int32_t CuEVM::operations::MLOAD ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
CuEVM::evm_memory_t &  memory 
)
Here is the call graph for this function:

◆ MOD()

__host__ __device__ int32_t CuEVM::operations::MOD ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack 
)
Here is the call graph for this function:

◆ MSIZE()

__host__ __device__ int32_t CuEVM::operations::MSIZE ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
const CuEVM::evm_memory_t &  memory 
)
Here is the call graph for this function:

◆ MSTORE()

__host__ __device__ int32_t CuEVM::operations::MSTORE ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
CuEVM::evm_memory_t &  memory 
)
Here is the call graph for this function:

◆ MSTORE8()

__host__ __device__ int32_t CuEVM::operations::MSTORE8 ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
CuEVM::evm_memory_t &  memory 
)
Here is the call graph for this function:

◆ MUL()

__host__ __device__ int32_t CuEVM::operations::MUL ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack 
)
Here is the call graph for this function:

◆ MULMOD()

__host__ __device__ int32_t CuEVM::operations::MULMOD ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack 
)
Here is the call graph for this function:

◆ NOT()

__host__ __device__ int32_t CuEVM::operations::NOT ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack 
)
Here is the call graph for this function:

◆ NUMBER()

__host__ __device__ int32_t CuEVM::operations::NUMBER ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
const CuEVM::block_info_t &  block 
)
Here is the call graph for this function:

◆ OR()

__host__ __device__ int32_t CuEVM::operations::OR ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack 
)
Here is the call graph for this function:

◆ ORIGIN()

__host__ __device__ int32_t CuEVM::operations::ORIGIN ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
const CuEVM::evm_transaction_t &  transaction 
)
Here is the call graph for this function:

◆ PC()

__host__ __device__ int32_t CuEVM::operations::PC ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
const uint32_t &  pc,
CuEVM::evm_stack_t &  stack 
)
Here is the call graph for this function:

◆ POP()

__host__ __device__ int32_t CuEVM::operations::POP ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack 
)
Here is the call graph for this function:

◆ PREVRANDAO()

__host__ __device__ int32_t CuEVM::operations::PREVRANDAO ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
const CuEVM::block_info_t &  block 
)
Here is the call graph for this function:

◆ PUSH0()

__host__ __device__ int32_t CuEVM::operations::PUSH0 ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack 
)
Here is the call graph for this function:

◆ PUSHX()

__host__ __device__ int32_t CuEVM::operations::PUSHX ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
uint32_t &  pc,
CuEVM::evm_stack_t &  stack,
const CuEVM::byte_array_t &  byte_code,
const uint8_t &  opcode 
)
Here is the call graph for this function:

◆ RETURN()

__host__ __device__ int32_t CuEVM::operations::RETURN ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
CuEVM::evm_memory_t &  memory,
CuEVM::evm_return_data_t &  return_data 
)

The RETURN operation.

Parameters
[in]arithThe arithmetical environment.
[in]gas_limitThe gas limit.
[in,out]gas_usedThe gas used.
[in]stackThe stack.
[in]memoryThe memory.
[out]return_dataThe return data.
Returns
ERROR_RETURN if the operation is successful, otherwise the error code.
Here is the call graph for this function:

◆ RETURNDATACOPY()

__host__ __device__ int32_t CuEVM::operations::RETURNDATACOPY ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
CuEVM::evm_memory_t &  memory,
const CuEVM::evm_return_data_t &  return_data 
)
Here is the call graph for this function:

◆ RETURNDATASIZE()

__host__ __device__ int32_t CuEVM::operations::RETURNDATASIZE ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
const CuEVM::evm_return_data_t &  return_data 
)
Here is the call graph for this function:

◆ REVERT()

__host__ __device__ int32_t CuEVM::operations::REVERT ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
CuEVM::evm_memory_t &  memory,
CuEVM::evm_return_data_t &  return_data 
)

The REVERT operation.

Parameters
[in]arithThe arithmetical environment.
[in]gas_limitThe gas limit.
[in,out]gas_usedThe gas used.
[in]stackThe stack.
[in]memoryThe memory.
[out]return_dataThe return data.
Here is the call graph for this function:

◆ SAR()

__host__ __device__ int32_t CuEVM::operations::SAR ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack 
)
Here is the call graph for this function:

◆ scompare()

__host__ __device__ int32_t CuEVM::operations::scompare ( ArithEnv &  arith,
CuEVM::evm_stack_t &  stack,
int32_t &  result 
)

Compare the top two values from the stack. The two values are considered signed. -1 if the first value is less than the second value, 0 if the first value is equal to the second value, 1 if the first value is greater than the second value.

Parameters
[in]arithThe arithmetical environment.
[in,out]stackThe stack.
[out]resultThe result of the comparison.
Returns
0 if the operation was successful, an error code otherwise.
Here is the caller graph for this function:

◆ SDIV()

__host__ __device__ int32_t CuEVM::operations::SDIV ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack 
)
Here is the call graph for this function:

◆ SELFBALANCE()

__host__ __device__ int32_t CuEVM::operations::SELFBALANCE ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
CuEVM::TouchState &  touch_state,
const CuEVM::evm_message_call_t &  message 
)
Here is the call graph for this function:

◆ SELFDESTRUCT()

__host__ __device__ int32_t CuEVM::operations::SELFDESTRUCT ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
CuEVM::evm_message_call_t &  message,
CuEVM::TouchState &  touch_state,
CuEVM::evm_return_data_t &  return_data 
)

The SELFDESTRUCT operation.

Parameters
[in]arithThe arithmetical environment.
[in]gas_limitThe gas limit.
[in,out]gas_usedThe gas used.
[in,out]stackThe stack.
[in]messageThe current context message call.
[in,out]touch_stateThe touch state.
[out]return_dataThe return data.
Returns
0 if the operation is successful, otherwise the error code.
Here is the call graph for this function:

◆ SGT()

__host__ __device__ int32_t CuEVM::operations::SGT ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack 
)
Here is the call graph for this function:

◆ SHA3()

__host__ __device__ int32_t CuEVM::operations::SHA3 ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
CuEVM::evm_memory_t &  memory 
)
Here is the call graph for this function:

◆ SHL()

__host__ __device__ int32_t CuEVM::operations::SHL ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack 
)
Here is the call graph for this function:

◆ SHR()

__host__ __device__ int32_t CuEVM::operations::SHR ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack 
)
Here is the call graph for this function:

◆ SIGNEXTEND()

__host__ __device__ int32_t CuEVM::operations::SIGNEXTEND ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack 
)
Here is the call graph for this function:

◆ SLOAD()

__host__ __device__ int32_t CuEVM::operations::SLOAD ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
CuEVM::TouchState &  touch_state,
const CuEVM::evm_message_call_t &  message 
)
Here is the call graph for this function:

◆ SLT()

__host__ __device__ int32_t CuEVM::operations::SLT ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack 
)
Here is the call graph for this function:

◆ SMOD()

__host__ __device__ int32_t CuEVM::operations::SMOD ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack 
)
Here is the call graph for this function:

◆ SSTORE()

__host__ __device__ int32_t CuEVM::operations::SSTORE ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
bn_t &  gas_refund,
CuEVM::evm_stack_t &  stack,
CuEVM::TouchState &  touch_state,
const CuEVM::evm_message_call_t &  message 
)
Here is the call graph for this function:

◆ STATICCALL()

__host__ __device__ int32_t CuEVM::operations::STATICCALL ( ArithEnv &  arith,
CuEVM::evm_call_state_t &  current_state,
CuEVM::evm_call_state_t *&  new_state_ptr,
cached_evm_call_state &  cached_state 
)

The STATICCALL operation. gives the new evm call state

Parameters
[in]arithThe arithmetical environment.
[in]current_stateThe current state.
[out]new_state_ptrThe new state pointer.
Returns
0 if the operation is successful, otherwise the error code.
Here is the call graph for this function:

◆ STOP()

__host__ __device__ int32_t CuEVM::operations::STOP ( CuEVM::evm_return_data_t &  return_data)

The STOP operation.

Parameters
[out]return_dataThe return data.
Returns
return error code.

◆ SUB()

__host__ __device__ int32_t CuEVM::operations::SUB ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack 
)
Here is the call graph for this function:

◆ SWAPX()

__host__ __device__ int32_t CuEVM::operations::SWAPX ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
const uint8_t &  opcode 
)
Here is the call graph for this function:

◆ TIMESTAMP()

__host__ __device__ int32_t CuEVM::operations::TIMESTAMP ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack,
const CuEVM::block_info_t &  block 
)
Here is the call graph for this function:

◆ XOR()

__host__ __device__ int32_t CuEVM::operations::XOR ( ArithEnv &  arith,
const bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_stack_t &  stack 
)
Here is the call graph for this function: