summaryrefslogtreecommitdiff
path: root/sha.cpp
diff options
context:
space:
mode:
authorJeffrey Walton <noloader@gmail.com>2022-08-21 21:31:35 -0400
committerJeffrey Walton <noloader@gmail.com>2022-08-21 21:31:35 -0400
commit01a18bdbcb221120beffc6579f549e32490067c5 (patch)
tree716e6f652add48524cc1fe226718cb7ed9207c0b /sha.cpp
parent09ad51cf9ea90586039f6cba7abb51f966fe5595 (diff)
downloadcryptopp-git-01a18bdbcb221120beffc6579f549e32490067c5.tar.gz
Fix inline ASM on x86 (GH #1142)
Diffstat (limited to 'sha.cpp')
-rw-r--r--sha.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/sha.cpp b/sha.cpp
index d04d8046..167f39dc 100644
--- a/sha.cpp
+++ b/sha.cpp
@@ -825,12 +825,12 @@ INTEL_NOPREFIX
ATT_PREFIX
:
: "c" (state), "d" (data), "S" (SHA256_K+48), "D" (len)
- #if CRYPTOPP_BOOL_X32 || CRYPTOPP_BOOL_X64
+ #if (CRYPTOPP_BOOL_X32 || CRYPTOPP_BOOL_X64)
, "m" (workspace[0])
#endif
- : "memory", "cc", "%eax", "%xmm0", "%xmm1", PERCENT_REG(AS_REG_7)
- #if CRYPTOPP_BOOL_X32 || CRYPTOPP_BOOL_X64
- , "%rbx", "%r8", "%r10"
+ : "memory", "cc", "%eax"
+ #if (CRYPTOPP_BOOL_X32 || CRYPTOPP_BOOL_X64)
+ , PERCENT_REG(AS_REG_7), "%rbx", "%r8", "%r10", "%xmm0", "%xmm1"
#else
, "%ebx"
#endif
@@ -1296,9 +1296,11 @@ void CRYPTOPP_FASTCALL SHA512_HashBlock_SSE2(word64 *state, const word64 *data)
ATT_PREFIX
:
: "a" (SHA512_K), "c" (state), "d" (data)
- : "%ebx", "%esi", "%edi", "%mm0", "%mm1", "%mm2", "%mm3", "%mm4", "%mm5",
- "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5", "%xmm6", "%xmm7",
- "memory", "cc"
+ : "%ebx", "%esi", "%edi", "memory", "cc"
+#if (CRYPTOPP_BOOL_X64)
+ , "%mm0", "%mm1", "%mm2", "%mm3", "%mm4", "%mm5",
+ "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5", "%xmm6", "%xmm7"
+#endif
);
#else
AS1( pop edi)