Reorder a few instructions
This commit is contained in:
parent
36225b4206
commit
703d58cd82
3 changed files with 212 additions and 195 deletions
299
scrypt-x64.S
299
scrypt-x64.S
|
@ -22,6 +22,10 @@
|
|||
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
# SUCH DAMAGE.
|
||||
|
||||
#if defined(__linux__) && defined(__ELF__)
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
#endif
|
||||
|
||||
#if defined(__x86_64__)
|
||||
|
||||
.macro gen_salsa8_core_doubleround
|
||||
|
@ -430,73 +434,78 @@ gen_scrypt_core_loop2:
|
|||
|
||||
|
||||
.macro xmm_salsa8_core_doubleround
|
||||
movdqa %xmm1, %xmm4
|
||||
paddd %xmm0, %xmm4
|
||||
movdqa %xmm0, %xmm5
|
||||
movdqa %xmm4, %xmm6
|
||||
movdqa %xmm4, %xmm5
|
||||
pslld $7, %xmm4
|
||||
psrld $25, %xmm6
|
||||
psrld $25, %xmm5
|
||||
pxor %xmm4, %xmm3
|
||||
pxor %xmm6, %xmm3
|
||||
paddd %xmm3, %xmm5
|
||||
pxor %xmm5, %xmm3
|
||||
movdqa %xmm0, %xmm4
|
||||
|
||||
paddd %xmm3, %xmm4
|
||||
movdqa %xmm4, %xmm5
|
||||
pslld $9, %xmm4
|
||||
psrld $23, %xmm5
|
||||
pxor %xmm4, %xmm2
|
||||
movdqa %xmm3, %xmm4
|
||||
movdqa %xmm5, %xmm6
|
||||
pslld $9, %xmm5
|
||||
psrld $23, %xmm6
|
||||
pxor %xmm5, %xmm2
|
||||
pshufd $0x93, %xmm3, %xmm3
|
||||
pxor %xmm6, %xmm2
|
||||
pxor %xmm5, %xmm2
|
||||
|
||||
paddd %xmm2, %xmm4
|
||||
movdqa %xmm2, %xmm5
|
||||
movdqa %xmm4, %xmm6
|
||||
movdqa %xmm4, %xmm5
|
||||
pslld $13, %xmm4
|
||||
psrld $19, %xmm6
|
||||
psrld $19, %xmm5
|
||||
pxor %xmm4, %xmm1
|
||||
movdqa %xmm2, %xmm4
|
||||
pshufd $0x4e, %xmm2, %xmm2
|
||||
pxor %xmm6, %xmm1
|
||||
paddd %xmm1, %xmm5
|
||||
movdqa %xmm3, %xmm4
|
||||
movdqa %xmm5, %xmm6
|
||||
pslld $18, %xmm5
|
||||
psrld $14, %xmm6
|
||||
pxor %xmm5, %xmm0
|
||||
pxor %xmm5, %xmm1
|
||||
|
||||
paddd %xmm1, %xmm4
|
||||
movdqa %xmm4, %xmm5
|
||||
pslld $18, %xmm4
|
||||
psrld $14, %xmm5
|
||||
pxor %xmm4, %xmm0
|
||||
pshufd $0x39, %xmm1, %xmm1
|
||||
pxor %xmm6, %xmm0
|
||||
pxor %xmm5, %xmm0
|
||||
movdqa %xmm3, %xmm4
|
||||
|
||||
paddd %xmm0, %xmm4
|
||||
movdqa %xmm0, %xmm5
|
||||
movdqa %xmm4, %xmm6
|
||||
movdqa %xmm4, %xmm5
|
||||
pslld $7, %xmm4
|
||||
psrld $25, %xmm6
|
||||
psrld $25, %xmm5
|
||||
pxor %xmm4, %xmm1
|
||||
pxor %xmm6, %xmm1
|
||||
paddd %xmm1, %xmm5
|
||||
pxor %xmm5, %xmm1
|
||||
movdqa %xmm0, %xmm4
|
||||
|
||||
paddd %xmm1, %xmm4
|
||||
movdqa %xmm4, %xmm5
|
||||
pslld $9, %xmm4
|
||||
psrld $23, %xmm5
|
||||
pxor %xmm4, %xmm2
|
||||
movdqa %xmm1, %xmm4
|
||||
movdqa %xmm5, %xmm6
|
||||
pslld $9, %xmm5
|
||||
psrld $23, %xmm6
|
||||
pxor %xmm5, %xmm2
|
||||
pshufd $0x93, %xmm1, %xmm1
|
||||
pxor %xmm6, %xmm2
|
||||
pxor %xmm5, %xmm2
|
||||
|
||||
paddd %xmm2, %xmm4
|
||||
movdqa %xmm2, %xmm5
|
||||
movdqa %xmm4, %xmm6
|
||||
movdqa %xmm4, %xmm5
|
||||
pslld $13, %xmm4
|
||||
psrld $19, %xmm6
|
||||
psrld $19, %xmm5
|
||||
pxor %xmm4, %xmm3
|
||||
movdqa %xmm2, %xmm4
|
||||
pshufd $0x4e, %xmm2, %xmm2
|
||||
pxor %xmm6, %xmm3
|
||||
paddd %xmm3, %xmm5
|
||||
movdqa %xmm1, %xmm4
|
||||
movdqa %xmm5, %xmm6
|
||||
pslld $18, %xmm5
|
||||
psrld $14, %xmm6
|
||||
pxor %xmm5, %xmm0
|
||||
pxor %xmm5, %xmm3
|
||||
|
||||
paddd %xmm3, %xmm4
|
||||
movdqa %xmm4, %xmm5
|
||||
pslld $18, %xmm4
|
||||
psrld $14, %xmm5
|
||||
pxor %xmm4, %xmm0
|
||||
pshufd $0x39, %xmm3, %xmm3
|
||||
pxor %xmm6, %xmm0
|
||||
pxor %xmm5, %xmm0
|
||||
.endm
|
||||
|
||||
.macro xmm_salsa8_core
|
||||
movdqa %xmm1, %xmm4
|
||||
xmm_salsa8_core_doubleround
|
||||
xmm_salsa8_core_doubleround
|
||||
xmm_salsa8_core_doubleround
|
||||
|
@ -837,136 +846,140 @@ prefer_dual_scrypt_false:
|
|||
|
||||
|
||||
.macro xmm_dual_salsa8_core_doubleround
|
||||
movdqa %xmm1, %xmm4
|
||||
movdqa %xmm9, %xmm6
|
||||
paddd %xmm0, %xmm4
|
||||
paddd %xmm8, %xmm12
|
||||
movdqa %xmm0, %xmm5
|
||||
movdqa %xmm8, %xmm13
|
||||
movdqa %xmm4, %xmm6
|
||||
movdqa %xmm12, %xmm14
|
||||
paddd %xmm8, %xmm6
|
||||
movdqa %xmm4, %xmm5
|
||||
movdqa %xmm6, %xmm7
|
||||
pslld $7, %xmm4
|
||||
pslld $7, %xmm12
|
||||
psrld $25, %xmm6
|
||||
psrld $25, %xmm14
|
||||
pslld $7, %xmm6
|
||||
psrld $25, %xmm5
|
||||
psrld $25, %xmm7
|
||||
pxor %xmm4, %xmm3
|
||||
pxor %xmm12, %xmm11
|
||||
pxor %xmm6, %xmm3
|
||||
pxor %xmm14, %xmm11
|
||||
paddd %xmm3, %xmm5
|
||||
paddd %xmm11, %xmm13
|
||||
pxor %xmm6, %xmm11
|
||||
pxor %xmm5, %xmm3
|
||||
pxor %xmm7, %xmm11
|
||||
movdqa %xmm0, %xmm4
|
||||
movdqa %xmm8, %xmm6
|
||||
|
||||
paddd %xmm3, %xmm4
|
||||
paddd %xmm11, %xmm6
|
||||
movdqa %xmm4, %xmm5
|
||||
movdqa %xmm6, %xmm7
|
||||
pslld $9, %xmm4
|
||||
pslld $9, %xmm6
|
||||
psrld $23, %xmm5
|
||||
psrld $23, %xmm7
|
||||
pxor %xmm4, %xmm2
|
||||
pxor %xmm6, %xmm10
|
||||
movdqa %xmm3, %xmm4
|
||||
movdqa %xmm11, %xmm12
|
||||
movdqa %xmm5, %xmm6
|
||||
movdqa %xmm13, %xmm14
|
||||
pslld $9, %xmm5
|
||||
pslld $9, %xmm13
|
||||
psrld $23, %xmm6
|
||||
psrld $23, %xmm14
|
||||
pxor %xmm5, %xmm2
|
||||
pxor %xmm13, %xmm10
|
||||
movdqa %xmm11, %xmm6
|
||||
pshufd $0x93, %xmm3, %xmm3
|
||||
pshufd $0x93, %xmm11, %xmm11
|
||||
pxor %xmm6, %xmm2
|
||||
pxor %xmm14, %xmm10
|
||||
pxor %xmm5, %xmm2
|
||||
pxor %xmm7, %xmm10
|
||||
|
||||
paddd %xmm2, %xmm4
|
||||
paddd %xmm10, %xmm12
|
||||
movdqa %xmm2, %xmm5
|
||||
movdqa %xmm10, %xmm13
|
||||
movdqa %xmm4, %xmm6
|
||||
movdqa %xmm12, %xmm14
|
||||
paddd %xmm10, %xmm6
|
||||
movdqa %xmm4, %xmm5
|
||||
movdqa %xmm6, %xmm7
|
||||
pslld $13, %xmm4
|
||||
pslld $13, %xmm12
|
||||
psrld $19, %xmm6
|
||||
psrld $19, %xmm14
|
||||
pslld $13, %xmm6
|
||||
psrld $19, %xmm5
|
||||
psrld $19, %xmm7
|
||||
pxor %xmm4, %xmm1
|
||||
pxor %xmm12, %xmm9
|
||||
pxor %xmm6, %xmm9
|
||||
movdqa %xmm2, %xmm4
|
||||
movdqa %xmm10, %xmm6
|
||||
pshufd $0x4e, %xmm2, %xmm2
|
||||
pshufd $0x4e, %xmm10, %xmm10
|
||||
pxor %xmm6, %xmm1
|
||||
pxor %xmm14, %xmm9
|
||||
paddd %xmm1, %xmm5
|
||||
paddd %xmm9, %xmm13
|
||||
movdqa %xmm3, %xmm4
|
||||
movdqa %xmm11, %xmm12
|
||||
movdqa %xmm5, %xmm6
|
||||
movdqa %xmm13, %xmm14
|
||||
pslld $18, %xmm5
|
||||
pslld $18, %xmm13
|
||||
psrld $14, %xmm6
|
||||
psrld $14, %xmm14
|
||||
pxor %xmm5, %xmm0
|
||||
pxor %xmm13, %xmm8
|
||||
pxor %xmm5, %xmm1
|
||||
pxor %xmm7, %xmm9
|
||||
|
||||
paddd %xmm1, %xmm4
|
||||
paddd %xmm9, %xmm6
|
||||
movdqa %xmm4, %xmm5
|
||||
movdqa %xmm6, %xmm7
|
||||
pslld $18, %xmm4
|
||||
pslld $18, %xmm6
|
||||
psrld $14, %xmm5
|
||||
psrld $14, %xmm7
|
||||
pxor %xmm4, %xmm0
|
||||
pxor %xmm6, %xmm8
|
||||
pshufd $0x39, %xmm1, %xmm1
|
||||
pshufd $0x39, %xmm9, %xmm9
|
||||
pxor %xmm6, %xmm0
|
||||
pxor %xmm14, %xmm8
|
||||
pxor %xmm5, %xmm0
|
||||
pxor %xmm7, %xmm8
|
||||
movdqa %xmm3, %xmm4
|
||||
movdqa %xmm11, %xmm6
|
||||
|
||||
paddd %xmm0, %xmm4
|
||||
paddd %xmm8, %xmm12
|
||||
movdqa %xmm0, %xmm5
|
||||
movdqa %xmm8, %xmm13
|
||||
movdqa %xmm4, %xmm6
|
||||
movdqa %xmm12, %xmm14
|
||||
paddd %xmm8, %xmm6
|
||||
movdqa %xmm4, %xmm5
|
||||
movdqa %xmm6, %xmm7
|
||||
pslld $7, %xmm4
|
||||
pslld $7, %xmm12
|
||||
psrld $25, %xmm6
|
||||
psrld $25, %xmm14
|
||||
pslld $7, %xmm6
|
||||
psrld $25, %xmm5
|
||||
psrld $25, %xmm7
|
||||
pxor %xmm4, %xmm1
|
||||
pxor %xmm12, %xmm9
|
||||
pxor %xmm6, %xmm1
|
||||
pxor %xmm14, %xmm9
|
||||
paddd %xmm1, %xmm5
|
||||
paddd %xmm9, %xmm13
|
||||
pxor %xmm6, %xmm9
|
||||
pxor %xmm5, %xmm1
|
||||
pxor %xmm7, %xmm9
|
||||
movdqa %xmm0, %xmm4
|
||||
movdqa %xmm8, %xmm6
|
||||
|
||||
paddd %xmm1, %xmm4
|
||||
paddd %xmm9, %xmm6
|
||||
movdqa %xmm4, %xmm5
|
||||
movdqa %xmm6, %xmm7
|
||||
pslld $9, %xmm4
|
||||
pslld $9, %xmm6
|
||||
psrld $23, %xmm5
|
||||
psrld $23, %xmm7
|
||||
pxor %xmm4, %xmm2
|
||||
pxor %xmm6, %xmm10
|
||||
movdqa %xmm1, %xmm4
|
||||
movdqa %xmm9, %xmm12
|
||||
movdqa %xmm5, %xmm6
|
||||
movdqa %xmm13, %xmm14
|
||||
pslld $9, %xmm5
|
||||
pslld $9, %xmm13
|
||||
psrld $23, %xmm6
|
||||
psrld $23, %xmm14
|
||||
pxor %xmm5, %xmm2
|
||||
pxor %xmm13, %xmm10
|
||||
movdqa %xmm9, %xmm6
|
||||
pshufd $0x93, %xmm1, %xmm1
|
||||
pshufd $0x93, %xmm9, %xmm9
|
||||
pxor %xmm6, %xmm2
|
||||
pxor %xmm14, %xmm10
|
||||
pxor %xmm5, %xmm2
|
||||
pxor %xmm7, %xmm10
|
||||
|
||||
paddd %xmm2, %xmm4
|
||||
paddd %xmm10, %xmm12
|
||||
movdqa %xmm2, %xmm5
|
||||
movdqa %xmm10, %xmm13
|
||||
movdqa %xmm4, %xmm6
|
||||
movdqa %xmm12, %xmm14
|
||||
paddd %xmm10, %xmm6
|
||||
movdqa %xmm4, %xmm5
|
||||
movdqa %xmm6, %xmm7
|
||||
pslld $13, %xmm4
|
||||
pslld $13, %xmm12
|
||||
psrld $19, %xmm6
|
||||
psrld $19, %xmm14
|
||||
pslld $13, %xmm6
|
||||
psrld $19, %xmm5
|
||||
psrld $19, %xmm7
|
||||
pxor %xmm4, %xmm3
|
||||
pxor %xmm12, %xmm11
|
||||
pxor %xmm6, %xmm11
|
||||
movdqa %xmm2, %xmm4
|
||||
movdqa %xmm10, %xmm6
|
||||
pshufd $0x4e, %xmm2, %xmm2
|
||||
pshufd $0x4e, %xmm10, %xmm10
|
||||
pxor %xmm6, %xmm3
|
||||
pxor %xmm14, %xmm11
|
||||
paddd %xmm3, %xmm5
|
||||
paddd %xmm11, %xmm13
|
||||
movdqa %xmm1, %xmm4
|
||||
movdqa %xmm9, %xmm12
|
||||
movdqa %xmm5, %xmm6
|
||||
movdqa %xmm13, %xmm14
|
||||
pslld $18, %xmm5
|
||||
pslld $18, %xmm13
|
||||
psrld $14, %xmm6
|
||||
psrld $14, %xmm14
|
||||
pxor %xmm5, %xmm0
|
||||
pxor %xmm13, %xmm8
|
||||
pxor %xmm5, %xmm3
|
||||
pxor %xmm7, %xmm11
|
||||
|
||||
paddd %xmm3, %xmm4
|
||||
paddd %xmm11, %xmm6
|
||||
movdqa %xmm4, %xmm5
|
||||
movdqa %xmm6, %xmm7
|
||||
pslld $18, %xmm4
|
||||
pslld $18, %xmm6
|
||||
psrld $14, %xmm5
|
||||
psrld $14, %xmm7
|
||||
pxor %xmm4, %xmm0
|
||||
pxor %xmm6, %xmm8
|
||||
pshufd $0x39, %xmm3, %xmm3
|
||||
pshufd $0x39, %xmm11, %xmm11
|
||||
pxor %xmm6, %xmm0
|
||||
pxor %xmm14, %xmm8
|
||||
pxor %xmm5, %xmm0
|
||||
pxor %xmm7, %xmm8
|
||||
.endm
|
||||
|
||||
.macro xmm_dual_salsa8_core
|
||||
movdqa %xmm1, %xmm4
|
||||
movdqa %xmm9, %xmm12
|
||||
xmm_dual_salsa8_core_doubleround
|
||||
xmm_dual_salsa8_core_doubleround
|
||||
xmm_dual_salsa8_core_doubleround
|
||||
|
|
92
scrypt-x86.S
92
scrypt-x86.S
|
@ -558,74 +558,78 @@ gen_scrypt_core_loop2:
|
|||
|
||||
|
||||
.macro xmm_salsa8_core_doubleround
|
||||
movdqa %xmm1, %xmm4
|
||||
paddd %xmm0, %xmm4
|
||||
movdqa %xmm0, %xmm5
|
||||
movdqa %xmm4, %xmm6
|
||||
movdqa %xmm4, %xmm5
|
||||
pslld $7, %xmm4
|
||||
psrld $25, %xmm6
|
||||
psrld $25, %xmm5
|
||||
pxor %xmm4, %xmm3
|
||||
pxor %xmm6, %xmm3
|
||||
paddd %xmm3, %xmm5
|
||||
pxor %xmm5, %xmm3
|
||||
movdqa %xmm0, %xmm4
|
||||
|
||||
paddd %xmm3, %xmm4
|
||||
movdqa %xmm4, %xmm5
|
||||
pslld $9, %xmm4
|
||||
psrld $23, %xmm5
|
||||
pxor %xmm4, %xmm2
|
||||
movdqa %xmm3, %xmm4
|
||||
movdqa %xmm5, %xmm6
|
||||
pslld $9, %xmm5
|
||||
psrld $23, %xmm6
|
||||
pxor %xmm5, %xmm2
|
||||
pshufd $0x93, %xmm3, %xmm3
|
||||
pxor %xmm6, %xmm2
|
||||
pxor %xmm5, %xmm2
|
||||
|
||||
paddd %xmm2, %xmm4
|
||||
movdqa %xmm2, %xmm5
|
||||
movdqa %xmm4, %xmm6
|
||||
movdqa %xmm4, %xmm5
|
||||
pslld $13, %xmm4
|
||||
psrld $19, %xmm6
|
||||
psrld $19, %xmm5
|
||||
pxor %xmm4, %xmm1
|
||||
movdqa %xmm2, %xmm4
|
||||
pshufd $0x4e, %xmm2, %xmm2
|
||||
pxor %xmm6, %xmm1
|
||||
paddd %xmm1, %xmm5
|
||||
movdqa %xmm3, %xmm4
|
||||
movdqa %xmm5, %xmm6
|
||||
pslld $18, %xmm5
|
||||
psrld $14, %xmm6
|
||||
pxor %xmm5, %xmm0
|
||||
pxor %xmm5, %xmm1
|
||||
|
||||
paddd %xmm1, %xmm4
|
||||
movdqa %xmm4, %xmm5
|
||||
pslld $18, %xmm4
|
||||
psrld $14, %xmm5
|
||||
pxor %xmm4, %xmm0
|
||||
pshufd $0x39, %xmm1, %xmm1
|
||||
pxor %xmm6, %xmm0
|
||||
pxor %xmm5, %xmm0
|
||||
movdqa %xmm3, %xmm4
|
||||
|
||||
paddd %xmm0, %xmm4
|
||||
movdqa %xmm0, %xmm5
|
||||
movdqa %xmm4, %xmm6
|
||||
movdqa %xmm4, %xmm5
|
||||
pslld $7, %xmm4
|
||||
psrld $25, %xmm6
|
||||
psrld $25, %xmm5
|
||||
pxor %xmm4, %xmm1
|
||||
pxor %xmm6, %xmm1
|
||||
paddd %xmm1, %xmm5
|
||||
pxor %xmm5, %xmm1
|
||||
movdqa %xmm0, %xmm4
|
||||
|
||||
paddd %xmm1, %xmm4
|
||||
movdqa %xmm4, %xmm5
|
||||
pslld $9, %xmm4
|
||||
psrld $23, %xmm5
|
||||
pxor %xmm4, %xmm2
|
||||
movdqa %xmm1, %xmm4
|
||||
movdqa %xmm5, %xmm6
|
||||
pslld $9, %xmm5
|
||||
psrld $23, %xmm6
|
||||
pxor %xmm5, %xmm2
|
||||
pshufd $0x93, %xmm1, %xmm1
|
||||
pxor %xmm6, %xmm2
|
||||
pxor %xmm5, %xmm2
|
||||
|
||||
paddd %xmm2, %xmm4
|
||||
movdqa %xmm2, %xmm5
|
||||
movdqa %xmm4, %xmm6
|
||||
movdqa %xmm4, %xmm5
|
||||
pslld $13, %xmm4
|
||||
psrld $19, %xmm6
|
||||
psrld $19, %xmm5
|
||||
pxor %xmm4, %xmm3
|
||||
movdqa %xmm2, %xmm4
|
||||
pshufd $0x4e, %xmm2, %xmm2
|
||||
pxor %xmm6, %xmm3
|
||||
subl $2, %eax
|
||||
paddd %xmm3, %xmm5
|
||||
movdqa %xmm1, %xmm4
|
||||
movdqa %xmm5, %xmm6
|
||||
pslld $18, %xmm5
|
||||
psrld $14, %xmm6
|
||||
pxor %xmm5, %xmm0
|
||||
pxor %xmm5, %xmm3
|
||||
|
||||
paddd %xmm3, %xmm4
|
||||
movdqa %xmm4, %xmm5
|
||||
pslld $18, %xmm4
|
||||
psrld $14, %xmm5
|
||||
pxor %xmm4, %xmm0
|
||||
pshufd $0x39, %xmm3, %xmm3
|
||||
pxor %xmm6, %xmm0
|
||||
pxor %xmm5, %xmm0
|
||||
.endm
|
||||
|
||||
.macro xmm_salsa8_core
|
||||
movdqa %xmm1, %xmm4
|
||||
xmm_salsa8_core_doubleround
|
||||
xmm_salsa8_core_doubleround
|
||||
xmm_salsa8_core_doubleround
|
||||
|
|
16
scrypt.c
16
scrypt.c
|
@ -42,8 +42,8 @@ typedef struct SHA256Context {
|
|||
} SHA256_CTX;
|
||||
|
||||
/*
|
||||
* Encode a length len/4 vector of (uint32_t) into a length len vector of
|
||||
* (unsigned char) in big-endian form. Assumes len is a multiple of 4.
|
||||
* Encode a length len vector of (uint32_t) into a length len vector of
|
||||
* (unsigned char) in big-endian form.
|
||||
*/
|
||||
static inline void
|
||||
be32enc_vect(uint32_t *dst, const uint32_t *src, uint32_t len)
|
||||
|
@ -225,7 +225,7 @@ PBKDF2_SHA256_80_128_init(const uint32_t *passwd, uint32_t tstate[8], uint32_t o
|
|||
/**
|
||||
* PBKDF2_SHA256(passwd, passwdlen, salt, saltlen, c, buf, dkLen):
|
||||
* Compute PBKDF2(passwd, salt, c, dkLen) using HMAC-SHA256 as the PRF, and
|
||||
* write the output to buf. The value dkLen must be at most 32 * (2^32 - 1).
|
||||
* write the output to buf.
|
||||
*/
|
||||
static inline void
|
||||
PBKDF2_SHA256_80_128(const uint32_t *tstate, const uint32_t *ostate, const uint32_t *passwd, uint32_t *buf)
|
||||
|
@ -406,7 +406,7 @@ unsigned char *scrypt_buffer_alloc() {
|
|||
scratchpad size needs to be at least 63 + (128 * r * p) + (256 * r + 64) + (128 * r * N) bytes
|
||||
r = 1, p = 1, N = 1024
|
||||
*/
|
||||
static void scrypt_1024_1_1_256_sp(const uint32_t* input, unsigned char *scratchpad, uint32_t *res)
|
||||
static void scrypt_1024_1_1_256_sp(const uint32_t* input, uint32_t *res, unsigned char *scratchpad)
|
||||
{
|
||||
uint32_t tstate[8], ostate[8];
|
||||
uint32_t *V;
|
||||
|
@ -422,7 +422,7 @@ static void scrypt_1024_1_1_256_sp(const uint32_t* input, unsigned char *scratch
|
|||
}
|
||||
|
||||
#ifdef DUAL_SCRYPT
|
||||
static void dual_scrypt_1024_1_1_256_sp(const uint32_t *input1, const uint32_t *input2, unsigned char *scratchpad, uint32_t *res1, uint32_t *res2)
|
||||
static void dual_scrypt_1024_1_1_256_sp(const uint32_t *input1, const uint32_t *input2, uint32_t *res1, uint32_t *res2, unsigned char *scratchpad)
|
||||
{
|
||||
uint32_t tstate1[8], tstate2[8], ostate1[8], ostate2[8];
|
||||
uint32_t *V;
|
||||
|
@ -466,17 +466,17 @@ int scanhash_scrypt(int thr_id, unsigned char *pdata, unsigned char *scratchbuf,
|
|||
#ifdef DUAL_SCRYPT
|
||||
if (use_dual) {
|
||||
data2[19] = n++;
|
||||
dual_scrypt_1024_1_1_256_sp(data, data2, scratchbuf, hash, hash2);
|
||||
dual_scrypt_1024_1_1_256_sp(data, data2, hash, hash2, scratchbuf);
|
||||
if (hash2[7] <= Htarg) {
|
||||
((uint32_t *)pdata)[19] = byteswap(data2[19]);
|
||||
*hashes_done = n;
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
scrypt_1024_1_1_256_sp(data, scratchbuf, hash);
|
||||
scrypt_1024_1_1_256_sp(data, hash, scratchbuf);
|
||||
}
|
||||
#else
|
||||
scrypt_1024_1_1_256_sp(data, scratchbuf, hash);
|
||||
scrypt_1024_1_1_256_sp(data, hash, scratchbuf);
|
||||
#endif
|
||||
|
||||
if (hash[7] <= Htarg) {
|
||||
|
|
Loading…
Reference in a new issue