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));

Reply via email to