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/c64xpluscpuid.pl | |
parent | 2e6d7799ffc47604d06e0465afeb84b91aff8006 (diff) | |
download | openssl-e33826f01bd78af76e0135c8dfab3387927a82bb.tar.gz |
Add assembly CRYPTO_memcmp.
GH: #102
Reviewed-by: Richard Levitte <levitte@openssl.org>
Diffstat (limited to 'crypto/c64xpluscpuid.pl')
-rw-r--r-- | crypto/c64xpluscpuid.pl | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/crypto/c64xpluscpuid.pl b/crypto/c64xpluscpuid.pl index 3dcd691129..9efe1205ff 100644 --- a/crypto/c64xpluscpuid.pl +++ b/crypto/c64xpluscpuid.pl @@ -18,6 +18,7 @@ $code.=<<___; .if __TI_EABI__ .asg OPENSSL_rdtsc,_OPENSSL_rdtsc .asg OPENSSL_cleanse,_OPENSSL_cleanse + .asg CRYPTO_memcmp,_CRYPTO_memcmp .asg OPENSSL_atomic_add,_OPENSSL_atomic_add .asg OPENSSL_wipe_cpu,_OPENSSL_wipe_cpu .asg OPENSSL_instrument_bus,_OPENSSL_instrument_bus @@ -87,6 +88,29 @@ _OPENSSL_cleanse: [A1] STB A2,*A4++[2] .endasmfunc + .global _CRYPTO_memcmp +_CRYPTO_memcmp: + .asmfunc + MV A6,B0 + [!B0] BNOP RA +||[!B0] ZERO A4 + [B0] MVC B0,ILC +|| [B0] ZERO A0 + NOP 4 + + SPLOOP 1 + LDBU *A4++,A1 +|| LDBU *B4++,B1 + NOP 4 + XOR.L B1,A1,A2 + SPKERNEL 1,0 +|| OR.S A2,A0,A0 + + BNOP RA,3 + ZERO.L A4 + [A0] MVK 1,A4 + .endasmfunc + .global _OPENSSL_atomic_add _OPENSSL_atomic_add: .asmfunc |