From bf5c2b01fdf4f00d25cbe34ae430f6fc73ccc679 Mon Sep 17 00:00:00 2001 From: tromp Date: Fri, 28 Oct 2016 12:17:34 -0400 Subject: [PATCH] add -x option; rename blake2b to blake2-asm --- Makefile | 20 ++++++------- {blake2b => blake2-asm}/Makefile | 0 {blake2b => blake2-asm}/asm/Makefile | 0 {blake2b => blake2-asm}/asm/data_blake2b.asm | 0 .../asm/macro_blake2b_avx1.asm | 0 .../asm/macro_blake2b_avx2.asm | 0 .../asm/proc_blake2_avx1.asm | 0 .../asm/proc_blake2_avx2.asm | 0 .../asm/proc_prepmidstate_avx1.asm | 0 .../asm/proc_prepmidstate_avx2.asm | 0 {blake2b => blake2-asm}/asm/zcblake2_avx1.asm | 0 {blake2b => blake2-asm}/asm/zcblake2_avx2.asm | 0 {blake2b => blake2-asm}/example_avx1.c | 0 {blake2b => blake2-asm}/example_avx2.c | 0 equi_miner.cpp | 29 ++++++++++++++++--- 15 files changed, 35 insertions(+), 14 deletions(-) rename {blake2b => blake2-asm}/Makefile (100%) rename {blake2b => blake2-asm}/asm/Makefile (100%) rename {blake2b => blake2-asm}/asm/data_blake2b.asm (100%) rename {blake2b => blake2-asm}/asm/macro_blake2b_avx1.asm (100%) rename {blake2b => blake2-asm}/asm/macro_blake2b_avx2.asm (100%) rename {blake2b => blake2-asm}/asm/proc_blake2_avx1.asm (100%) rename {blake2b => blake2-asm}/asm/proc_blake2_avx2.asm (100%) rename {blake2b => blake2-asm}/asm/proc_prepmidstate_avx1.asm (100%) rename {blake2b => blake2-asm}/asm/proc_prepmidstate_avx2.asm (100%) rename {blake2b => blake2-asm}/asm/zcblake2_avx1.asm (100%) rename {blake2b => blake2-asm}/asm/zcblake2_avx2.asm (100%) rename {blake2b => blake2-asm}/example_avx1.c (100%) rename {blake2b => blake2-asm}/example_avx2.c (100%) diff --git a/Makefile b/Makefile index 16050c5..ef83a07 100644 --- a/Makefile +++ b/Makefile @@ -31,14 +31,14 @@ eq1445avx2: equi.h equi_miner.h equi_miner.cpp blake2-avx2/blake2bip.c Makefile eq1445avx21: equi.h equi_miner.h equi_miner.cpp blake2-avx2/blake2bip.c Makefile $(GPP) -DUSE_AVX2 -DRESTBITS=4 -DWN=144 -DWK=5 equi_miner.cpp blake/blake2b.cpp blake2-avx2/blake2bip.c -o eq1445avx21 -dev: equi.h dev_miner.h dev_miner.cpp blake2b/asm/zcblake2_avx2.o Makefile - $(GPP) -DATOMIC dev_miner.cpp blake/blake2b.cpp blake2b/asm/zcblake2_avx2.o -o dev +dev: equi.h dev_miner.h dev_miner.cpp blake2-asm/asm/zcblake2_avx2.o Makefile + $(GPP) -DATOMIC dev_miner.cpp blake/blake2b.cpp blake2-asm/asm/zcblake2_avx2.o -o dev -dev1: equi.h dev_miner.h dev_miner.cpp blake2b/asm/zcblake2_avx2.o Makefile - $(GPP) dev_miner.cpp blake/blake2b.cpp blake2b/asm/zcblake2_avx2.o -o dev1 +dev1: equi.h dev_miner.h dev_miner.cpp blake2-asm/asm/zcblake2_avx2.o Makefile + $(GPP) dev_miner.cpp blake/blake2b.cpp blake2-asm/asm/zcblake2_avx2.o -o dev1 -hash1: equi.h dev_miner.h dev_miner.cpp blake2b/asm/zcblake2_avx2.o Makefile - $(GPP) -DHASHONLY dev_miner.cpp blake/blake2b.cpp blake2b/asm/zcblake2_avx2.o -o hash1 +hash1: equi.h dev_miner.h dev_miner.cpp blake2-asm/asm/zcblake2_avx2.o Makefile + $(GPP) -DHASHONLY dev_miner.cpp blake/blake2b.cpp blake2-asm/asm/zcblake2_avx2.o -o hash1 equidev: equi.h equi_dev_miner.h equi_dev_miner.cpp Makefile $(GPP) -DATOMIC equi_dev_miner.cpp blake/blake2b.cpp blake2-avx2/blake2bip.c -o equidev @@ -76,11 +76,11 @@ test1445: eq14451 verify1445 Makefile spark: equi1g time ./equi1g -blake2b/asm/zcblake2_avx1.o: - make -C blake2b +blake2-asm/asm/zcblake2_avx1.o: + make -C blake2-asm -blake2b/asm/zcblake2_avx2.o: - make -C blake2b +blake2-asm/asm/zcblake2_avx2.o: + make -C blake2-asm clean: make -C blake2b clean && rm -f dev dev1 equi equi1 eqavx2 eqavx21 equi1g eq1445 eq14451 eq1445avx2 eq1445avx21 eqcuda eqcuda1445 verify diff --git a/blake2b/Makefile b/blake2-asm/Makefile similarity index 100% rename from blake2b/Makefile rename to blake2-asm/Makefile diff --git a/blake2b/asm/Makefile b/blake2-asm/asm/Makefile similarity index 100% rename from blake2b/asm/Makefile rename to blake2-asm/asm/Makefile diff --git a/blake2b/asm/data_blake2b.asm b/blake2-asm/asm/data_blake2b.asm similarity index 100% rename from blake2b/asm/data_blake2b.asm rename to blake2-asm/asm/data_blake2b.asm diff --git a/blake2b/asm/macro_blake2b_avx1.asm b/blake2-asm/asm/macro_blake2b_avx1.asm similarity index 100% rename from blake2b/asm/macro_blake2b_avx1.asm rename to blake2-asm/asm/macro_blake2b_avx1.asm diff --git a/blake2b/asm/macro_blake2b_avx2.asm b/blake2-asm/asm/macro_blake2b_avx2.asm similarity index 100% rename from blake2b/asm/macro_blake2b_avx2.asm rename to blake2-asm/asm/macro_blake2b_avx2.asm diff --git a/blake2b/asm/proc_blake2_avx1.asm b/blake2-asm/asm/proc_blake2_avx1.asm similarity index 100% rename from blake2b/asm/proc_blake2_avx1.asm rename to blake2-asm/asm/proc_blake2_avx1.asm diff --git a/blake2b/asm/proc_blake2_avx2.asm b/blake2-asm/asm/proc_blake2_avx2.asm similarity index 100% rename from blake2b/asm/proc_blake2_avx2.asm rename to blake2-asm/asm/proc_blake2_avx2.asm diff --git a/blake2b/asm/proc_prepmidstate_avx1.asm b/blake2-asm/asm/proc_prepmidstate_avx1.asm similarity index 100% rename from blake2b/asm/proc_prepmidstate_avx1.asm rename to blake2-asm/asm/proc_prepmidstate_avx1.asm diff --git a/blake2b/asm/proc_prepmidstate_avx2.asm b/blake2-asm/asm/proc_prepmidstate_avx2.asm similarity index 100% rename from blake2b/asm/proc_prepmidstate_avx2.asm rename to blake2-asm/asm/proc_prepmidstate_avx2.asm diff --git a/blake2b/asm/zcblake2_avx1.asm b/blake2-asm/asm/zcblake2_avx1.asm similarity index 100% rename from blake2b/asm/zcblake2_avx1.asm rename to blake2-asm/asm/zcblake2_avx1.asm diff --git a/blake2b/asm/zcblake2_avx2.asm b/blake2-asm/asm/zcblake2_avx2.asm similarity index 100% rename from blake2b/asm/zcblake2_avx2.asm rename to blake2-asm/asm/zcblake2_avx2.asm diff --git a/blake2b/example_avx1.c b/blake2-asm/example_avx1.c similarity index 100% rename from blake2b/example_avx1.c rename to blake2-asm/example_avx1.c diff --git a/blake2b/example_avx2.c b/blake2-asm/example_avx2.c similarity index 100% rename from blake2b/example_avx2.c rename to blake2-asm/example_avx2.c diff --git a/equi_miner.cpp b/equi_miner.cpp index 0da3829..63a7f03 100644 --- a/equi_miner.cpp +++ b/equi_miner.cpp @@ -3,6 +3,17 @@ #include "equi_miner.h" #include +#include "ctype.h" + +int hextobyte(const char * x) { + u32 b = 0; + for (int i = 0; i < 2; i++) { + uchar c = tolower(x[i]); + assert(isxdigit(c)); + b = (b << 4) | (c - (c >= '0' && c <= '9' ? '0' : ('a' - 10))); + } + return b; +} int main(int argc, char **argv) { int nthreads = 1; @@ -10,8 +21,9 @@ int main(int argc, char **argv) { int range = 1; bool showsol = false; const char *header = ""; + const char *hex = ""; int c; - while ((c = getopt (argc, argv, "h:n:r:t:s")) != -1) { + while ((c = getopt (argc, argv, "h:n:r:t:x:s")) != -1) { switch (c) { case 'h': header = optarg; @@ -28,6 +40,9 @@ int main(int argc, char **argv) { case 't': nthreads = atoi(optarg); break; + case 'x': + hex = optarg; + break; } } #ifndef XWITHASH @@ -40,7 +55,7 @@ int main(int argc, char **argv) { #else assert(nthreads==1); #endif - printf("Looking for wagner-tree on (\"%s\",%d", header, nonce); + printf("Looking for wagner-tree on (\"%s\",%d", hex ? "0x..." : header, nonce); if (range > 1) printf("-%d", nonce+range-1); printf(") with %d %d-bit digits and %d threads\n", NDIGITS, DIGITBITS, nthreads); @@ -56,8 +71,14 @@ int main(int argc, char **argv) { u32 sumnsols = 0; char headernonce[HEADERNONCELEN]; u32 hdrlen = strlen(header); - memcpy(headernonce, header, hdrlen); - memset(headernonce+hdrlen, 0, sizeof(headernonce)-hdrlen); + if (*hex) { + assert(strlen(hex) == 2 * HEADERNONCELEN); + for (int i = 0; i < HEADERNONCELEN; i++) + headernonce[i] = hextobyte(&hex[2*i]); + } else { + memcpy(headernonce, header, hdrlen); + memset(headernonce+hdrlen, 0, sizeof(headernonce)-hdrlen); + } for (int r = 0; r < range; r++) { ((u32 *)headernonce)[32] = htole32(nonce+r); eq.setheadernonce(headernonce, sizeof(headernonce));