parent
d4f86d7320
commit
61f1456a5a
10
tiger.cpp
10
tiger.cpp
|
|
@ -42,7 +42,7 @@ void Tiger::TruncatedFinal(byte *hash, size_t size)
|
||||||
|
|
||||||
void Tiger::Transform (word64 *digest, const word64 *X)
|
void Tiger::Transform (word64 *digest, const word64 *X)
|
||||||
{
|
{
|
||||||
#if CRYPTOPP_SSE2_ASM_AVAILABLE && (CRYPTOPP_BOOL_X86 || CRYPTOPP_BOOL_X32)
|
#if CRYPTOPP_SSE2_ASM_AVAILABLE && CRYPTOPP_BOOL_X86
|
||||||
if (HasSSE2())
|
if (HasSSE2())
|
||||||
{
|
{
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
|
|
@ -182,19 +182,11 @@ void Tiger::Transform (word64 *digest, const word64 *X)
|
||||||
AS2( psubq mm3, mm4)\
|
AS2( psubq mm3, mm4)\
|
||||||
AS2( movq [Y+7*8], mm3)
|
AS2( movq [Y+7*8], mm3)
|
||||||
|
|
||||||
#if CRYPTOPP_BOOL_X32
|
|
||||||
SSE2_pass(mm0, mm1, mm2, 5, esi)
|
|
||||||
SSE2_key_schedule(esp+8, esi)
|
|
||||||
SSE2_pass(mm2, mm0, mm1, 7, esp+8)
|
|
||||||
SSE2_key_schedule(esp+8, esp+8)
|
|
||||||
SSE2_pass(mm1, mm2, mm0, 9, esp+8)
|
|
||||||
#else
|
|
||||||
SSE2_pass(mm0, mm1, mm2, 5, esi)
|
SSE2_pass(mm0, mm1, mm2, 5, esi)
|
||||||
SSE2_key_schedule(esp+4, esi)
|
SSE2_key_schedule(esp+4, esi)
|
||||||
SSE2_pass(mm2, mm0, mm1, 7, esp+4)
|
SSE2_pass(mm2, mm0, mm1, 7, esp+4)
|
||||||
SSE2_key_schedule(esp+4, esp+4)
|
SSE2_key_schedule(esp+4, esp+4)
|
||||||
SSE2_pass(mm1, mm2, mm0, 9, esp+4)
|
SSE2_pass(mm1, mm2, mm0, 9, esp+4)
|
||||||
#endif
|
|
||||||
|
|
||||||
AS2( pxor mm0, [eax+0*8])
|
AS2( pxor mm0, [eax+0*8])
|
||||||
AS2( movq [eax+0*8], mm0)
|
AS2( movq [eax+0*8], mm0)
|
||||||
|
|
|
||||||
4
tiger.h
4
tiger.h
|
|
@ -12,8 +12,8 @@
|
||||||
|
|
||||||
// Clang 3.3 integrated assembler crash on Linux
|
// Clang 3.3 integrated assembler crash on Linux
|
||||||
// http://github.com/weidai11/cryptopp/issues/264
|
// http://github.com/weidai11/cryptopp/issues/264
|
||||||
#if defined(CRYPTOPP_LLVM_CLANG_VERSION) && (CRYPTOPP_LLVM_CLANG_VERSION < 30400)
|
#if (defined(CRYPTOPP_LLVM_CLANG_VERSION) && (CRYPTOPP_LLVM_CLANG_VERSION < 30400)) || CRYPTOPP_BOOL_X32
|
||||||
# define CRYPTOPP_DISABLE_TIGER_ASM
|
# define CRYPTOPP_DISABLE_TIGER_ASM 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
NAMESPACE_BEGIN(CryptoPP)
|
NAMESPACE_BEGIN(CryptoPP)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue