components/openssl/common/patches/049-use-srln.patch
changeset 6964 c3b11711b2b9
parent 6963 78a1c83a7df1
child 6965 beaa97be01e8
equal deleted inserted replaced
6963:78a1c83a7df1 6964:c3b11711b2b9
     1 # This patch fixes the invalid use of 64-bit instruction (srlx) by 32-bit
       
     2 # applications.  This patch is from the following commit in the upstream:
       
     3 #    https://github.com/openssl/openssl/commit/f198cc43a0eca4bf1a8e7f60c51af560f4346dc8
       
     4 --- a/crypto/des/asm/dest4-sparcv9.pl	2016-08-04 14:20:26.610683970 -0700
       
     5 +++ b/crypto/des/asm/dest4-sparcv9.pl	2016-08-04 14:22:33.339076315 -0700
       
     6 @@ -96,7 +96,7 @@
       
     7  des_t4_cbc_encrypt:
       
     8  	cmp		$len, 0
       
     9  	be,pn		$::size_t_cc, .Lcbc_abort
       
    10 -	nop
       
    11 +	srln		$len, 0, $len		! needed on v8+, "nop" on v9
       
    12  	ld		[$ivec + 0], %f0	! load ivec
       
    13  	ld		[$ivec + 4], %f1
       
    14  
       
    15 @@ -197,7 +197,7 @@
       
    16  des_t4_cbc_decrypt:
       
    17  	cmp		$len, 0
       
    18  	be,pn		$::size_t_cc, .Lcbc_abort
       
    19 -	nop
       
    20 +	srln		$len, 0, $len		! needed on v8+, "nop" on v9
       
    21  	ld		[$ivec + 0], %f2	! load ivec
       
    22  	ld		[$ivec + 4], %f3
       
    23  
       
    24 @@ -305,7 +305,7 @@
       
    25  des_t4_ede3_cbc_encrypt:
       
    26  	cmp		$len, 0
       
    27  	be,pn		$::size_t_cc, .Lcbc_abort
       
    28 -	nop
       
    29 +	srln		$len, 0, $len		! needed on v8+, "nop" on v9
       
    30  	ld		[$ivec + 0], %f0	! load ivec
       
    31  	ld		[$ivec + 4], %f1
       
    32  
       
    33 @@ -457,7 +457,7 @@
       
    34  des_t4_ede3_cbc_decrypt:
       
    35  	cmp		$len, 0
       
    36  	be,pn		$::size_t_cc, .Lcbc_abort
       
    37 -	nop
       
    38 +	srln		$len, 0, $len		! needed on v8+, "nop" on v9
       
    39  	ld		[$ivec + 0], %f2	! load ivec
       
    40  	ld		[$ivec + 4], %f3
       
    41  
       
    42 --- a/crypto/modes/asm/ghash-sparcv9.pl	2016-08-04 14:22:59.021798885 -0700
       
    43 +++ b/crypto/modes/asm/ghash-sparcv9.pl	2016-08-04 14:24:07.947062045 -0700
       
    44 @@ -445,6 +445,8 @@
       
    45  .align	32
       
    46  gcm_ghash_vis3:
       
    47  	save	%sp,-$frame,%sp
       
    48 +	nop
       
    49 +	srl	$len,0,$len		! needed on v8+, "nop" on v9
       
    50  
       
    51  	ldx	[$Xip+8],$C2		! load Xi
       
    52  	ldx	[$Xip+0],$C3
       
    53 --- a/crypto/perlasm/sparcv9_modes.pl	2016-08-04 14:24:29.877624460 -0700
       
    54 +++ b/crypto/perlasm/sparcv9_modes.pl	2016-08-04 14:27:18.552931245 -0700
       
    55 @@ -37,6 +37,7 @@
       
    56  	save		%sp, -$::frame, %sp
       
    57  	cmp		$len, 0
       
    58  	be,pn		$::size_t_cc, .L${bits}_cbc_enc_abort
       
    59 +	srln		$len, 0, $len		! needed on v8+, "nop" on v9
       
    60  	sub		$inp, $out, $blk_init	! $inp!=$out
       
    61  ___
       
    62  $::code.=<<___ if (!$::evp);
       
    63 @@ -254,6 +255,7 @@
       
    64  	save		%sp, -$::frame, %sp
       
    65  	cmp		$len, 0
       
    66  	be,pn		$::size_t_cc, .L${bits}_cbc_dec_abort
       
    67 +	srln		$len, 0, $len		! needed on v8+, "nop" on v9
       
    68  	sub		$inp, $out, $blk_init	! $inp!=$out
       
    69  ___
       
    70  $::code.=<<___ if (!$::evp);
       
    71 @@ -613,6 +615,7 @@
       
    72  .align	32
       
    73  ${alg}${bits}_t4_ctr32_encrypt:
       
    74  	save		%sp, -$::frame, %sp
       
    75 +	srln		$len, 0, $len		! needed on v8+, "nop" on v9
       
    76  
       
    77  	prefetch	[$inp], 20
       
    78  	prefetch	[$inp + 63], 20
       
    79 @@ -916,6 +919,7 @@
       
    80  .align	32
       
    81  ${alg}${bits}_t4_xts_${dir}crypt:
       
    82  	save		%sp, -$::frame-16, %sp
       
    83 +	srln		$len, 0, $len		! needed on v8+, "nop" on v9
       
    84  
       
    85  	mov		$ivec, %o0
       
    86  	add		%fp, $::bias-16, %o1