X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=crypto%2Fsparccpuid.S;h=95acd2f9d4d2618578a2326b1812d99533a90d60;hp=8baded0d40f9fb699dd378dab34982d826ed4ab8;hb=545360c4dfbf90f63918be3d98e344adc7ca2d7f;hpb=1fda639ae756eb87f585b7d5114490d4ffe649a1 diff --git a/crypto/sparccpuid.S b/crypto/sparccpuid.S index 8baded0d40..95acd2f9d4 100644 --- a/crypto/sparccpuid.S +++ b/crypto/sparccpuid.S @@ -1,6 +1,9 @@ -#ifdef OPENSSL_FIPSCANISTER -#include -#endif +! Copyright 2005-2016 The OpenSSL Project Authors. All Rights Reserved. +! +! Licensed under the OpenSSL license (the "License"). You may not use +! this file except in compliance with the License. You can obtain a copy +! in the file LICENSE in the source distribution or at +! https://www.openssl.org/source/license.html #if defined(__SUNPRO_C) && defined(__sparcv9) # define ABI64 /* They've said -xarch=v9 at command line */ @@ -127,7 +130,7 @@ OPENSSL_wipe_cpu: fmovs %f1,%f3 fmovs %f0,%f2 - add %fp,BIAS,%i0 ! return pointer to caller´s top of stack + add %fp,BIAS,%i0 ! return pointer to caller´s top of stack ret restore @@ -239,10 +242,10 @@ _sparcv9_rdtick: .global _sparcv9_vis1_probe .align 8 _sparcv9_vis1_probe: - .word 0x81b00d80 !fxor %f0,%f0,%f0 add %sp,BIAS+2,%o1 - retl .word 0xc19a5a40 !ldda [%o1]ASI_FP16_P,%f0 + retl + .word 0x81b00d80 !fxor %f0,%f0,%f0 .type _sparcv9_vis1_probe,#function .size _sparcv9_vis1_probe,.-_sparcv9_vis1_probe @@ -291,7 +294,7 @@ _sparcv9_vis1_instrument: sub %o3,%o2,%o2 sub %o4,%o3,%o3 - ! find minumum value + ! find minimum value cmp %o0,%o1 .word 0x38680002 !bgu,a %xcc,.+8 mov %o1,%o0 @@ -349,6 +352,14 @@ _sparcv9_random: .type _sparcv9_random,#function .size _sparcv9_random,.-_sparcv9_vis3_probe +.global _sparcv9_fjaesx_probe +.align 8 +_sparcv9_fjaesx_probe: + .word 0x81b09206 !faesencx %f2,%f6,%f0 + retl + nop +.size _sparcv9_fjaesx_probe,.-_sparcv9_fjaesx_probe + .global OPENSSL_cleanse .align 32 OPENSSL_cleanse: @@ -432,6 +443,40 @@ OPENSSL_cleanse: .type OPENSSL_cleanse,#function .size OPENSSL_cleanse,.-OPENSSL_cleanse +.global CRYPTO_memcmp +.align 16 +CRYPTO_memcmp: + cmp %o2,0 +#ifdef ABI64 + beq,pn %xcc,.Lno_data +#else + beq .Lno_data +#endif + xor %g1,%g1,%g1 + nop + +.Loop_cmp: + ldub [%o0],%o3 + add %o0,1,%o0 + ldub [%o1],%o4 + add %o1,1,%o1 + subcc %o2,1,%o2 + xor %o3,%o4,%o4 +#ifdef ABI64 + bnz %xcc,.Loop_cmp +#else + bnz .Loop_cmp +#endif + or %o4,%g1,%g1 + + sub %g0,%g1,%g1 + srl %g1,31,%g1 +.Lno_data: + retl + mov %g1,%o0 +.type CRYPTO_memcmp,#function +.size CRYPTO_memcmp,.-CRYPTO_memcmp + .global _sparcv9_vis1_instrument_bus .align 8 _sparcv9_vis1_instrument_bus: