Native load from the cache

debug
tevador 5 years ago
parent 32009fb02c
commit dbd373839d

@ -60,6 +60,12 @@ static FORCE_INLINE uint64_t load64(const void *src) {
#endif
}
static FORCE_INLINE uint64_t load64np(const void *src) {
uint64_t w;
memcpy(&w, src, sizeof w);
return w;
}
static FORCE_INLINE void store32(void *dst, uint32_t w) {
#if defined(NATIVE_LITTLE_ENDIAN)
memcpy(dst, &w, sizeof w);

@ -57,14 +57,14 @@ namespace RandomX {
}
static FORCE_INLINE void mixCache(uint8_t* mixBlock, uint64_t& c0, uint64_t& c1, uint64_t& c2, uint64_t& c3, uint64_t& c4, uint64_t& c5, uint64_t& c6, uint64_t& c7) {
c0 ^= load64(mixBlock + 0);
c1 ^= load64(mixBlock + 8);
c2 ^= load64(mixBlock + 16);
c3 ^= load64(mixBlock + 24);
c4 ^= load64(mixBlock + 32);
c5 ^= load64(mixBlock + 40);
c6 ^= load64(mixBlock + 48);
c7 ^= load64(mixBlock + 56);
c0 ^= load64np(mixBlock + 0);
c1 ^= load64np(mixBlock + 8);
c2 ^= load64np(mixBlock + 16);
c3 ^= load64np(mixBlock + 24);
c4 ^= load64np(mixBlock + 32);
c5 ^= load64np(mixBlock + 40);
c6 ^= load64np(mixBlock + 48);
c7 ^= load64np(mixBlock + 56);
}
void initBlock(const Cache& cache, uint8_t* out, uint64_t blockNumber, unsigned iterations) {

Loading…
Cancel
Save