mirror of
https://github.com/GOSTSec/ccminer
synced 2025-01-13 16:27:57 +00:00
neoscrypt: adapt for visual studio compat
todo: fix SM 3.0 builds
This commit is contained in:
parent
65c1d787e7
commit
15584e4f05
@ -275,7 +275,7 @@ Options:\n\
|
||||
lyra2 VertCoin\n\
|
||||
mjollnir Mjollnircoin\n\
|
||||
myr-gr Myriad-Groestl\n\
|
||||
neoscrypt use to mine FeatherCoin\n\
|
||||
neoscrypt FeatherCoin, Phoenix, UFO...\n\
|
||||
nist5 NIST5 (TalkCoin)\n\
|
||||
penta Pentablake hash (5x Blake 512)\n\
|
||||
pluck SupCoin\n\
|
||||
|
@ -179,7 +179,7 @@
|
||||
<MaxRegCount>80</MaxRegCount>
|
||||
<PtxAsOptionV>true</PtxAsOptionV>
|
||||
<Keep>true</Keep>
|
||||
<CodeGeneration>compute_30,sm_30;compute_35,sm_35;compute_50,sm_50;compute_52,sm_52</CodeGeneration>
|
||||
<CodeGeneration>compute_35,sm_35;compute_50,sm_50;compute_52,sm_52</CodeGeneration>
|
||||
<AdditionalOptions>--ptxas-options="-O2" %(AdditionalOptions)</AdditionalOptions>
|
||||
<Defines>
|
||||
</Defines>
|
||||
@ -536,4 +536,4 @@
|
||||
<Target Name="AfterClean">
|
||||
<Delete Files="@(FilesToCopy->'$(OutDir)%(Filename)%(Extension)')" TreatErrorsAsWarnings="true" />
|
||||
</Target>
|
||||
</Project>
|
||||
</Project>
|
@ -231,6 +231,9 @@
|
||||
<ClCompile Include="scrypt-jane.cpp">
|
||||
<Filter>Source Files\CUDA\scrypt</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="neoscrypt\neoscrypt.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="compat.h">
|
||||
@ -619,6 +622,12 @@
|
||||
<CudaCompile Include="scrypt\titan_kernel.cu">
|
||||
<Filter>Source Files\CUDA\scrypt</Filter>
|
||||
</CudaCompile>
|
||||
<CudaCompile Include="neoscrypt\cuda_neoscrypt.cu">
|
||||
<Filter>Source Files\CUDA</Filter>
|
||||
</CudaCompile>
|
||||
<CudaCompile Include="neoscrypt.cu">
|
||||
<Filter>Source Files</Filter>
|
||||
</CudaCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Image Include="res\ccminer.ico">
|
||||
|
2
miner.h
2
miner.h
@ -692,7 +692,7 @@ unsigned int jackpothash(void *state, const void *input);
|
||||
void groestlhash(void *state, const void *input);
|
||||
void lyra2_hash(void *state, const void *input);
|
||||
void myriadhash(void *state, const void *input);
|
||||
void neoscrypt(const uchar *password, uchar *output, uint profile);
|
||||
void neoscrypt(uchar *output, const uchar *input, uint32_t profile);
|
||||
void nist5hash(void *state, const void *input);
|
||||
void pentablakehash(void *output, const void *input);
|
||||
void pluckhash(uint32_t *hash, const uint32_t *data, uchar *hashbuffer, const int N);
|
||||
|
11
neoscrypt.cu
11
neoscrypt.cu
@ -16,7 +16,6 @@ extern uint32_t neoscrypt_cpu_hash_k4(int stratum, int thr_id, uint32_t threads,
|
||||
int scanhash_neoscrypt(int thr_id, uint32_t *pdata, const uint32_t *ptarget, uint32_t max_nonce, unsigned long *hashes_done)
|
||||
{
|
||||
const uint32_t first_nonce = pdata[19];
|
||||
const int stratum = have_stratum;
|
||||
|
||||
if (opt_benchmark)
|
||||
((uint32_t*)ptarget)[7] = 0x0000ff;
|
||||
@ -41,7 +40,7 @@ int scanhash_neoscrypt(int thr_id, uint32_t *pdata, const uint32_t *ptarget, uin
|
||||
}
|
||||
|
||||
uint32_t endiandata[20];
|
||||
if (stratum) {
|
||||
if (have_stratum) {
|
||||
for (int k = 0; k < 20; k++)
|
||||
be32enc(&endiandata[k], ((uint32_t*)pdata)[k]);
|
||||
} else {
|
||||
@ -52,19 +51,19 @@ int scanhash_neoscrypt(int thr_id, uint32_t *pdata, const uint32_t *ptarget, uin
|
||||
neoscrypt_setBlockTarget(endiandata,ptarget);
|
||||
|
||||
do {
|
||||
uint32_t foundNonce = neoscrypt_cpu_hash_k4(stratum, thr_id, throughput, pdata[19], 0);
|
||||
uint32_t foundNonce = neoscrypt_cpu_hash_k4((int)have_stratum, thr_id, throughput, pdata[19], 0);
|
||||
if (foundNonce != UINT32_MAX)
|
||||
{
|
||||
uint32_t _ALIGN(64) vhash64[8];
|
||||
|
||||
*hashes_done = pdata[19] - first_nonce + 1;
|
||||
|
||||
if (stratum) {
|
||||
if (have_stratum) {
|
||||
be32enc(&endiandata[19], foundNonce);
|
||||
} else {
|
||||
endiandata[19] = foundNonce;
|
||||
}
|
||||
neoscrypt((uchar*) endiandata, (uchar*)vhash64, 0x80000620);
|
||||
neoscrypt((uchar*)vhash64, (uchar*) endiandata, 0x80000620U);
|
||||
|
||||
if (vhash64[7] <= ptarget[7] && fulltest(vhash64, ptarget)) {
|
||||
pdata[19] = foundNonce;
|
||||
@ -76,7 +75,7 @@ int scanhash_neoscrypt(int thr_id, uint32_t *pdata, const uint32_t *ptarget, uin
|
||||
|
||||
pdata[19] += throughput;
|
||||
|
||||
} while (!work_restart[thr_id].restart && ((uint64_t)max_nonce > ((uint64_t)(pdata[19]) + (uint64_t)throughput)));
|
||||
} while (!work_restart[thr_id].restart && (max_nonce > ((uint64_t)(pdata[19]) + throughput)));
|
||||
|
||||
*hashes_done = pdata[19] - first_nonce + 1;
|
||||
return 0;
|
||||
|
@ -77,8 +77,8 @@ __constant__ uint32_t BLAKE2S_SIGMA[10][16];
|
||||
}
|
||||
#endif
|
||||
|
||||
#define ROTL32(x, n) ((x) << (n)) | ((x) >> (32 - (n)))
|
||||
#define ROTR32(x, n) (((x) >> (n)) | ((x) << (32 - (n))))
|
||||
//#define ROTL32(x, n) ((x) << (n)) | ((x) >> (32 - (n)))
|
||||
//#define ROTR32(x, n) (((x) >> (n)) | ((x) << (32 - (n))))
|
||||
|
||||
#define BLAKE_Ghost(idx0, idx1, a, b, c, d, key) { \
|
||||
idx = BLAKE2S_SIGMA_host[idx0][idx1]; a += key[idx]; \
|
||||
|
@ -881,7 +881,7 @@ static void neoscrypt_blkmix(uint *X, uint *Y, uint r, uint mixmode)
|
||||
* .....
|
||||
* 11110 = N of 2147483648;
|
||||
* profile bits 30 to 13 are reserved */
|
||||
void neoscrypt(const uchar *password, uchar *output, uint profile)
|
||||
void neoscrypt(unsigned char *output, const unsigned char *input, unsigned int profile)
|
||||
{
|
||||
uint N = 128, r = 2, dblmix = 1, mixmode = 0x14, stack_align = 0x40;
|
||||
uint kdf, i, j;
|
||||
@ -916,11 +916,11 @@ void neoscrypt(const uchar *password, uchar *output, uint profile)
|
||||
|
||||
default:
|
||||
case(0x0):
|
||||
neoscrypt_fastkdf(password, 80, password, 80, 32, (uchar *) X, r * 2 * SCRYPT_BLOCK_SIZE);
|
||||
neoscrypt_fastkdf(input, 80, input, 80, 32, (uchar *) X, r * 2 * SCRYPT_BLOCK_SIZE);
|
||||
break;
|
||||
|
||||
case(0x1):
|
||||
neoscrypt_pbkdf2_sha256(password, 80, password, 80, 1, (uchar *) X, r * 2 * SCRYPT_BLOCK_SIZE);
|
||||
neoscrypt_pbkdf2_sha256(input, 80, input, 80, 1, (uchar *) X, r * 2 * SCRYPT_BLOCK_SIZE);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -981,11 +981,11 @@ void neoscrypt(const uchar *password, uchar *output, uint profile)
|
||||
|
||||
default:
|
||||
case(0x0):
|
||||
neoscrypt_fastkdf(password, 80, (uchar *) X, r * 2 * SCRYPT_BLOCK_SIZE, 32, output, 32);
|
||||
neoscrypt_fastkdf(input, 80, (uchar *) X, r * 2 * SCRYPT_BLOCK_SIZE, 32, output, 32);
|
||||
break;
|
||||
|
||||
case(0x1):
|
||||
neoscrypt_pbkdf2_sha256(password, 80, (uchar *) X, r * 2 * SCRYPT_BLOCK_SIZE, 1, output, 32);
|
||||
neoscrypt_pbkdf2_sha256(input, 80, (uchar *) X, r * 2 * SCRYPT_BLOCK_SIZE, 1, output, 32);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
void neoscrypt(const unsigned char *input, unsigned char *output, unsigned int profile);
|
||||
void neoscrypt(unsigned char *output, const unsigned char *input, unsigned int profile);
|
||||
|
||||
#if (__cplusplus)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user