summaryrefslogtreecommitdiff
path: root/tiger.cpp
diff options
context:
space:
mode:
authorweidai <weidai@57ff6487-cd31-0410-9ec3-f628ee90f5f0>2007-05-04 15:24:09 +0000
committerweidai <weidai@57ff6487-cd31-0410-9ec3-f628ee90f5f0>2007-05-04 15:24:09 +0000
commitdf1ffe1e41f89222c379d982e543c2a32da78cbd (patch)
tree3ddcd92ac078642dfed5375980dc2db4006d1498 /tiger.cpp
parent1bb93ea95e3131c2b9a4f8f8bd3f3197e4d52a76 (diff)
downloadcryptopp-df1ffe1e41f89222c379d982e543c2a32da78cbd.tar.gz
fix compile for x64, DLL and VC 6
git-svn-id: svn://svn.code.sf.net/p/cryptopp/code/trunk/c5@332 57ff6487-cd31-0410-9ec3-f628ee90f5f0
Diffstat (limited to 'tiger.cpp')
-rw-r--r--tiger.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/tiger.cpp b/tiger.cpp
index 332de2c..87ec74f 100644
--- a/tiger.cpp
+++ b/tiger.cpp
@@ -34,7 +34,7 @@ void Tiger::TruncatedFinal(byte *hash, size_t size)
void Tiger::Transform (word64 *digest, const word64 *X)
{
-#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE
+#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE && CRYPTOPP_BOOL_X86
if (HasSSE2())
{
#ifdef __GNUC__
@@ -43,9 +43,14 @@ void Tiger::Transform (word64 *digest, const word64 *X)
".intel_syntax noprefix;"
AS1( push ebx)
#else
+ #if _MSC_VER < 1300
+ const word64 *t = table;
+ AS2( mov edx, t)
+ #else
+ AS2( lea edx, [table])
+ #endif
AS2( mov eax, digest)
AS2( mov esi, X)
- AS2( lea edx, [table])
#endif
AS2( movq mm0, [eax])
AS2( movq mm1, [eax+1*8])