Browse Source

Mark hash success as unlikely, using __builtin_expect() intrinsic

nfactor-troky
Jeff Garzik 13 years ago committed by Jeff Garzik
parent
commit
1083e15c47
  1. 8
      miner.h
  2. 2
      sha256_4way.c
  3. 4
      sha256_cryptopp.c
  4. 2
      sha256_generic.c
  5. 2
      sha256_via.c

8
miner.h

@ -21,6 +21,14 @@ @@ -21,6 +21,14 @@
#include <byteswap.h>
#endif
#if defined(__GNUC__) && (__GNUC__ > 2) && defined(__OPTIMIZE__)
#undef unlikely
#define unlikely(expr) (__builtin_expect((expr), 0))
#else
#undef unlikely
#define unlikely(expr) (expr)
#endif
#if defined(__i386__)
#define WANT_CRYPTOPP_ASM32
#endif

2
sha256_4way.c

@ -118,7 +118,7 @@ unsigned int ScanHash_4WaySSE2(const unsigned char *pmidstate, unsigned char *pd @@ -118,7 +118,7 @@ unsigned int ScanHash_4WaySSE2(const unsigned char *pmidstate, unsigned char *pd
for (j = 0; j < NPAR; j++)
{
if (thash[7][j] == 0)
if (unlikely(thash[7][j] == 0))
{
int i;

4
sha256_cryptopp.c

@ -110,7 +110,7 @@ bool scanhash_cryptopp(const unsigned char *midstate, unsigned char *data, @@ -110,7 +110,7 @@ bool scanhash_cryptopp(const unsigned char *midstate, unsigned char *data,
stat_ctr++;
if ((hash32[7] == 0) && fulltest(hash, target)) {
if (unlikely((hash32[7] == 0) && fulltest(hash, target))) {
*hashes_done = stat_ctr;
return true;
}
@ -592,7 +592,7 @@ bool scanhash_asm32(const unsigned char *midstate, unsigned char *data, @@ -592,7 +592,7 @@ bool scanhash_asm32(const unsigned char *midstate, unsigned char *data,
stat_ctr++;
if ((hash32[7] == 0) && fulltest(hash, target)) {
if (unlikely((hash32[7] == 0) && fulltest(hash, target))) {
fulltest(hash, target);
*hashes_done = stat_ctr;

2
sha256_generic.c

@ -256,7 +256,7 @@ bool scanhash_c(const unsigned char *midstate, unsigned char *data, @@ -256,7 +256,7 @@ bool scanhash_c(const unsigned char *midstate, unsigned char *data,
stat_ctr++;
if ((hash32[7] == 0) && fulltest(hash, target)) {
if (unlikely((hash32[7] == 0) && fulltest(hash, target))) {
*hashes_done = stat_ctr;
return true;
}

2
sha256_via.c

@ -57,7 +57,7 @@ bool scanhash_via(unsigned char *data_inout, @@ -57,7 +57,7 @@ bool scanhash_via(unsigned char *data_inout,
stat_ctr++;
if ((hash32[7] == 0) && fulltest(tmp_hash, target)) {
if (unlikely((hash32[7] == 0) && fulltest(tmp_hash, target))) {
/* swap nonce'd data back into original storage area;
* TODO: only swap back the nonce, rather than all data
*/

Loading…
Cancel
Save