Added CRYPTOPP_CLANG_NO_INTEGRATED_AS as a guard in config.h (disabled by default since integrated-as is default behavior and the bug is active). GNU_ATT_SYNTAX → GNU_AS_ATT_SYNTAX and GNUINTEL_SYNTAX → GNU_AS_INTEL_SYNTAX
parent
444d1f1a3b
commit
3c56063c3f
4
config.h
4
config.h
|
|
@ -69,6 +69,10 @@
|
|||
// Defining this will cause Crypto++ to make only one call to CryptAcquireContext.
|
||||
#define WORKAROUND_MS_BUG_Q258000
|
||||
|
||||
// Define this if you are working around Clang's integrated assembler bug by
|
||||
// disabling the assembler (https://llvm.org/bugs/show_bug.cgi?id=18916).
|
||||
// #define CRYPTOPP_CLANG_NO_INTEGRATED_AS
|
||||
|
||||
#ifdef CRYPTOPP_DOXYGEN_PROCESSING
|
||||
// Avoid putting "CryptoPP::" in front of everything in Doxygen output
|
||||
# define CryptoPP
|
||||
|
|
|
|||
8
gcm.cpp
8
gcm.cpp
|
|
@ -574,7 +574,7 @@ size_t GCM_Base::AuthenticateBlocks(const byte *data, size_t len)
|
|||
#ifdef __GNUC__
|
||||
__asm__ __volatile__
|
||||
(
|
||||
GNU_INTEL_SYNTAX
|
||||
GNU_AS_INTEL_SYNTAX
|
||||
#elif defined(CRYPTOPP_GENERATE_X64_MASM)
|
||||
ALIGN 8
|
||||
GCM_AuthenticateBlocks_2K PROC FRAME
|
||||
|
|
@ -702,7 +702,7 @@ size_t GCM_Base::AuthenticateBlocks(const byte *data, size_t len)
|
|||
AS_POP_IF86( bx)
|
||||
|
||||
#ifdef __GNUC__
|
||||
GNU_ATT_SYNTAX
|
||||
GNU_AS_ATT_SYNTAX
|
||||
:
|
||||
: "c" (data), "d" (len/16), "S" (hashBuffer), "D" (s_reductionTable)
|
||||
: "memory", "cc", "%eax"
|
||||
|
|
@ -725,7 +725,7 @@ size_t GCM_Base::AuthenticateBlocks(const byte *data, size_t len)
|
|||
#ifdef __GNUC__
|
||||
__asm__ __volatile__
|
||||
(
|
||||
GNU_INTEL_SYNTAX
|
||||
GNU_AS_INTEL_SYNTAX
|
||||
#elif defined(CRYPTOPP_GENERATE_X64_MASM)
|
||||
ALIGN 8
|
||||
GCM_AuthenticateBlocks_64K PROC FRAME
|
||||
|
|
@ -779,7 +779,7 @@ size_t GCM_Base::AuthenticateBlocks(const byte *data, size_t len)
|
|||
AS2( movdqa [WORD_REG(si)], xmm0 )
|
||||
|
||||
#ifdef __GNUC__
|
||||
GNU_ATT_SYNTAX
|
||||
GNU_AS_ATT_SYNTAX
|
||||
:
|
||||
: "c" (data), "d" (len/16), "S" (hashBuffer)
|
||||
: "memory", "cc", "%edi", "%eax"
|
||||
|
|
|
|||
14
integer.cpp
14
integer.cpp
|
|
@ -450,9 +450,9 @@ inline word DWord::operator%(word a)
|
|||
int result; \
|
||||
__asm__ __volatile__ \
|
||||
( \
|
||||
GNU_INTEL_SYNTAX
|
||||
GNU_AS_INTEL_SYNTAX
|
||||
#define AddEpilogue \
|
||||
GNU_ATT_SYNTAX \
|
||||
GNU_AS_ATT_SYNTAX \
|
||||
: "=a" (result)\
|
||||
: "d" (C), "a" (A), "D" (B), "c" (N) \
|
||||
: "%esi", "memory", "cc" \
|
||||
|
|
@ -461,12 +461,12 @@ inline word DWord::operator%(word a)
|
|||
#define MulPrologue \
|
||||
__asm__ __volatile__ \
|
||||
( \
|
||||
GNU_INTEL_SYNTAX \
|
||||
GNU_AS_INTEL_SYNTAX \
|
||||
AS1( push ebx) \
|
||||
AS2( mov ebx, edx)
|
||||
#define MulEpilogue \
|
||||
AS1( pop ebx) \
|
||||
GNU_ATT_SYNTAX \
|
||||
GNU_AS_ATT_SYNTAX \
|
||||
: \
|
||||
: "d" (s_maskLow16), "c" (C), "a" (A), "D" (B) \
|
||||
: "%esi", "memory", "cc" \
|
||||
|
|
@ -474,7 +474,7 @@ inline word DWord::operator%(word a)
|
|||
#define SquPrologue MulPrologue
|
||||
#define SquEpilogue \
|
||||
AS1( pop ebx) \
|
||||
GNU_ATT_SYNTAX \
|
||||
GNU_AS_ATT_SYNTAX \
|
||||
: \
|
||||
: "d" (s_maskLow16), "c" (C), "a" (A) \
|
||||
: "%esi", "%edi", "memory", "cc" \
|
||||
|
|
@ -482,7 +482,7 @@ inline word DWord::operator%(word a)
|
|||
#define TopPrologue MulPrologue
|
||||
#define TopEpilogue \
|
||||
AS1( pop ebx) \
|
||||
GNU_ATT_SYNTAX \
|
||||
GNU_AS_ATT_SYNTAX \
|
||||
: \
|
||||
: "d" (s_maskLow16), "c" (C), "a" (A), "D" (B), "S" (L) \
|
||||
: "memory", "cc" \
|
||||
|
|
@ -570,7 +570,7 @@ int Baseline_Sub(size_t N, word *C, const word *A, const word *B)
|
|||
word result;
|
||||
__asm__ __volatile__
|
||||
(
|
||||
GNU_INTEL_SYNTAX
|
||||
GNU_AS_INTEL_SYNTAX
|
||||
AS1( neg %1)
|
||||
ASJ( jz, 1, f)
|
||||
AS2( mov %0,[%3+8*%1])
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ void CRYPTOPP_NOINLINE Panama_SSE2_Pull(size_t count, word32 *state, word32 *z,
|
|||
#ifdef CRYPTOPP_GNU_STYLE_INLINE_ASSEMBLY
|
||||
asm __volatile__
|
||||
(
|
||||
GNU_INTEL_SYNTAX
|
||||
GNU_AS_INTEL_SYNTAX
|
||||
AS_PUSH_IF86( bx)
|
||||
#else
|
||||
AS2( mov AS_REG_1, count)
|
||||
|
|
@ -289,7 +289,7 @@ void CRYPTOPP_NOINLINE Panama_SSE2_Pull(size_t count, word32 *state, word32 *z,
|
|||
|
||||
#ifdef CRYPTOPP_GNU_STYLE_INLINE_ASSEMBLY
|
||||
AS_POP_IF86( bx)
|
||||
GNU_ATT_SYNTAX
|
||||
GNU_AS_ATT_SYNTAX
|
||||
:
|
||||
#if CRYPTOPP_BOOL_X64
|
||||
: "D" (count), "S" (state), "d" (z), "c" (y)
|
||||
|
|
|
|||
|
|
@ -614,7 +614,7 @@ CRYPTOPP_NAKED void CRYPTOPP_FASTCALL Rijndael_Enc_AdvancedProcessBlocks(void *l
|
|||
#elif defined(__GNUC__)
|
||||
__asm__ __volatile__
|
||||
(
|
||||
GNU_INTEL_SYNTAX
|
||||
GNU_AS_INTEL_SYNTAX
|
||||
#if CRYPTOPP_BOOL_X64
|
||||
AS2( mov L_REG, rcx)
|
||||
#endif
|
||||
|
|
@ -969,7 +969,7 @@ CRYPTOPP_NAKED void CRYPTOPP_FASTCALL Rijndael_Enc_AdvancedProcessBlocks(void *l
|
|||
Rijndael_Enc_AdvancedProcessBlocks ENDP
|
||||
#endif
|
||||
#ifdef __GNUC__
|
||||
GNU_ATT_SYNTAX
|
||||
GNU_AS_ATT_SYNTAX
|
||||
:
|
||||
: "c" (locals), "d" (k), "S" (Te), "D" (g_cacheLineSize)
|
||||
: "memory", "cc", "%eax"
|
||||
|
|
|
|||
|
|
@ -150,7 +150,7 @@ void Salsa20_Policy::OperateKeystream(KeystreamOperation operation, byte *output
|
|||
#ifdef __GNUC__
|
||||
__asm__ __volatile__
|
||||
(
|
||||
GNU_INTEL_SYNTAX
|
||||
GNU_AS_INTEL_SYNTAX
|
||||
AS_PUSH_IF86( bx)
|
||||
#else
|
||||
void *s = m_state.data();
|
||||
|
|
@ -458,7 +458,7 @@ void Salsa20_Policy::OperateKeystream(KeystreamOperation operation, byte *output
|
|||
AS_POP_IF86( bp)
|
||||
#ifdef __GNUC__
|
||||
AS_POP_IF86( bx)
|
||||
GNU_ATT_SYNTAX
|
||||
GNU_AS_ATT_SYNTAX
|
||||
#if CRYPTOPP_BOOL_X64
|
||||
: "+r" (input), "+r" (output), "+r" (iterationCount)
|
||||
: "r" (m_rounds), "r" (m_state.m_ptr), "r" (workspace)
|
||||
|
|
|
|||
8
sha.cpp
8
sha.cpp
|
|
@ -244,7 +244,7 @@ static void CRYPTOPP_FASTCALL X86_SHA256_HashBlocks(word32 *state, const word32
|
|||
#if CRYPTOPP_BOOL_X64
|
||||
"lea %4, %%r8;"
|
||||
#endif
|
||||
GNU_INTEL_SYNTAX
|
||||
GNU_AS_INTEL_SYNTAX
|
||||
#elif defined(CRYPTOPP_GENERATE_X64_MASM)
|
||||
ALIGN 8
|
||||
X86_SHA256_HashBlocks PROC FRAME
|
||||
|
|
@ -424,7 +424,7 @@ static void CRYPTOPP_FASTCALL X86_SHA256_HashBlocks(word32 *state, const word32
|
|||
#endif
|
||||
|
||||
#ifdef __GNUC__
|
||||
GNU_ATT_SYNTAX
|
||||
GNU_AS_ATT_SYNTAX
|
||||
:
|
||||
: "c" (state), "d" (data), "S" (SHA256_K+48), "D" (len)
|
||||
#if CRYPTOPP_BOOL_X64
|
||||
|
|
@ -675,7 +675,7 @@ CRYPTOPP_NAKED static void CRYPTOPP_FASTCALL SHA512_SSE2_Transform(word64 *state
|
|||
#ifdef __GNUC__
|
||||
__asm__ __volatile__
|
||||
(
|
||||
GNU_INTEL_SYNTAX
|
||||
GNU_AS_INTEL_SYNTAX
|
||||
AS1( push ebx)
|
||||
AS2( mov ebx, eax)
|
||||
#else
|
||||
|
|
@ -841,7 +841,7 @@ CRYPTOPP_NAKED static void CRYPTOPP_FASTCALL SHA512_SSE2_Transform(word64 *state
|
|||
|
||||
#if defined(__GNUC__)
|
||||
AS1( pop ebx)
|
||||
GNU_ATT_SYNTAX
|
||||
GNU_AS_ATT_SYNTAX
|
||||
:
|
||||
: "a" (SHA512_K), "c" (state), "d" (data)
|
||||
: "%esi", "%edi", "memory", "cc"
|
||||
|
|
|
|||
|
|
@ -355,7 +355,7 @@ void SosemanukPolicy::OperateKeystream(KeystreamOperation operation, byte *outpu
|
|||
#endif
|
||||
__asm__ __volatile__
|
||||
(
|
||||
GNU_INTEL_SYNTAX
|
||||
GNU_AS_INTEL_SYNTAX
|
||||
AS_PUSH_IF86( bx)
|
||||
#else
|
||||
word32 *state = m_state;
|
||||
|
|
@ -595,7 +595,7 @@ void SosemanukPolicy::OperateKeystream(KeystreamOperation operation, byte *outpu
|
|||
|
||||
#ifdef __GNUC__
|
||||
AS_POP_IF86( bx)
|
||||
GNU_ATT_SYNTAX
|
||||
GNU_AS_ATT_SYNTAX
|
||||
:
|
||||
: "a" (m_state.m_ptr), "c" (iterationCount), "S" (s_sosemanukMulTables), "D" (output), "d" (input)
|
||||
#if CRYPTOPP_BOOL_X64
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ void Tiger::Transform (word64 *digest, const word64 *X)
|
|||
#ifdef __GNUC__
|
||||
__asm__ __volatile__
|
||||
(
|
||||
GNU_INTEL_SYNTAX
|
||||
GNU_AS_INTEL_SYNTAX
|
||||
AS1( push ebx)
|
||||
#else
|
||||
#if _MSC_VER < 1300
|
||||
|
|
@ -194,7 +194,7 @@ void Tiger::Transform (word64 *digest, const word64 *X)
|
|||
AS1( emms)
|
||||
#ifdef __GNUC__
|
||||
AS1( pop ebx)
|
||||
GNU_ATT_SYNTAX
|
||||
GNU_AS_ATT_SYNTAX
|
||||
:
|
||||
: "a" (digest), "S" (X), "d" (table)
|
||||
: "%ecx", "%edi", "memory", "cc"
|
||||
|
|
|
|||
4
vmac.cpp
4
vmac.cpp
|
|
@ -158,7 +158,7 @@ VMAC_Base::VHASH_Update_SSE2(const word64 *data, size_t blocksRemainingInWord64,
|
|||
(
|
||||
AS2( mov %%ebx, %0)
|
||||
AS2( mov %1, %%ebx)
|
||||
GNU_INTEL_SYNTAX
|
||||
GNU_AS_INTEL_SYNTAX
|
||||
#else
|
||||
#if _MSC_VER < 1300 || defined(__INTEL_COMPILER)
|
||||
char isFirstBlock = m_isFirstBlock;
|
||||
|
|
@ -377,7 +377,7 @@ VMAC_Base::VHASH_Update_SSE2(const word64 *data, size_t blocksRemainingInWord64,
|
|||
AS1( pop ebp)
|
||||
AS1( emms)
|
||||
#ifdef __GNUC__
|
||||
GNU_ATT_SYNTAX
|
||||
GNU_AS_ATT_SYNTAX
|
||||
AS2( mov %0, %%ebx)
|
||||
: "=m" (temp)
|
||||
: "m" (L1KeyLength), "c" (blocksRemainingInWord64), "S" (data), "D" (nhK+tagPart*2), "d" (m_isFirstBlock), "a" (polyS+tagPart*4)
|
||||
|
|
|
|||
|
|
@ -401,7 +401,7 @@ void Whirlpool::Transform(word64 *digest, const word64 *block)
|
|||
#endif
|
||||
__asm__ __volatile__
|
||||
(
|
||||
GNU_INTEL_SYNTAX
|
||||
GNU_AS_INTEL_SYNTAX
|
||||
AS_PUSH_IF86( bx)
|
||||
AS2( mov AS_REG_6, WORD_REG(ax))
|
||||
#else
|
||||
|
|
@ -569,7 +569,7 @@ void Whirlpool::Transform(word64 *digest, const word64 *block)
|
|||
AS_POP_IF86( bx)
|
||||
#endif
|
||||
#ifdef __GNUC__
|
||||
GNU_ATT_SYNTAX
|
||||
GNU_AS_ATT_SYNTAX
|
||||
:
|
||||
: "a" (Whirlpool_C), "c" (digest), "d" (block)
|
||||
#if CRYPTOPP_BOOL_X64
|
||||
|
|
|
|||
Loading…
Reference in New Issue