Class evm_t::system_operations#
Defined in File evm.cuh
Nested Relationships#
This class is a nested type of Template Class evm_t.
Class Documentation#
-
class system_operations#
The system operations class. It contains the implementation of the system operations. 00:
STOP f0s: System operations:
CREATE
CALL
CALLCODE
RETURN
DELEGATECALL
CREATE2
STATICCALL
REVERT
INVALID
SELFDESTRUCT
Public Static Functions
- static inline __host__ __device__ __forceinline__ int32_t valid_CALL (arith_t &arith, message_t &message, touch_state_t &touch_state)
Get if a message call is valid.
- Parameters
arith – [in] The arithmetical environment.
message – [in] The message call.
touch_state – [in] The touch state.
- Returns
1 if the message call is valid, 0 otherwise.
- static inline __host__ __device__ __forceinline__ int32_t valid_CREATE (arith_t &arith, message_t &message, touch_state_t &touch_state)
Get if a message create call is valid.
- Parameters
arith – [in] The arithmetical environment.
message – [in] The message call.
touch_state – [in] The touch state.
- Returns
1 if the message create call is valid, 0 otherwise.
- static inline __host__ __device__ __forceinline__ void generic_CALL (arith_t &arith, bn_t &gas_limit, bn_t &gas_used, uint32_t &error_code, stack_t &stack, message_t &message, memory_t &memory, touch_state_t &touch_state, evm_t &evm, message_t &new_message, bn_t &args_offset, bn_t &args_size, return_data_t &return_data)
Make a generic call.
- Parameters
arith – [in] The arithmetical environment.
gas_limit – [in] The gas limit.
gas_used – [inout] The gas used.
error_code – [out] The error code.
stack – [inout] The stack.
message – [in] The current context message call.
memory – [in] The memory.
touch_state – [in] The touch state.
evm – [out] The evm.
new_message – [in] The new message call.
args_offset – [in] The message offset for call data.
args_size – [in] The message size for call data.
return_data – [out] The return data.
- static inline __host__ __device__ __forceinline__ void generic_CREATE (arith_t &arith, bn_t &gas_limit, bn_t &gas_used, uint32_t &error_code, stack_t &stack, message_t &message, memory_t &memory, touch_state_t &touch_state, evm_t &evm, message_t &new_message, bn_t &args_offset, bn_t &args_size, return_data_t &return_data)
Make a generic create call.
- Parameters
arith – [in] The arithmetical environment.
gas_limit – [in] The gas limit.
gas_used – [inout] The gas used.
error_code – [out] The error code.
stack – [inout] The stack.
message – [in] The current context message call.
memory – [in] The memory.
touch_state – [in] The touch state.
evm – [out] The evm.
new_message – [in] The new message call.
args_offset – [in] The message offset for init code.
args_size – [in] The message size for init code.
return_data – [out] The return data.
- static inline __host__ __device__ __forceinline__ void operation_STOP (return_data_t &return_data, uint32_t &error_code)
The STOP operation.
- Parameters
return_data – [out] The return data.
error_code – [out] The error code.
- static inline __host__ __device__ __forceinline__ void operation_CREATE (arith_t &arith, bn_t &gas_limit, bn_t &gas_used, uint32_t &error_code, uint32_t &pc, stack_t &stack, message_t &message, memory_t &memory, touch_state_t &touch_state, uint8_t &opcode, keccak_t &keccak, evm_t &evm, return_data_t &return_data)
The CREATE operation.
- Parameters
arith – [in] The arithmetical environment.
gas_limit – [in] The gas limit.
gas_used – [inout] The gas used.
error_code – [out] The error code.
pc – [inout] The program counter.
stack – [inout] The stack.
message – [in] The current context message call.
memory – [in] The memory.
touch_state – [in] The touch state.
opcode – [in] The operation opcode
keccak – [in] The keccak object.
evm – [out] The evm.
return_data – [out] The return data.
- static inline __host__ __device__ __forceinline__ void operation_CALL (arith_t &arith, bn_t &gas_limit, bn_t &gas_used, uint32_t &error_code, uint32_t &pc, stack_t &stack, message_t &message, memory_t &memory, touch_state_t &touch_state, uint8_t &opcode, evm_t &evm, return_data_t &return_data)
The CALL operation.
- Parameters
arith – [in] The arithmetical environment.
gas_limit – [in] The gas limit.
gas_used – [inout] The gas used.
error_code – [out] The error code.
pc – [inout] The program counter.
stack – [inout] The stack.
message – [in] The current context message call.
memory – [in] The memory.
touch_state – [inout] The touch state.
opcode – [in] The operation opcode
evm – [out] The evm.
return_data – [out] The return data.
- static inline __host__ __device__ __forceinline__ void operation_CALLCODE (arith_t &arith, bn_t &gas_limit, bn_t &gas_used, uint32_t &error_code, uint32_t &pc, stack_t &stack, message_t &message, memory_t &memory, touch_state_t &touch_state, uint8_t &opcode, evm_t &evm, return_data_t &return_data)
The CALLCODE operation.
- Parameters
arith – [in] The arithmetical environment.
gas_limit – [in] The gas limit.
gas_used – [inout] The gas used.
error_code – [out] The error code.
pc – [inout] The program counter.
stack – [inout] The stack.
message – [in] The current context message call.
memory – [in] The memory.
touch_state – [inout] The touch state.
opcode – [in] The operation opcode
evm – [out] The evm.
return_data – [out] The return data.
- static inline __host__ __device__ __forceinline__ void operation_RETURN (arith_t &arith, bn_t &gas_limit, bn_t &gas_used, uint32_t &error_code, stack_t &stack, memory_t &memory, return_data_t &return_data)
The RETURN operation.
- Parameters
arith – [in] The arithmetical environment.
gas_limit – [in] The gas limit.
gas_used – [inout] The gas used.
error_code – [out] The error code.
stack – [in] The stack.
memory – [in] The memory.
return_data – [out] The return data.
- static inline __host__ __device__ __forceinline__ void operation_DELEGATECALL (arith_t &arith, bn_t &gas_limit, bn_t &gas_used, uint32_t &error_code, uint32_t &pc, stack_t &stack, message_t &message, memory_t &memory, touch_state_t &touch_state, uint8_t &opcode, evm_t &evm, return_data_t &return_data)
The DELEGATECALL operation.
- Parameters
arith – [in] The arithmetical environment.
gas_limit – [in] The gas limit.
gas_used – [inout] The gas used.
error_code – [out] The error code.
pc – [inout] The program counter.
stack – [inout] The stack.
message – [in] The current context message call.
memory – [in] The memory.
touch_state – [inout] The touch state.
opcode – [in] The operation opcode
evm – [out] The evm.
return_data – [out] The return data.
- static inline __host__ __device__ __forceinline__ void operation_CREATE2 (arith_t &arith, bn_t &gas_limit, bn_t &gas_used, uint32_t &error_code, uint32_t &pc, stack_t &stack, message_t &message, memory_t &memory, touch_state_t &touch_state, uint8_t &opcode, keccak_t &keccak, evm_t &evm, return_data_t &return_data)
The CREATE2 operation.
- Parameters
arith – [in] The arithmetical environment.
gas_limit – [in] The gas limit.
gas_used – [inout] The gas used.
error_code – [out] The error code.
pc – [inout] The program counter.
stack – [inout] The stack.
message – [in] The current context message call.
memory – [in] The memory.
touch_state – [inout] The touch state.
opcode – [in] The operation opcode
keccak – [in] The keccak object.
evm – [out] The evm.
return_data – [out] The return data.
- static inline __host__ __device__ __forceinline__ void operation_STATICCALL (arith_t &arith, bn_t &gas_limit, bn_t &gas_used, uint32_t &error_code, uint32_t &pc, stack_t &stack, message_t &message, memory_t &memory, touch_state_t &touch_state, uint8_t &opcode, evm_t &evm, return_data_t &return_data)
The STATICCALL operation.
- Parameters
arith – [in] The arithmetical environment.
gas_limit – [in] The gas limit.
gas_used – [inout] The gas used.
error_code – [out] The error code.
pc – [inout] The program counter.
stack – [inout] The stack.
message – [in] The current context message call.
memory – [in] The memory.
touch_state – [inout] The touch state.
opcode – [in] The operation opcode
evm – [out] The evm.
return_data – [out] The return data.
- static inline __host__ __device__ __forceinline__ void operation_REVERT (arith_t &arith, bn_t &gas_limit, bn_t &gas_used, uint32_t &error_code, stack_t &stack, memory_t &memory, return_data_t &return_data)
The REVERT operation.
- Parameters
arith – [in] The arithmetical environment.
gas_limit – [in] The gas limit.
gas_used – [inout] The gas used.
error_code – [out] The error code.
stack – [in] The stack.
memory – [in] The memory.
return_data – [out] The return data.
- static inline __host__ __device__ __forceinline__ void operation_INVALID (uint32_t &error_code)
The INVALID operation.
- Parameters
error_code – [out] The error code.
- static inline __host__ __device__ __forceinline__ void operation_SELFDESTRUCT (arith_t &arith, bn_t &gas_limit, bn_t &gas_used, uint32_t &error_code, uint32_t &pc, stack_t &stack, message_t &message, touch_state_t &touch_state, return_data_t &return_data, evm_t &evm)
The SELFDESTRUCT operation.
- Parameters
arith – [in] The arithmetical environment.
gas_limit – [in] The gas limit.
gas_used – [inout] The gas used.
error_code – [out] The error code.
pc – [inout] The program counter.
stack – [inout] The stack.
message – [in] The current context message call.
touch_state – [inout] The touch state.
return_data – [out] The return data.
evm – [out] The evm.