Monero
Loading...
Searching...
No Matches
randomx::InterpretedVm< Allocator, softAes > Class Template Reference

#include <vm_interpreted.hpp>

Inheritance diagram for randomx::InterpretedVm< Allocator, softAes >:
Collaboration diagram for randomx::InterpretedVm< Allocator, softAes >:

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()

◆ 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: