diff --git a/cpu.cpp b/cpu.cpp index 127f014a..8fde6886 100644 --- a/cpu.cpp +++ b/cpu.cpp @@ -511,9 +511,9 @@ void DetectX86Features() #endif // Solaris 11 i86pc does not signal SSE support using - // OSXSAVE. We need to probe for SSE support. CR4 and - // bit 18 is not available to userland. - // TODO: cut something in when testing is available. + // OSXSAVE. We need to probe for SSE support. + if (g_hasSSE2 == false) + g_hasSSE2 = CPU_ProbeSSE2(); if (g_hasSSE2 == false) goto done; diff --git a/vmac.cpp b/vmac.cpp index 0455b321..5c59a771 100644 --- a/vmac.cpp +++ b/vmac.cpp @@ -207,7 +207,6 @@ void VMAC_Base::VHASH_Update_SSE2(const word64 *data, size_t blocksRemainingInWo #ifdef __GNUC__ __asm__ __volatile__ ( - AS1( push %%ebx) AS1( push %0) // L1KeyLength AS1( pop %%ebx) INTEL_NOPREFIX @@ -429,11 +428,10 @@ void VMAC_Base::VHASH_Update_SSE2(const word64 *data, size_t blocksRemainingInWo AS1( emms) #ifdef __GNUC__ ATT_PREFIX - AS1( pop %%ebx) : : "m" (L1KeyLength), "c" (blocksRemainingInWord64), "S" (data), "D" (nhK+tagPart*2), "d" (m_isFirstBlock), "a" (polyS+tagPart*4) - : "esp", "memory", "cc" + : "ebx", "memory", "cc" ); #endif } diff --git a/vmac.h b/vmac.h index 23ffef78..44fe09fc 100644 --- a/vmac.h +++ b/vmac.h @@ -68,10 +68,10 @@ protected: /// \tparam T_BlockCipher block cipher /// \tparam T_DigestBitSize digest size, in bits /// \details VMAC is a block cipher-based message authentication code algorithm -/// using a universal hash proposed by Ted Krovetz and Wei Dai in April 2007. The -/// algorithm was designed for high performance backed by a formal analysis. +/// using a universal hash proposed by Ted Krovetz and Wei Dai in April 2007. The +/// algorithm was designed for high performance backed by a formal analysis. /// \details The implementation is based on Ted Krovetz's public domain vmac.c -/// and draft-krovetz-vmac-01.txt. +/// and draft-krovetz-vmac-01.txt. /// \sa VMAC. /// \since Crypto++ 5.5 template