1
0
mirror of https://github.com/xmrig/xmrig.git synced 2025-12-25 13:42:54 -05:00

Merge xmrig v6.11.0 into master

This commit is contained in:
MoneroOcean
2021-04-06 15:17:08 +00:00
41 changed files with 760 additions and 275 deletions

View File

@@ -190,8 +190,8 @@
r##part[1] = static_cast<uint32_t>(h##part[12] >> 32); \
r##part[2] = static_cast<uint32_t>(h##part[13]); \
r##part[3] = static_cast<uint32_t>(h##part[13] >> 32); \
} \
v4_random_math_init<ALGO>(code##part, height);
v4_random_math_init<ALGO>(code##part, height); \
}
#define VARIANT4_RANDOM_MATH(part, al, ah, cl, bx0, bx1) \
if (props.isR()) { \

View File

@@ -743,8 +743,18 @@ inline void cryptonight_single_hash(const uint8_t *__restrict__ input, size_t si
# ifdef XMRIG_ALGO_CN_HEAVY
if (props.isHeavy()) {
int64_t n = ((int64_t*)&l0[interleaved_index<interleave>(idx0 & MASK)])[0];
int32_t d = ((int32_t*)&l0[interleaved_index<interleave>(idx0 & MASK)])[2];
int64_t q = n / (d | 0x5);
int64_t d = ((int32_t*)&l0[interleaved_index<interleave>(idx0 & MASK)])[2];
int64_t d5;
# if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 8))
d5 = d | 5;
# else
// Workaround for stupid GCC which converts to 32 bit before doing "| 5" and then converts back to 64 bit
asm("mov %1, %0\n\tor $5, %0" : "=r"(d5) : "r"(d));
# endif
int64_t q = n / d5;
((int64_t*)&l0[interleaved_index<interleave>(idx0 & MASK)])[0] = n ^ q;

View File

@@ -343,7 +343,7 @@ typedef union ALIGN_STRUCT(16) SIMDVec {
// Older gcc does not define vld1q_u8_x4 type
#if defined(__GNUC__) && !defined(__clang__) && \
((__GNUC__ == 10 && (__GNUC_MINOR__ <= 1)) || \
((__GNUC__ == 10 && (__GNUC_MINOR__ <= 2)) || \
(__GNUC__ == 9 && (__GNUC_MINOR__ <= 3)) || \
(__GNUC__ == 8 && (__GNUC_MINOR__ <= 4)) || __GNUC__ <= 7)
FORCE_INLINE uint8x16x4_t _sse2neon_vld1q_u8_x4(const uint8_t *p)