Re-engage SSE2 ASM for SHA-256 (GH# 674)
I'm not usre where exactly the break occured, but it was probably due to the BASE+SIMD rewrite. Thanks to tesbayda for tracking it down.pull/676/head
parent
9a75d09ca4
commit
e18de4d5f9
2
sha.cpp
2
sha.cpp
|
|
@ -710,7 +710,7 @@ size_t SHA256::HashMultipleBlocks(const word32 *input, size_t length)
|
||||||
return length & (SHA256::BLOCKSIZE - 1);
|
return length & (SHA256::BLOCKSIZE - 1);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#if CRYPTOPP_SSE2_ASM_AVAILABLE
|
#if CRYPTOPP_SSE2_ASM_AVAILABLE || CRYPTOPP_X64_MASM_AVAILABLE
|
||||||
if (HasSSE2())
|
if (HasSSE2())
|
||||||
{
|
{
|
||||||
const size_t res = length & (SHA256::BLOCKSIZE - 1);
|
const size_t res = length & (SHA256::BLOCKSIZE - 1);
|
||||||
|
|
|
||||||
|
|
@ -676,7 +676,7 @@ ret
|
||||||
GCM_AuthenticateBlocks_64K ENDP
|
GCM_AuthenticateBlocks_64K ENDP
|
||||||
|
|
||||||
ALIGN 8
|
ALIGN 8
|
||||||
SHA256_SSE_HashMultipleBlocks PROC FRAME
|
SHA256_HashMultipleBlocks_SSE2 PROC FRAME
|
||||||
rex_push_reg rsi
|
rex_push_reg rsi
|
||||||
push_reg rdi
|
push_reg rdi
|
||||||
push_reg rbx
|
push_reg rbx
|
||||||
|
|
@ -1962,7 +1962,7 @@ pop rbx
|
||||||
pop rdi
|
pop rdi
|
||||||
pop rsi
|
pop rsi
|
||||||
ret
|
ret
|
||||||
SHA256_SSE_HashMultipleBlocks ENDP
|
SHA256_HashMultipleBlocks_SSE2 ENDP
|
||||||
|
|
||||||
_TEXT ENDS
|
_TEXT ENDS
|
||||||
END
|
END
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue