diff options
author | Andy Polyakov <appro@openssl.org> | 2016-05-15 17:01:15 +0200 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2016-05-19 22:33:00 +0200 |
commit | e33826f01bd78af76e0135c8dfab3387927a82bb (patch) | |
tree | a44459e3859610fe7ce35bc4923d8af6d6110e09 /crypto/ppccpuid.pl | |
parent | 2e6d7799ffc47604d06e0465afeb84b91aff8006 (diff) | |
download | openssl-new-e33826f01bd78af76e0135c8dfab3387927a82bb.tar.gz |
Add assembly CRYPTO_memcmp.
GH: #102
Reviewed-by: Richard Levitte <levitte@openssl.org>
Diffstat (limited to 'crypto/ppccpuid.pl')
-rwxr-xr-x | crypto/ppccpuid.pl | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/crypto/ppccpuid.pl b/crypto/ppccpuid.pl index 8f603e972f..9d1cada4dc 100755 --- a/crypto/ppccpuid.pl +++ b/crypto/ppccpuid.pl @@ -177,6 +177,32 @@ Laligned: .byte 0,12,0x14,0,0,0,2,0 .long 0 .size .OPENSSL_cleanse,.-.OPENSSL_cleanse + +globl .CRYPTO_memcmp +.align 4 +.CRYPTO_memcmp: + $CMPLI r5,0 + li r0,0 + beq Lno_data + mtctr r5 +Loop_cmp: + lbz r6,0(r3) + addi r3,r3,1 + lbz r7,0(r4) + addi r4,r4,1 + xor r6,r6,r7 + or r0,r0,r6 + bdnz Loop_cmp + +Lno_data: + li r3,0 + sub r3,r3,r0 + extrwi r3,r3,1,0 + blr + .long 0 + .byte 0,12,0x14,0,0,0,3,0 + .long 0 +.size .CRYPTO_memcmp,.-.CRYPTO_memcmp ___ { my ($out,$cnt,$max)=("r3","r4","r5"); |