Module Name:    src
Committed By:   matt
Date:           Fri Jul 27 23:01:23 UTC 2012

Modified Files:
        src/crypto/external/bsd/openssl/dist/crypto: ppccap.c ppccpuid.pl
        src/crypto/external/bsd/openssl/lib/libcrypto/arch/powerpc: crypto.inc
            ppccpuid.S

Log Message:
Get new openssl to work on powerpc.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1 -r1.2 \
    src/crypto/external/bsd/openssl/dist/crypto/ppccap.c
cvs rdiff -u -r1.1.1.3 -r1.2 \
    src/crypto/external/bsd/openssl/dist/crypto/ppccpuid.pl
cvs rdiff -u -r1.1 -r1.2 \
    src/crypto/external/bsd/openssl/lib/libcrypto/arch/powerpc/crypto.inc
cvs rdiff -u -r1.3 -r1.4 \
    src/crypto/external/bsd/openssl/lib/libcrypto/arch/powerpc/ppccpuid.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/crypto/external/bsd/openssl/dist/crypto/ppccap.c
diff -u src/crypto/external/bsd/openssl/dist/crypto/ppccap.c:1.1.1.1 src/crypto/external/bsd/openssl/dist/crypto/ppccap.c:1.2
--- src/crypto/external/bsd/openssl/dist/crypto/ppccap.c:1.1.1.1	Thu Jul 26 14:59:15 2012
+++ src/crypto/external/bsd/openssl/dist/crypto/ppccap.c	Fri Jul 27 23:01:23 2012
@@ -74,7 +74,7 @@ void OPENSSL_cpuid_setup(void)
 	sigdelset(&all_masked,SIGBUS);
 	sigdelset(&all_masked,SIGSEGV);
 
-	if ((e=getenv("OPENSSL_ppccap")))
+	if ((e=getenv("OPENSSL_ppccap")) != NULL)
 		{
 		OPENSSL_ppccap_P=strtoul(e,NULL,0);
 		return;
@@ -106,6 +106,7 @@ void OPENSSL_cpuid_setup(void)
 
 	if (sigsetjmp(ill_jmp,1) == 0)
 		{
+		void OPENSSL_altivec_probe();
 		OPENSSL_altivec_probe();
 		OPENSSL_ppccap_P |= PPC_ALTIVEC;
 		}

Index: src/crypto/external/bsd/openssl/dist/crypto/ppccpuid.pl
diff -u src/crypto/external/bsd/openssl/dist/crypto/ppccpuid.pl:1.1.1.3 src/crypto/external/bsd/openssl/dist/crypto/ppccpuid.pl:1.2
--- src/crypto/external/bsd/openssl/dist/crypto/ppccpuid.pl:1.1.1.3	Thu Jul 26 14:59:15 2012
+++ src/crypto/external/bsd/openssl/dist/crypto/ppccpuid.pl	Fri Jul 27 23:01:23 2012
@@ -88,8 +88,12 @@ Ladd:	lwarx	r5,0,r3
 .globl	.OPENSSL_rdtsc
 .align	4
 .OPENSSL_rdtsc:
-	mftb	r3
+Lrdtsc:
+	mftb	r5
 	mftbu	r4
+	mftb	r3
+	cmplw	r3,r5
+	bne	Lrdtsc
 	blr
 	.long	0
 	.byte	0,12,0x14,0,0,0,0,0

Index: src/crypto/external/bsd/openssl/lib/libcrypto/arch/powerpc/crypto.inc
diff -u src/crypto/external/bsd/openssl/lib/libcrypto/arch/powerpc/crypto.inc:1.1 src/crypto/external/bsd/openssl/lib/libcrypto/arch/powerpc/crypto.inc:1.2
--- src/crypto/external/bsd/openssl/lib/libcrypto/arch/powerpc/crypto.inc:1.1	Fri Jul 27 18:10:40 2012
+++ src/crypto/external/bsd/openssl/lib/libcrypto/arch/powerpc/crypto.inc	Fri Jul 27 23:01:23 2012
@@ -1,3 +1,3 @@
-CPUID_SRCS = ppccap.c
+CPUID_SRCS = ppccap.c ppccpuid.S
 CPUID = yes
 .include "../../crypto.inc"

Index: src/crypto/external/bsd/openssl/lib/libcrypto/arch/powerpc/ppccpuid.S
diff -u src/crypto/external/bsd/openssl/lib/libcrypto/arch/powerpc/ppccpuid.S:1.3 src/crypto/external/bsd/openssl/lib/libcrypto/arch/powerpc/ppccpuid.S:1.4
--- src/crypto/external/bsd/openssl/lib/libcrypto/arch/powerpc/ppccpuid.S:1.3	Thu Jul 26 19:58:40 2012
+++ src/crypto/external/bsd/openssl/lib/libcrypto/arch/powerpc/ppccpuid.S	Fri Jul 27 23:01:23 2012
@@ -71,8 +71,12 @@ OPENSSL_atomic_add:
 .type	OPENSSL_rdtsc,@function
 .align	4
 OPENSSL_rdtsc:
-	mftb	3
+.Lrdtsc:
 	mftbu	4
+	mftb	3
+	mftbu	5
+	cmplw	4,5
+	bne-	.Lrdtsc
 	blr	
 .long	0
 .byte	0,12,0x14,0,0,0,0,0
@@ -85,12 +89,13 @@ OPENSSL_cleanse:
 	li	0,0
 	bge	.Lot
 	cmplwi	4,0
-	bclr	14,2
-.Little:	mtctr	4
+	beqlr-
+.Little:
+	mtctr	4
 	stb	0,0(3)
 	addi	3,3,1
-	bc	16,0,$-8
-	blr	
+	bdnz	$-8
+	blr
 .Lot:	andi.	5,3,3
 	beq	.Laligned
 	stb	0,0(3)
@@ -100,9 +105,10 @@ OPENSSL_cleanse:
 .Laligned:
 	srwi	5,4,2
 	mtctr	5
+.Lstore4:
 	stw	0,0(3)
 	addi	3,3,4
-	bc	16,0,$-8
+	bdnz	.Lstore4
 	andi.	4,4,3
 	bne	.Little
 	blr	

Reply via email to