mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 10:00:17 +00:00
crypto: vmx - comply with ABIs that specify vrsave as reserved.
[ Upstream commit 5ca5573820 ]
It gives significant improvements ( ~+15%) on some modes.
These code has been adopted from OpenSSL project in collaboration
with the original author (Andy Polyakov <appro@openssl.org>).
Signed-off-by: Paulo Flabiano Smorigo <pfsmorigo@linux.vnet.ibm.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
5349cdd3b4
commit
e29e85ac08
@@ -139,6 +139,26 @@ my $vmr = sub {
|
|||||||
" vor $vx,$vy,$vy";
|
" vor $vx,$vy,$vy";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Some ABIs specify vrsave, special-purpose register #256, as reserved
|
||||||
|
# for system use.
|
||||||
|
my $no_vrsave = ($flavour =~ /aix|linux64le/);
|
||||||
|
my $mtspr = sub {
|
||||||
|
my ($f,$idx,$ra) = @_;
|
||||||
|
if ($idx == 256 && $no_vrsave) {
|
||||||
|
" or $ra,$ra,$ra";
|
||||||
|
} else {
|
||||||
|
" mtspr $idx,$ra";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
my $mfspr = sub {
|
||||||
|
my ($f,$rd,$idx) = @_;
|
||||||
|
if ($idx == 256 && $no_vrsave) {
|
||||||
|
" li $rd,-1";
|
||||||
|
} else {
|
||||||
|
" mfspr $rd,$idx";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
# PowerISA 2.06 stuff
|
# PowerISA 2.06 stuff
|
||||||
sub vsxmem_op {
|
sub vsxmem_op {
|
||||||
my ($f, $vrt, $ra, $rb, $op) = @_;
|
my ($f, $vrt, $ra, $rb, $op) = @_;
|
||||||
|
|||||||
Reference in New Issue
Block a user