parent
ad99fc5b05
commit
9c28cf2227
6
vmac.cpp
6
vmac.cpp
|
|
@ -204,11 +204,8 @@ void VMAC_Base::VHASH_Update_SSE2(const word64 *data, size_t blocksRemainingInWo
|
||||||
// GCC that ESP is dirty. The problems with GCC are the reason for the
|
// GCC that ESP is dirty. The problems with GCC are the reason for the
|
||||||
// pushes and pops rather than the original moves.
|
// pushes and pops rather than the original moves.
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
// word32 temp;
|
|
||||||
__asm__ __volatile__
|
__asm__ __volatile__
|
||||||
(
|
(
|
||||||
// AS2( mov %%ebx, %0)
|
|
||||||
// AS2( mov %1, %%ebx) // L1KeyLength
|
|
||||||
AS1( push %%ebx)
|
AS1( push %%ebx)
|
||||||
AS1( push %0) // L1KeyLength
|
AS1( push %0) // L1KeyLength
|
||||||
AS1( pop %%ebx)
|
AS1( pop %%ebx)
|
||||||
|
|
@ -432,8 +429,7 @@ void VMAC_Base::VHASH_Update_SSE2(const word64 *data, size_t blocksRemainingInWo
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
ATT_PREFIX
|
ATT_PREFIX
|
||||||
AS1( pop %%ebx)
|
AS1( pop %%ebx)
|
||||||
// AS2( mov %0, %%ebx)
|
:
|
||||||
: // "=m" (temp)
|
|
||||||
: "m" (L1KeyLength), "c" (blocksRemainingInWord64), "S" (data),
|
: "m" (L1KeyLength), "c" (blocksRemainingInWord64), "S" (data),
|
||||||
"D" (nhK+tagPart*2), "d" (m_isFirstBlock), "a" (polyS+tagPart*4)
|
"D" (nhK+tagPart*2), "d" (m_isFirstBlock), "a" (polyS+tagPart*4)
|
||||||
: "esp", "memory", "cc"
|
: "esp", "memory", "cc"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue