diff options
author | Jeffrey Walton <noloader@gmail.com> | 2022-08-21 21:31:35 -0400 |
---|---|---|
committer | Jeffrey Walton <noloader@gmail.com> | 2022-08-21 21:31:35 -0400 |
commit | 01a18bdbcb221120beffc6579f549e32490067c5 (patch) | |
tree | 716e6f652add48524cc1fe226718cb7ed9207c0b | |
parent | 09ad51cf9ea90586039f6cba7abb51f966fe5595 (diff) | |
download | cryptopp-git-01a18bdbcb221120beffc6579f549e32490067c5.tar.gz |
Fix inline ASM on x86 (GH #1142)
-rw-r--r-- | gcm.cpp | 11 | ||||
-rw-r--r-- | sha.cpp | 16 |
2 files changed, 17 insertions, 10 deletions
@@ -726,8 +726,10 @@ size_t GCM_Base::AuthenticateBlocks(const byte *data, size_t len) ATT_PREFIX
:
: "c" (data), "d" (len/16), "S" (hashBuffer), "D" (s_reductionTable)
- : "memory", "cc", "%eax", "%ebx", PERCENT_REG(AS_REG_7), "%xmm0",
- "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5"
+ : "memory", "cc", "%eax", "%ebx"
+#if (CRYPTOPP_BOOL_X32 || CRYPTOPP_BOOL_X64)
+ , PERCENT_REG(AS_REG_7), "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5"
+#endif
);
#elif defined(CRYPTOPP_GENERATE_X64_MASM)
pop rbx
@@ -803,7 +805,10 @@ size_t GCM_Base::AuthenticateBlocks(const byte *data, size_t len) ATT_PREFIX
:
: "c" (data), "d" (len/16), "S" (hashBuffer)
- : "memory", "cc", "%edi", "%eax", "%xmm0", "%xmm1"
+ : "memory", "cc", "%edi", "%eax"
+#if (CRYPTOPP_BOOL_X32 || CRYPTOPP_BOOL_X64)
+ , "%xmm0", "%xmm1"
+#endif
);
#elif defined(CRYPTOPP_GENERATE_X64_MASM)
pop rdi
@@ -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)
|