Monero
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
randomx::InterpretedVm< Allocator, softAes > Class Template Reference

#include <vm_interpreted.hpp>

Inheritance diagram for randomx::InterpretedVm< Allocator, softAes >:
Inheritance graph
[legend]
Collaboration diagram for randomx::InterpretedVm< Allocator, softAes >:
Collaboration graph
[legend]

Public Member Functions

void * operator new (size_t size)
 
void operator delete (void *ptr)
 
void run (void *seed) override
 
void setDataset (randomx_dataset *dataset) override
 
- Public Member Functions inherited from randomx::VmBase< Allocator, softAes >
 ~VmBase () override
 
void allocate () override
 
void initScratchpad (void *seed) override
 
void getFinalResult (void *out, size_t outSize) override
 
void hashAndFill (void *out, size_t outSize, uint64_t *fill_state) override
 
- Public Member Functions inherited from randomx_vm
virtual ~randomx_vm ()=0
 
virtual void setCache (randomx_cache *cache)
 
void resetRoundingMode ()
 
randomx::RegisterFilegetRegisterFile ()
 
const void * getScratchpad ()
 
const randomx::ProgramgetProgram ()
 
const uint8_tgetMemory () const
 
- Public Member Functions inherited from randomx::BytecodeMachine
void beginCompilation (NativeRegisterFile &regFile)
 
void compileProgram (Program &program, InstructionByteCode bytecode[RANDOMX_PROGRAM_SIZE], NativeRegisterFile &regFile)
 
void compileInstruction (RANDOMX_GEN_ARGS)
 

Protected Member Functions

virtual void datasetRead (uint64_t blockNumber, int_reg_t(&r)[RegistersCount])
 
virtual void datasetPrefetch (uint64_t blockNumber)
 
- Protected Member Functions inherited from randomx::VmBase< Allocator, softAes >
void generateProgram (void *seed)
 
- Protected Member Functions inherited from randomx_vm
void initialize ()
 

Private Member Functions

void execute ()
 

Private Attributes

InstructionByteCode bytecode [RANDOMX_PROGRAM_SIZE]
 

Additional Inherited Members

- Static Public Member Functions inherited from randomx::BytecodeMachine
static void executeBytecode (InstructionByteCode bytecode[RANDOMX_PROGRAM_SIZE], uint8_t *scratchpad, ProgramConfiguration &config)
 
static void executeInstruction (RANDOMX_EXE_ARGS)
 
static void exe_IADD_RS (RANDOMX_EXE_ARGS)
 
static void exe_IADD_M (RANDOMX_EXE_ARGS)
 
static void exe_ISUB_R (RANDOMX_EXE_ARGS)
 
static void exe_ISUB_M (RANDOMX_EXE_ARGS)
 
static void exe_IMUL_R (RANDOMX_EXE_ARGS)
 
static void exe_IMUL_M (RANDOMX_EXE_ARGS)
 
static void exe_IMULH_R (RANDOMX_EXE_ARGS)
 
static void exe_IMULH_M (RANDOMX_EXE_ARGS)
 
static void exe_ISMULH_R (RANDOMX_EXE_ARGS)
 
static void exe_ISMULH_M (RANDOMX_EXE_ARGS)
 
static void exe_INEG_R (RANDOMX_EXE_ARGS)
 
static void exe_IXOR_R (RANDOMX_EXE_ARGS)
 
static void exe_IXOR_M (RANDOMX_EXE_ARGS)
 
static void exe_IROR_R (RANDOMX_EXE_ARGS)
 
static void exe_IROL_R (RANDOMX_EXE_ARGS)
 
static void exe_ISWAP_R (RANDOMX_EXE_ARGS)
 
static void exe_FSWAP_R (RANDOMX_EXE_ARGS)
 
static void exe_FADD_R (RANDOMX_EXE_ARGS)
 
static void exe_FADD_M (RANDOMX_EXE_ARGS)
 
static void exe_FSUB_R (RANDOMX_EXE_ARGS)
 
static void exe_FSUB_M (RANDOMX_EXE_ARGS)
 
static void exe_FSCAL_R (RANDOMX_EXE_ARGS)
 
static void exe_FMUL_R (RANDOMX_EXE_ARGS)
 
static void exe_FDIV_M (RANDOMX_EXE_ARGS)
 
static void exe_FSQRT_R (RANDOMX_EXE_ARGS)
 
static void exe_CBRANCH (RANDOMX_EXE_ARGS)
 
static void exe_CFROUND (RANDOMX_EXE_ARGS)
 
static void exe_ISTORE (RANDOMX_EXE_ARGS)
 
- Public Attributes inherited from randomx_vm
std::string cacheKey
 
uint64_t tempHash [8]
 
- Static Protected Member Functions inherited from randomx::BytecodeMachine
static rx_vec_f128 maskRegisterExponentMantissa (ProgramConfiguration &config, rx_vec_f128 x)
 
- Protected Attributes inherited from randomx_vm
randomx::Program program
 
randomx::RegisterFile reg
 
randomx::ProgramConfiguration config
 
randomx::MemoryRegisters mem
 
uint8_tscratchpad = nullptr
 
union { 
 
   randomx_cache *   cachePtr = nullptr 
 
   randomx_dataset *   datasetPtr 
 
};  
 
uint64_t datasetOffset
 

Member Function Documentation

◆ datasetPrefetch()

template<class Allocator , bool softAes>
void randomx::InterpretedVm< Allocator, softAes >::datasetPrefetch ( uint64_t blockNumber)
protectedvirtual

◆ datasetRead()

template<class Allocator , bool softAes>
void randomx::InterpretedVm< Allocator, softAes >::datasetRead ( uint64_t blockNumber,
int_reg_t(&) r[RegistersCount] )
protectedvirtual

◆ execute()

template<class Allocator , bool softAes>
void randomx::InterpretedVm< Allocator, softAes >::execute ( )
private

◆ operator delete()

template<class Allocator , bool softAes>
void randomx::InterpretedVm< Allocator, softAes >::operator delete ( void * ptr)
inline

◆ operator new()

template<class Allocator , bool softAes>
void * randomx::InterpretedVm< Allocator, softAes >::operator new ( size_t size)
inline

◆ run()

template<class Allocator , bool softAes>
void randomx::InterpretedVm< Allocator, softAes >::run ( void * seed)
overridevirtual

Implements randomx_vm.

◆ setDataset()

template<class Allocator , bool softAes>
void randomx::InterpretedVm< Allocator, softAes >::setDataset ( randomx_dataset * dataset)
overridevirtual

Reimplemented from randomx_vm.

Member Data Documentation

◆ bytecode

template<class Allocator , bool softAes>
InstructionByteCode randomx::InterpretedVm< Allocator, softAes >::bytecode[RANDOMX_PROGRAM_SIZE]
private

The documentation for this class was generated from the following files: