perlasm/ppc-xlate.pl: comply with ABIs that specify vrsave as reserved.
RT#4162 Reviewed-by: Richard Levitte <levitte@openssl.org>
This commit is contained in:
parent
1bbea40384
commit
b5516cfbd6
@ -151,6 +151,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) = @_;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user