Hi,
> I just wanted to report a build failure under powerpc-apple-darwin9.8.0,
> with openssl-1.0.2-beta2 or beta3.
>
> Compilation (assembly in fact) fails with:
> sha256p8-ppc.s:66:Parameter error: r0 not allowed for parameter 2 (code as 0
> not r0)
> sha256p8-ppc.s:70:Parameter error: r0 not allowed for parameter 2 (code as 0
> not r0)
> sha256p8-ppc.s:713:Parameter error: r0 not allowed for parameter 2 (code as 0
> not r0)
>
> and similar messages for sha512p8-ppc.s and aesp8-ppc.s. If you perform the
> requested
> modifications (in sha512p8-ppc.pl etc., replace "r0" with "0"), everything is
> okay,
> like in openssl-1.0.2-beta1 incidentally.
Can you confirm if attached patch fixed the problem? Basically only $x00
reassignment is essential in the context.
diff --git a/crypto/aes/asm/aesp8-ppc.pl b/crypto/aes/asm/aesp8-ppc.pl
index 3ee8979..a1891cc 100755
--- a/crypto/aes/asm/aesp8-ppc.pl
+++ b/crypto/aes/asm/aesp8-ppc.pl
@@ -648,6 +648,7 @@ ___
{{ # Optimized CBC decrypt procedure #
my $key_="r11";
my ($x00,$x10,$x20,$x30,$x40,$x50,$x60,$x70)=map("r$_",(0,8,26..31));
+ $x00=0 if ($flavour =~ /osx/);
my ($in0, $in1, $in2, $in3, $in4, $in5, $in6, $in7 )=map("v$_",(0..3,10..13));
my ($out0,$out1,$out2,$out3,$out4,$out5,$out6,$out7)=map("v$_",(14..21));
my $rndkey0="v23"; # v24-v25 rotating buffer for first found keys
@@ -1227,7 +1228,7 @@ Lcbc_dec8x_done:
addi $sp,$sp,`$FRAME+21*16+6*$SIZE_T`
blr
.long 0
- .byte 0,12,0x14,0,0x80,6,6,0
+ .byte 0,12,0x04,0,0x80,6,6,0
.long 0
.size .${prefix}_cbc_encrypt,.-.${prefix}_cbc_encrypt
___
@@ -1353,6 +1354,7 @@ ___
{{ # Optimized CTR procedure #
my $key_="r11";
my ($x00,$x10,$x20,$x30,$x40,$x50,$x60,$x70)=map("r$_",(0,8,26..31));
+ $x00=0 if ($flavour =~ /osx/);
my ($in0, $in1, $in2, $in3, $in4, $in5, $in6, $in7 )=map("v$_",(0..3,10,12..14));
my ($out0,$out1,$out2,$out3,$out4,$out5,$out6,$out7)=map("v$_",(15..22));
my $rndkey0="v23"; # v24-v25 rotating buffer for first found keys
@@ -1879,7 +1881,7 @@ Lctr32_enc8x_done:
addi $sp,$sp,`$FRAME+21*16+6*$SIZE_T`
blr
.long 0
- .byte 0,12,0x14,0,0x80,6,6,0
+ .byte 0,12,0x04,0,0x80,6,6,0
.long 0
.size .${prefix}_ctr32_encrypt_blocks,.-.${prefix}_ctr32_encrypt_blocks
___
diff --git a/crypto/sha/asm/sha512p8-ppc.pl b/crypto/sha/asm/sha512p8-ppc.pl
index a316b31..4718950 100755
--- a/crypto/sha/asm/sha512p8-ppc.pl
+++ b/crypto/sha/asm/sha512p8-ppc.pl
@@ -76,6 +76,7 @@ $lrsave="r8";
$offload="r11";
$vrsave="r12";
($x00,$x10,$x20,$x30,$x40,$x50,$x60,$x70)=map("r$_",(0,10,26..31));
+ $x00=0 if ($flavour =~ /osx/);
@V=($A,$B,$C,$D,$E,$F,$G,$H)=map("v$_",(0..7));
@X=map("v$_",(8..23));