Module Name: src Committed By: christos Date: Sun Jan 6 22:20:50 UTC 2019
Modified Files: src/crypto/external/bsd/openssl/dist/crypto: ppccpuid.pl Log Message: PR/53838: Scole Mail: OPENSSL_rdtsc() is reading a time counter for randomness, and the powerpc code uses mftbu and mftb for access. The 601 is different than other powerpcs. It doesn't have a time base register (TBR), but a real time clock (RTC) so it needs to use different calls like mfrtcu/mfrtcl instead. To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 \ src/crypto/external/bsd/openssl/dist/crypto/ppccpuid.pl 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/ppccpuid.pl diff -u src/crypto/external/bsd/openssl/dist/crypto/ppccpuid.pl:1.6 src/crypto/external/bsd/openssl/dist/crypto/ppccpuid.pl:1.7 --- src/crypto/external/bsd/openssl/dist/crypto/ppccpuid.pl:1.6 Thu Feb 8 16:51:24 2018 +++ src/crypto/external/bsd/openssl/dist/crypto/ppccpuid.pl Sun Jan 6 17:20:50 2019 @@ -132,6 +132,17 @@ $code.=<<___ if ($flavour =~ /64/); mftb r3 ___ $code.=<<___ if ($flavour !~ /64/); + mfspr r0,287 + srwi r0,r0,0x10 + cmplwi r0,0x1 + bgt .Loop_rdtsc +.Loop_rdtsc_601: + mfrtcu r5 + mfrtcl r3 + mfrtcu r4 + cmplw r4,r5 + bne .Loop_rdtsc_601 + blr Loop_rdtsc: mftbu r5 mftb r3