Added support for "cn/msr" also known as "cn-fast".
This commit is contained in:
parent
974cb4162a
commit
8908c2c027
10 changed files with 136 additions and 75 deletions
|
@ -50,36 +50,23 @@ MultiWorker<N>::~MultiWorker()
|
|||
template<size_t N>
|
||||
bool MultiWorker<N>::selfTest()
|
||||
{
|
||||
if (m_thread->fn(xmrig::VARIANT_0) == nullptr) {
|
||||
return false;
|
||||
}
|
||||
|
||||
m_thread->fn(xmrig::VARIANT_0)(test_input, 76, m_hash, m_ctx);
|
||||
|
||||
if (m_thread->algorithm() == xmrig::CRYPTONIGHT && memcmp(m_hash, test_output_v0, sizeof m_hash) == 0) {
|
||||
m_thread->fn(xmrig::VARIANT_1)(test_input, 76, m_hash, m_ctx);
|
||||
if (memcmp(m_hash, test_output_v1, sizeof m_hash) != 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
m_thread->fn(xmrig::VARIANT_XTL)(test_input, 76, m_hash, m_ctx);
|
||||
return memcmp(m_hash, test_output_xtl, sizeof m_hash) == 0;
|
||||
if (m_thread->algorithm() == xmrig::CRYPTONIGHT) {
|
||||
return verify(xmrig::VARIANT_0, test_output_v0) &&
|
||||
verify(xmrig::VARIANT_1, test_output_v1) &&
|
||||
verify(xmrig::VARIANT_XTL, test_output_xtl) &&
|
||||
verify(xmrig::VARIANT_MSR, test_output_msr);
|
||||
}
|
||||
|
||||
# ifndef XMRIG_NO_AEON
|
||||
if (m_thread->algorithm() == xmrig::CRYPTONIGHT_LITE && memcmp(m_hash, test_output_v0_lite, sizeof m_hash) == 0) {
|
||||
m_thread->fn(xmrig::VARIANT_1)(test_input, 76, m_hash, m_ctx);
|
||||
if (memcmp(m_hash, test_output_v1_lite, sizeof m_hash) != 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
m_thread->fn(xmrig::VARIANT_IPBC)(test_input, 76, m_hash, m_ctx);
|
||||
return memcmp(m_hash, test_output_ipbc_lite, sizeof m_hash) == 0;
|
||||
if (m_thread->algorithm() == xmrig::CRYPTONIGHT_LITE) {
|
||||
return verify(xmrig::VARIANT_0, test_output_v0_lite) &&
|
||||
verify(xmrig::VARIANT_1, test_output_v1_lite) &&
|
||||
verify(xmrig::VARIANT_IPBC, test_output_ipbc_lite);
|
||||
}
|
||||
# endif
|
||||
|
||||
# ifndef XMRIG_NO_SUMO
|
||||
return m_thread->algorithm() == xmrig::CRYPTONIGHT_HEAVY && memcmp(m_hash, test_output_heavy, sizeof m_hash) == 0;
|
||||
return m_thread->algorithm() == xmrig::CRYPTONIGHT_HEAVY && verify(xmrig::VARIANT_0, test_output_heavy);
|
||||
# else
|
||||
return false;
|
||||
# endif
|
||||
|
@ -140,6 +127,20 @@ bool MultiWorker<N>::resume(const Job &job)
|
|||
}
|
||||
|
||||
|
||||
template<size_t N>
|
||||
bool MultiWorker<N>::verify(xmrig::Variant variant, const uint8_t *referenceValue)
|
||||
{
|
||||
|
||||
xmrig::CpuThread::cn_hash_fun func = m_thread->fn(variant);
|
||||
if (!func) {
|
||||
return false;
|
||||
}
|
||||
|
||||
func(test_input, 76, m_hash, m_ctx);
|
||||
return memcmp(m_hash, referenceValue, sizeof m_hash) == 0;
|
||||
}
|
||||
|
||||
|
||||
template<size_t N>
|
||||
void MultiWorker<N>::consumeJob()
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue