Adjust stack pointer in AES-NI CBC decryption.

This change adjusts the stack pointer during CBC decryption. The code
was previously using the red zone across function calls and valgrind
thinks that the "unused" stack is undefined after a function call.
This commit is contained in:
Adam Langley 2014-06-20 12:00:00 -07:00
parent 409766d218
commit 77b7e63311

View File

@ -2186,6 +2186,14 @@ $code.=<<___ if ($win64);
movaps %xmm9,0x30(%rsp) movaps %xmm9,0x30(%rsp)
.Lcbc_decrypt_body: .Lcbc_decrypt_body:
___ ___
if (!$win64) {
$code.=<<___;
subq \$24,%rsp
___
$reserved=0;
}
$code.=<<___; $code.=<<___;
movups ($ivp),$iv movups ($ivp),$iv
mov $rnds_,$rounds mov $rnds_,$rounds
@ -2446,6 +2454,14 @@ $code.=<<___ if ($win64);
movaps 0x30(%rsp),%xmm9 movaps 0x30(%rsp),%xmm9
lea 0x58(%rsp),%rsp lea 0x58(%rsp),%rsp
___ ___
if (!$win64) {
$code.=<<___;
addq \$24,%rsp
___
$reserved=-24
}
$code.=<<___; $code.=<<___;
.Lcbc_ret: .Lcbc_ret:
ret ret