X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=crypto%2Fc64xpluscpuid.pl;h=b7b11d50316b1cd497487d6e8d17e8e2e93f1a9b;hp=3dcd691129ecbae5ee8847e902d4af6c979b5919;hb=d42c356882229765c5a502c32656c49eefcce7b4;hpb=e0a651945cb5a70a2abd9902c0fd3e9759d35867 diff --git a/crypto/c64xpluscpuid.pl b/crypto/c64xpluscpuid.pl index 3dcd691129..b7b11d5031 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 @@ -207,7 +231,7 @@ bus_loop1?: _OPENSSL_instrument_bus2: .asmfunc MV A6,B0 ; reassign max -|| MV B4,A6 ; reassing sizeof(output) +|| MV B4,A6 ; reassign sizeof(output) || MVK 0x00004030,A3 MV A4,B4 ; reassign output || MVK 0,A4 ; return value