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 |
|