mirror of
https://github.com/JayDDee/cpuminer-opt.git
synced 2025-09-17 23:44:27 +00:00
v3.20.0
This commit is contained in:
Binary file not shown.
@@ -65,6 +65,10 @@ If not what makes it happen or not happen?
|
|||||||
Change Log
|
Change Log
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
v3.20.0
|
||||||
|
|
||||||
|
#375 Fixed segfault in algos using Groestl VAES due to use of uninitialized data.
|
||||||
|
|
||||||
v3.19.9
|
v3.19.9
|
||||||
|
|
||||||
More Blake256, Blake512, Luffa & Cubehash prehash optimizations.
|
More Blake256, Blake512, Luffa & Cubehash prehash optimizations.
|
||||||
|
|||||||
@@ -156,14 +156,12 @@ int groestl512_full( hashState_groestl* ctx, void* output,
|
|||||||
}
|
}
|
||||||
ctx->chaining[ 6 ] = m128_const_64( 0x0200000000000000, 0 );
|
ctx->chaining[ 6 ] = m128_const_64( 0x0200000000000000, 0 );
|
||||||
ctx->buf_ptr = 0;
|
ctx->buf_ptr = 0;
|
||||||
ctx->rem_ptr = 0;
|
|
||||||
|
|
||||||
// --- update ---
|
// --- update ---
|
||||||
|
|
||||||
const int len = (int)databitlen / 128;
|
const int len = (int)databitlen / 128;
|
||||||
const int hashlen_m128i = ctx->hashlen / 16; // bytes to __m128i
|
const int hashlen_m128i = ctx->hashlen / 16; // bytes to __m128i
|
||||||
const int hash_offset = SIZE512 - hashlen_m128i;
|
const int hash_offset = SIZE512 - hashlen_m128i;
|
||||||
int rem = ctx->rem_ptr;
|
|
||||||
uint64_t blocks = len / SIZE512;
|
uint64_t blocks = len / SIZE512;
|
||||||
__m128i* in = (__m128i*)input;
|
__m128i* in = (__m128i*)input;
|
||||||
|
|
||||||
@@ -175,8 +173,8 @@ int groestl512_full( hashState_groestl* ctx, void* output,
|
|||||||
// copy any remaining data to buffer, it may already contain data
|
// copy any remaining data to buffer, it may already contain data
|
||||||
// from a previous update for a midstate precalc
|
// from a previous update for a midstate precalc
|
||||||
for ( i = 0; i < len % SIZE512; i++ )
|
for ( i = 0; i < len % SIZE512; i++ )
|
||||||
ctx->buffer[ rem + i ] = in[ ctx->buf_ptr + i ];
|
ctx->buffer[ i ] = in[ ctx->buf_ptr + i ];
|
||||||
i += rem; // use i as rem_ptr in final
|
// use i as rem_ptr in final
|
||||||
|
|
||||||
//--- final ---
|
//--- final ---
|
||||||
|
|
||||||
|
|||||||
@@ -227,12 +227,10 @@ int groestl256_full( hashState_groestl256* ctx,
|
|||||||
((u64*)ctx->chaining)[COLS-1] = U64BIG((u64)LENGTH);
|
((u64*)ctx->chaining)[COLS-1] = U64BIG((u64)LENGTH);
|
||||||
INIT256( ctx->chaining );
|
INIT256( ctx->chaining );
|
||||||
ctx->buf_ptr = 0;
|
ctx->buf_ptr = 0;
|
||||||
ctx->rem_ptr = 0;
|
|
||||||
|
|
||||||
const int len = (int)databitlen / 128;
|
const int len = (int)databitlen / 128;
|
||||||
const int hashlen_m128i = ctx->hashlen / 16; // bytes to __m128i
|
const int hashlen_m128i = ctx->hashlen / 16; // bytes to __m128i
|
||||||
const int hash_offset = SIZE256 - hashlen_m128i;
|
const int hash_offset = SIZE256 - hashlen_m128i;
|
||||||
int rem = ctx->rem_ptr;
|
|
||||||
int blocks = len / SIZE256;
|
int blocks = len / SIZE256;
|
||||||
__m128i* in = (__m128i*)input;
|
__m128i* in = (__m128i*)input;
|
||||||
|
|
||||||
@@ -255,8 +253,8 @@ int groestl256_full( hashState_groestl256* ctx,
|
|||||||
{
|
{
|
||||||
// Copy any remaining data to buffer for final transform
|
// Copy any remaining data to buffer for final transform
|
||||||
for ( i = 0; i < len % SIZE256; i++ )
|
for ( i = 0; i < len % SIZE256; i++ )
|
||||||
ctx->buffer[ rem + i ] = in[ ctx->buf_ptr + i ];
|
ctx->buffer[ i ] = in[ ctx->buf_ptr + i ];
|
||||||
i += rem; // use i as rem_ptr in final
|
// use i as rem_ptr in final
|
||||||
}
|
}
|
||||||
|
|
||||||
//--- final ---
|
//--- final ---
|
||||||
|
|||||||
@@ -50,7 +50,6 @@ int groestl256_4way_full( groestl256_4way_context* ctx, void* output,
|
|||||||
const int len = (int)datalen >> 4;
|
const int len = (int)datalen >> 4;
|
||||||
const int hashlen_m128i = 32 >> 4; // bytes to __m128i
|
const int hashlen_m128i = 32 >> 4; // bytes to __m128i
|
||||||
const int hash_offset = SIZE256 - hashlen_m128i;
|
const int hash_offset = SIZE256 - hashlen_m128i;
|
||||||
int rem = ctx->rem_ptr;
|
|
||||||
uint64_t blocks = len / SIZE256;
|
uint64_t blocks = len / SIZE256;
|
||||||
__m512i* in = (__m512i*)input;
|
__m512i* in = (__m512i*)input;
|
||||||
int i;
|
int i;
|
||||||
@@ -67,7 +66,6 @@ int groestl256_4way_full( groestl256_4way_context* ctx, void* output,
|
|||||||
// The only non-zero in the IV is len. It can be hard coded.
|
// The only non-zero in the IV is len. It can be hard coded.
|
||||||
ctx->chaining[ 3 ] = m512_const2_64( 0, 0x0100000000000000 );
|
ctx->chaining[ 3 ] = m512_const2_64( 0, 0x0100000000000000 );
|
||||||
ctx->buf_ptr = 0;
|
ctx->buf_ptr = 0;
|
||||||
ctx->rem_ptr = 0;
|
|
||||||
|
|
||||||
// --- update ---
|
// --- update ---
|
||||||
|
|
||||||
@@ -76,11 +74,10 @@ int groestl256_4way_full( groestl256_4way_context* ctx, void* output,
|
|||||||
TF512_4way( ctx->chaining, &in[ i * SIZE256 ] );
|
TF512_4way( ctx->chaining, &in[ i * SIZE256 ] );
|
||||||
ctx->buf_ptr = blocks * SIZE256;
|
ctx->buf_ptr = blocks * SIZE256;
|
||||||
|
|
||||||
// copy any remaining data to buffer, it may already contain data
|
// copy any remaining data to buffer
|
||||||
// from a previous update for a midstate precalc
|
|
||||||
for ( i = 0; i < len % SIZE256; i++ )
|
for ( i = 0; i < len % SIZE256; i++ )
|
||||||
ctx->buffer[ rem + i ] = in[ ctx->buf_ptr + i ];
|
ctx->buffer[ i ] = in[ ctx->buf_ptr + i ];
|
||||||
i += rem; // use i as rem_ptr in final
|
// use i as rem_ptr in final
|
||||||
|
|
||||||
//--- final ---
|
//--- final ---
|
||||||
|
|
||||||
@@ -206,7 +203,6 @@ int groestl256_2way_full( groestl256_2way_context* ctx, void* output,
|
|||||||
const int len = (int)datalen >> 4;
|
const int len = (int)datalen >> 4;
|
||||||
const int hashlen_m128i = 32 >> 4; // bytes to __m128i
|
const int hashlen_m128i = 32 >> 4; // bytes to __m128i
|
||||||
const int hash_offset = SIZE256 - hashlen_m128i;
|
const int hash_offset = SIZE256 - hashlen_m128i;
|
||||||
int rem = ctx->rem_ptr;
|
|
||||||
uint64_t blocks = len / SIZE256;
|
uint64_t blocks = len / SIZE256;
|
||||||
__m256i* in = (__m256i*)input;
|
__m256i* in = (__m256i*)input;
|
||||||
int i;
|
int i;
|
||||||
@@ -223,7 +219,6 @@ int groestl256_2way_full( groestl256_2way_context* ctx, void* output,
|
|||||||
// The only non-zero in the IV is len. It can be hard coded.
|
// The only non-zero in the IV is len. It can be hard coded.
|
||||||
ctx->chaining[ 3 ] = m256_const2_64( 0, 0x0100000000000000 );
|
ctx->chaining[ 3 ] = m256_const2_64( 0, 0x0100000000000000 );
|
||||||
ctx->buf_ptr = 0;
|
ctx->buf_ptr = 0;
|
||||||
ctx->rem_ptr = 0;
|
|
||||||
|
|
||||||
// --- update ---
|
// --- update ---
|
||||||
|
|
||||||
@@ -232,11 +227,10 @@ int groestl256_2way_full( groestl256_2way_context* ctx, void* output,
|
|||||||
TF512_2way( ctx->chaining, &in[ i * SIZE256 ] );
|
TF512_2way( ctx->chaining, &in[ i * SIZE256 ] );
|
||||||
ctx->buf_ptr = blocks * SIZE256;
|
ctx->buf_ptr = blocks * SIZE256;
|
||||||
|
|
||||||
// copy any remaining data to buffer, it may already contain data
|
// copy any remaining data to buffer
|
||||||
// from a previous update for a midstate precalc
|
|
||||||
for ( i = 0; i < len % SIZE256; i++ )
|
for ( i = 0; i < len % SIZE256; i++ )
|
||||||
ctx->buffer[ rem + i ] = in[ ctx->buf_ptr + i ];
|
ctx->buffer[ i ] = in[ ctx->buf_ptr + i ];
|
||||||
i += rem; // use i as rem_ptr in final
|
// use i as rem_ptr in final
|
||||||
|
|
||||||
//--- final ---
|
//--- final ---
|
||||||
|
|
||||||
|
|||||||
@@ -99,7 +99,6 @@ int groestl512_4way_full( groestl512_4way_context* ctx, void* output,
|
|||||||
memset_zero_512( ctx->buffer, SIZE512 );
|
memset_zero_512( ctx->buffer, SIZE512 );
|
||||||
ctx->chaining[ 6 ] = m512_const2_64( 0x0200000000000000, 0 );
|
ctx->chaining[ 6 ] = m512_const2_64( 0x0200000000000000, 0 );
|
||||||
ctx->buf_ptr = 0;
|
ctx->buf_ptr = 0;
|
||||||
ctx->rem_ptr = 0;
|
|
||||||
|
|
||||||
// --- update ---
|
// --- update ---
|
||||||
|
|
||||||
@@ -108,8 +107,7 @@ int groestl512_4way_full( groestl512_4way_context* ctx, void* output,
|
|||||||
ctx->buf_ptr = blocks * SIZE512;
|
ctx->buf_ptr = blocks * SIZE512;
|
||||||
|
|
||||||
for ( i = 0; i < len % SIZE512; i++ )
|
for ( i = 0; i < len % SIZE512; i++ )
|
||||||
ctx->buffer[ ctx->rem_ptr + i ] = in[ ctx->buf_ptr + i ];
|
ctx->buffer[ i ] = in[ ctx->buf_ptr + i ];
|
||||||
i += ctx->rem_ptr;
|
|
||||||
|
|
||||||
// --- close ---
|
// --- close ---
|
||||||
|
|
||||||
@@ -222,7 +220,6 @@ int groestl512_2way_full( groestl512_2way_context* ctx, void* output,
|
|||||||
memset_zero_256( ctx->buffer, SIZE512 );
|
memset_zero_256( ctx->buffer, SIZE512 );
|
||||||
ctx->chaining[ 6 ] = m256_const2_64( 0x0200000000000000, 0 );
|
ctx->chaining[ 6 ] = m256_const2_64( 0x0200000000000000, 0 );
|
||||||
ctx->buf_ptr = 0;
|
ctx->buf_ptr = 0;
|
||||||
ctx->rem_ptr = 0;
|
|
||||||
|
|
||||||
// --- update ---
|
// --- update ---
|
||||||
|
|
||||||
@@ -231,8 +228,7 @@ int groestl512_2way_full( groestl512_2way_context* ctx, void* output,
|
|||||||
ctx->buf_ptr = blocks * SIZE512;
|
ctx->buf_ptr = blocks * SIZE512;
|
||||||
|
|
||||||
for ( i = 0; i < len % SIZE512; i++ )
|
for ( i = 0; i < len % SIZE512; i++ )
|
||||||
ctx->buffer[ ctx->rem_ptr + i ] = in[ ctx->buf_ptr + i ];
|
ctx->buffer[ i ] = in[ ctx->buf_ptr + i ];
|
||||||
i += ctx->rem_ptr;
|
|
||||||
|
|
||||||
// --- close ---
|
// --- close ---
|
||||||
|
|
||||||
|
|||||||
20
configure
vendored
20
configure
vendored
@@ -1,6 +1,6 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Guess values for system-dependent variables and create Makefiles.
|
# Guess values for system-dependent variables and create Makefiles.
|
||||||
# Generated by GNU Autoconf 2.69 for cpuminer-opt 3.19.9.
|
# Generated by GNU Autoconf 2.69 for cpuminer-opt 3.20.0.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
|
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
|
||||||
@@ -577,8 +577,8 @@ MAKEFLAGS=
|
|||||||
# Identity of this package.
|
# Identity of this package.
|
||||||
PACKAGE_NAME='cpuminer-opt'
|
PACKAGE_NAME='cpuminer-opt'
|
||||||
PACKAGE_TARNAME='cpuminer-opt'
|
PACKAGE_TARNAME='cpuminer-opt'
|
||||||
PACKAGE_VERSION='3.19.9'
|
PACKAGE_VERSION='3.20.0'
|
||||||
PACKAGE_STRING='cpuminer-opt 3.19.9'
|
PACKAGE_STRING='cpuminer-opt 3.20.0'
|
||||||
PACKAGE_BUGREPORT=''
|
PACKAGE_BUGREPORT=''
|
||||||
PACKAGE_URL=''
|
PACKAGE_URL=''
|
||||||
|
|
||||||
@@ -1332,7 +1332,7 @@ if test "$ac_init_help" = "long"; then
|
|||||||
# Omit some internal or obsolete options to make the list less imposing.
|
# Omit some internal or obsolete options to make the list less imposing.
|
||||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||||
cat <<_ACEOF
|
cat <<_ACEOF
|
||||||
\`configure' configures cpuminer-opt 3.19.9 to adapt to many kinds of systems.
|
\`configure' configures cpuminer-opt 3.20.0 to adapt to many kinds of systems.
|
||||||
|
|
||||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||||
|
|
||||||
@@ -1404,7 +1404,7 @@ fi
|
|||||||
|
|
||||||
if test -n "$ac_init_help"; then
|
if test -n "$ac_init_help"; then
|
||||||
case $ac_init_help in
|
case $ac_init_help in
|
||||||
short | recursive ) echo "Configuration of cpuminer-opt 3.19.9:";;
|
short | recursive ) echo "Configuration of cpuminer-opt 3.20.0:";;
|
||||||
esac
|
esac
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
|
|
||||||
@@ -1509,7 +1509,7 @@ fi
|
|||||||
test -n "$ac_init_help" && exit $ac_status
|
test -n "$ac_init_help" && exit $ac_status
|
||||||
if $ac_init_version; then
|
if $ac_init_version; then
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
cpuminer-opt configure 3.19.9
|
cpuminer-opt configure 3.20.0
|
||||||
generated by GNU Autoconf 2.69
|
generated by GNU Autoconf 2.69
|
||||||
|
|
||||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||||
@@ -2012,7 +2012,7 @@ cat >config.log <<_ACEOF
|
|||||||
This file contains any messages produced by compilers while
|
This file contains any messages produced by compilers while
|
||||||
running configure, to aid debugging if configure makes a mistake.
|
running configure, to aid debugging if configure makes a mistake.
|
||||||
|
|
||||||
It was created by cpuminer-opt $as_me 3.19.9, which was
|
It was created by cpuminer-opt $as_me 3.20.0, which was
|
||||||
generated by GNU Autoconf 2.69. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
$ $0 $@
|
$ $0 $@
|
||||||
@@ -2993,7 +2993,7 @@ fi
|
|||||||
|
|
||||||
# Define the identity of the package.
|
# Define the identity of the package.
|
||||||
PACKAGE='cpuminer-opt'
|
PACKAGE='cpuminer-opt'
|
||||||
VERSION='3.19.9'
|
VERSION='3.20.0'
|
||||||
|
|
||||||
|
|
||||||
cat >>confdefs.h <<_ACEOF
|
cat >>confdefs.h <<_ACEOF
|
||||||
@@ -6690,7 +6690,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
|||||||
# report actual input values of CONFIG_FILES etc. instead of their
|
# report actual input values of CONFIG_FILES etc. instead of their
|
||||||
# values after options handling.
|
# values after options handling.
|
||||||
ac_log="
|
ac_log="
|
||||||
This file was extended by cpuminer-opt $as_me 3.19.9, which was
|
This file was extended by cpuminer-opt $as_me 3.20.0, which was
|
||||||
generated by GNU Autoconf 2.69. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
CONFIG_FILES = $CONFIG_FILES
|
CONFIG_FILES = $CONFIG_FILES
|
||||||
@@ -6756,7 +6756,7 @@ _ACEOF
|
|||||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||||
ac_cs_version="\\
|
ac_cs_version="\\
|
||||||
cpuminer-opt config.status 3.19.9
|
cpuminer-opt config.status 3.20.0
|
||||||
configured by $0, generated by GNU Autoconf 2.69,
|
configured by $0, generated by GNU Autoconf 2.69,
|
||||||
with options \\"\$ac_cs_config\\"
|
with options \\"\$ac_cs_config\\"
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
AC_INIT([cpuminer-opt], [3.19.9])
|
AC_INIT([cpuminer-opt], [3.20.0])
|
||||||
|
|
||||||
AC_PREREQ([2.59c])
|
AC_PREREQ([2.59c])
|
||||||
AC_CANONICAL_SYSTEM
|
AC_CANONICAL_SYSTEM
|
||||||
|
|||||||
Reference in New Issue
Block a user