63static_assert(std::is_standard_layout<randomx_dataset>(),
"randomx_dataset must be a standard-layout struct");
66#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) && defined(_DEBUG)
68#define STR(x) TO_STR(x)
69#pragma message ( __FILE__ "(" STR(__LINE__) ") warning: check std::is_standard_layout<randomx_cache>() is disabled for Debug configuration. JIT mode will crash." )
73static_assert(std::is_standard_layout<randomx_cache>(),
"randomx_cache must be a standard-layout struct");
80 template<
class Allocator>
82 if (dataset->
memory !=
nullptr)
86 template<
class Allocator>
void randomx_argon2_fill_segment_ref(const argon2_instance_t *instance, argon2_position_t position)
Definition argon2_ref.c:110
randomx_argon2_impl * randomx_argon2_impl_ssse3()
Definition argon2_ssse3.c:48
void randomx_argon2_impl(const argon2_instance_t *instance, argon2_position_t position)
Definition argon2.h:238
randomx_argon2_impl * randomx_argon2_impl_avx2()
Definition argon2_avx2.c:44
Definition superscalar_program.hpp:37
#define RANDOMX_CACHE_ACCESSES
Definition configuration.h:44
static int flags
Definition mdb_load.c:31
Definition allocator.cpp:35
randomx_argon2_impl * selectArgonImpl(randomx_flags flags)
Definition dataset.hpp:94
void initCache(randomx_cache *cache, const void *key, size_t keySize)
Definition dataset.cpp:71
void deallocDataset(randomx_dataset *dataset)
Definition dataset.hpp:81
void initDataset(randomx_cache *cache, uint8_t *dataset, uint32_t startItem, uint32_t endItem)
Definition dataset.cpp:192
constexpr uint64_t DatasetSize
Definition common.hpp:86
JitCompilerFallback JitCompiler
Definition common.hpp:135
void deallocCache(randomx_cache *cache)
Definition dataset.cpp:61
void DatasetDeallocFunc(randomx_dataset *)
Definition common.hpp:191
AlignedAllocator< CacheLineSize > DefaultAllocator
Definition dataset.hpp:78
void initDatasetItem(randomx_cache *cache, uint8_t *out, uint64_t itemNumber)
Definition dataset.cpp:164
void DatasetInitFunc(randomx_cache *cache, uint8_t *dataset, uint32_t startBlock, uint32_t endBlock)
Definition common.hpp:189
void CacheDeallocFunc(randomx_cache *)
Definition common.hpp:192
void CacheInitializeFunc(randomx_cache *, const void *, size_t)
Definition common.hpp:193
void initCacheCompile(randomx_cache *cache, const void *key, size_t keySize)
Definition dataset.cpp:142
randomx_flags
Definition randomx.h:42
@ RANDOMX_FLAG_ARGON2_SSSE3
Definition randomx.h:49
@ RANDOMX_FLAG_ARGON2_AVX2
Definition randomx.h:50
unsigned int uint32_t
Definition stdint.h:126
unsigned char uint8_t
Definition stdint.h:124
unsigned __int64 uint64_t
Definition stdint.h:136
Definition allocator.hpp:36
Definition dataset.hpp:46
randomx_argon2_impl * argonImpl
Definition dataset.hpp:55
randomx::SuperscalarProgram programs[RANDOMX_CACHE_ACCESSES]
Definition dataset.hpp:52
std::vector< uint64_t > reciprocalCache
Definition dataset.hpp:53
randomx::CacheInitializeFunc * initialize
Definition dataset.hpp:50
uint8_t * memory
Definition dataset.hpp:47
bool isInitialized()
Definition dataset.hpp:57
randomx::DatasetInitFunc * datasetInit
Definition dataset.hpp:51
randomx::CacheDeallocFunc * dealloc
Definition dataset.hpp:48
randomx::JitCompiler * jit
Definition dataset.hpp:49
std::string cacheKey
Definition dataset.hpp:54
Definition dataset.hpp:40
randomx::DatasetDeallocFunc * dealloc
Definition dataset.hpp:42
uint8_t * memory
Definition dataset.hpp:41
randomx_cache * cache
Definition tests.cpp:19