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:
parent
409766d218
commit
77b7e63311
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user